Hello
Iam working with s32k148 controller.
iam trying to flash aplication from bootloader,but the flashing was not succesfull.
after mulitple attempts iam not able to flash ,as it throws FTFC error.
RDCOLERR bit is set,but i have not configured the FlexNVM (0x1000 0000 - 0x1007 FFFF)
This address has not been configured in my linker.
But after this error iam not able to resume my flashing.but i can flash my application directly via debugger(isystems debugger).
I tried Mass erase from my debugger,but still getting the same error.
during mass erase do i need to skip any particular memory regions??
How to resume my flashing ?
Hello @Sridhar07,
The DFlash (FlexNVM) does not have to have a section in the linker file.
By default, the FlexNVM is in DFlash (RAMRDY = 1) mode and it can be accessed by the FTFC controller.
Please refer to the description of the flag.
According to the screenshot you posted, you are erasing a sector at 0x2D800, is that correct?
There must be no other access to the 512KB flash block during the FTFC operation.
Do you use RTD / SDK drivers?
BR, Daniel
RTD drivers are not used
Hi @Sridhar07,
Are you really erasing a sector in DFlash?
uint32_t addr = 0x00800000;
/* addr [23] = 1, DFLASH block
addr [16 - 0] = DFLASH address 0x0000 */
FTFC->FCCOB[3] = 0x09; /* Erase sector */
FTFC->FCCOB[2] = (uint8_t)(( addr & 0x00FF0000 ) >> 16 ); /* addr [23:16], addr[23] = 1 if DFLASH */
FTFC->FCCOB[1] = (uint8_t)(( addr & 0x0000FF00 ) >> 8 ); /* addr [15:8] */
FTFC->FCCOB[0] = (uint8_t)(( addr & 0x000000FF ) ); /* addr [7:0] */
Hello @danielmartynek
My application is placed at 0x28000.In fbl ,erase operation takes place but it is a synchronous operation and i dont believe there is chance to access this 512kb (0x1000 0000 - 0x1007 FFFF) simultaneously during that time.
Is there any possibility to check which address in the 512kb is being accessed during the erase operation.
Because those regions are not used anywhere in the sw
Regards
Sridhar M