RDCOLERR bit is set

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

RDCOLERR bit is set

1,057件の閲覧回数
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 件の賞賛
返信
4 返答(返信)

1,032件の閲覧回数
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 件の賞賛
返信

1,016件の閲覧回数
Sridhar07
Contributor I

RTD drivers are not used 

0 件の賞賛
返信

1,012件の閲覧回数
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 件の賞賛
返信

1,029件の閲覧回数
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 件の賞賛
返信