Corrupt Flash Data

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi All

we use a PSoC4 BLE Module in a simple BLE application. We have installed a uart-bootloader component, which communicates with a host uC, to update firmware in the field.

In the application-hardware we have different suplies for the host and the BLE. The voltage rising of both supplies may sometimes not proper, but the internal brow-out circuit should prevent any corruption of flash data in such cases.

Now we have the phenomenon that in really rare cases one data-row is damaged. It is always the configaration-row in the top area of the flash memory.

Does anyone have a smiliar experience or an idea what can be wrong?

Thanks!

0 Likes
1 Solution
Anonymous
Not applicable

Dear Geona,

thank you very much for the Link,

We use a bootloader with a UART component as communication channel, so in my project a "Launcher.c" is not generated.

Where can I find the code instead ?

Best Regards

Udo

View solution in original post

0 Likes
7 Replies
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored
0 Likes
Anonymous
Not applicable

Dear Geona,

thank you very much for the Link,

We use a bootloader with a UART component as communication channel, so in my project a "Launcher.c" is not generated.

Where can I find the code instead ?

Best Regards

Udo

0 Likes
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

Hello Udo,

Could you please share the project?

Best Regards,

Geona Mary

0 Likes
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

Hello Udo,

Thank you for sharing the bootloader project.

(1) Please probe VDDD, XRES using active probe untill observing the issue and confirm whether there is any glitch/abnormality.

(2) At which stage are you observing the metadata corruption? (in bootloader, while bootloading, in bootloadable, during first run of application, while toggling power/reset continously etc.,)

(3) Remove watch dog resets if enabled in your projects. The device should not be reset during flashwrites which can take as much as 20 mS.

(4) If step 3 does not help, please replace the Bootloader_Exit in your bootloader project with

         Bootloader_SET_RUN_TYPE(Bootloader_SCHEDULE_BTLDB);

          CySoftwareReset();

      This does not involve flash writes but will have almost the same result.

Best Regards,

Geona Mary

0 Likes
Anonymous
Not applicable

Hello Geona,

thank you very much for your reply and suggestions.

Now we know more about the VDD and XRES behavior. It seems to be poosible that the supply is interrupted by the host after 30-40ms after the BT-uC comes out of reset. This can match with the flash-writing of the bootloader.

So your suggested workaround will probably help us.

The problem is that the electronic unis are allready produced und potted with an epoxy material. Further the bootloader flash-section is fully protected. So we have no possibillity to change the bootloader code....

Or is there any way to remove the protection ?

Thanks and best Regards

Udo

0 Likes
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

Hello Udo,

Flash protection levels can only be changed by performing a complete flash erase.

Best Regards,

Geona Mary

0 Likes
Anonymous
Not applicable

Hello Geona,

thank you very much for your information

I think we can close the discussion at that point.

Again thank you for your support!

Best Regards

Udo

0 Likes