RDCOLERR bit is set

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RDCOLERR bit is set

1,160 Views
Sridhar07
Contributor I

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 ?

 

 

 

0 Kudos
Reply
4 Replies

1,135 Views
danielmartynek
NXP TechSupport
NXP TechSupport

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.

danielmartynek_0-1656943754848.png

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

 

 

 

0 Kudos
Reply

1,119 Views
Sridhar07
Contributor I

RTD drivers are not used 

0 Kudos
Reply

1,115 Views
danielmartynek
NXP TechSupport
NXP TechSupport

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]  */

 

0 Kudos
Reply

1,132 Views
Sridhar07
Contributor I

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 

0 Kudos
Reply