cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

EyGe_3183606
New Contributor II

Hello,

I am using PSOC 4 BLE (4.2).

I have been using the Fixed Stack bootloader project for quite some time now with our bootloadable application and everything has been working fine.

Recently, we added the feature of bonding to the bootloadable application and also added the saving of the bonding data to the flash using the cypress API CyBle_StoreBondingData.

We see that whenever the bonding data is stored using that API then if we perform a reset to the device, it loads and gets stuck within the function Bootloader_Start() and doesn't respond anymore.

If we erase that single line (CyBle_StoreBondingData) from the bootloadable application then everything works fine.

We tried using both CyBle_StoreBondingData(1u) and also CyBle_StoreBondingData(0u) and both provoke the same result.

What should we do? We still want to save the bonding data to the flash but if the bootloader gets stuck after reset, it is a huge problem.

What should we do?

Thanks,
David

0 Likes
1 Solution
himam_31
Employee

Hello David,

For the Fixed Stack OTA Bootloader, the bonding information is allocated in the scope of the bootloader project. Enable the Bootloader application validation option only if the BLE profiles do not require saving bonding information or if this information is not saved during the BLE component operation. Otherwise, saving bonding information will update the Bootloader project image, which may cause the validation to fail.

This is mentioned in the application note : http://www.cypress.com/documentation/application-notes/an97060-psoc-4-ble-and-proc-ble-over-air-ota-...

Thanks,

Hima

View solution in original post

4 Replies
himam_31
Employee

Hello David,

1) Do you have the option 'Bootloader application validation' checked? If yes can you uncheck that and try again.

2)Can you please share the Bootloader and bootloadable project?

Thanks,

Hima

EyGe_3183606
New Contributor II

Dear Hima,

I checked and yes, 'Bootloader application validation' box is checked.

I then tried to uncheck it and everything works fine. When I checked it back again, the problem returned.

So now we know why the bootloader halts - it fails checksum test of the bootloader.

But why can't I save bonding keys in the internal flash and check the bootloader application checksum? Why do they conflict?

Thanks,

David

0 Likes
himam_31
Employee

Hello David,

For the Fixed Stack OTA Bootloader, the bonding information is allocated in the scope of the bootloader project. Enable the Bootloader application validation option only if the BLE profiles do not require saving bonding information or if this information is not saved during the BLE component operation. Otherwise, saving bonding information will update the Bootloader project image, which may cause the validation to fail.

This is mentioned in the application note : http://www.cypress.com/documentation/application-notes/an97060-psoc-4-ble-and-proc-ble-over-air-ota-...

Thanks,

Hima

View solution in original post

EyGe_3183606
New Contributor II

Great.

Thank you so much for your help.

0 Likes