Writing on the Bootloader memory area

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

Writing on the Bootloader memory area

Jump to solution
1,921 Views
joao_ribeiro
Contributor IV

Hello,

I need to update a part of the bootloader's memory via the app. So I am using the app to read the bootloader configuration part of the memory and then update it for the next reset. The issue is that I can read the memory area without problems, but when writing to it the function FLASH_Program returns a erros (kStatus_FTFx_CommandFailure) .

Can you please help me finding out where is the issue?

In the attachment there is the app. Funny thing is that if I comment the line 24 (where I update the delay with 2) the flashing process does not have any problem.

Also here is the memory layout of the app

joao_ribeiro_0-1630077498626.png

Thank you for the help

Regards

0 Kudos
1 Solution
1,887 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @joao_ribeiro ,

Flash_program only write data to flash. You must erase the whole sector first. Flash is not eeprom.

 

Regards,

Jing

View solution in original post

0 Kudos
3 Replies
1,897 Views
joao_ribeiro
Contributor IV

Hello,

Sorry to repost, but I am really stuck here.

I have tried a couple of new scenarios that might help figuring out the issue. It should be related with the memory write process:

a. I can read from the bootloader memory section without a problem, so the memory mapping should be ok;
b. If I write exactly what is in memory , there is no issue;
c. If I update one of the values in memory and try to write it back in memory it does break at the function FLASH_Program;
d. If I use the same code in the attachment but without the bootloader it does work fine, but if I change a bit the code in order to add ++1 at the memory value and program it again, it does fail again. And it fails when I reset and try to read the memory that in fact was not correctly written the last time.

It must be a simple fix, but I honestly can't see it right now.

Thank you for the help.

Regards

0 Kudos
1,888 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @joao_ribeiro ,

Flash_program only write data to flash. You must erase the whole sector first. Flash is not eeprom.

 

Regards,

Jing

0 Kudos
1,870 Views
joao_ribeiro
Contributor IV

Hi @jingpan ,

You are correct. I missed that point.

After adding the functions FLASH_Erase and FLASH_VerifyErase before the FLASH_Program, the issue was gone.

Thank you very much for the help

Regards

0 Kudos