Excluding EEPROM memory area from cyacd2 updates

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

cross mob
lock attach
Attachments are accessible only for community members.
MuNa_4652896
Level 4
Level 4
First like received First like given

Hello

I have a workspace that consists of 2 projects App0(Bootloader) and App1(Bootloadable).

I am working with 10 kits. For the first time, I flash every kit with the same firmware but with different BLE Advertising names.

Later on, when I want to deliver an update/firmware changes/fixing bugs, any updates will be delivered  through OTA, however, a problem came up that I have to create a different *.cyacd2 file for each kit matching its name. This is very time-consuming.

My approach was to store the BLE Name into the eeprom, so the after an upgrade, regardless of the BLE name associated with that upgrade, the first-time flashed BLE name is retrieved from eeprom and is applied using CY_BLE_SetLocalName(). I followed these instructions PSoc 6 Bootloadable extra line to exclude the cycad2 from altering the eeprom section, however this seems not to be working. I have made these changes to 4 different linker files cy8c6xx7-xxx (App0-CM0/CM4 & App1-CM0/CM4)

/* Emulated EEPROM Flash area */

    .cy_em_eeprom (NOLOAD) :

    {

        KEEP(*(.cy_em_eeprom))

    } > em_eeprom

I did the check that by printing the value of the EEPROM each time App1 - CM4 is executed. After the OTA update, the EEPROM has no name (All zeroes).

How can I fix this issue?

Another question, What is the data related to the BLE stored in the EEPROM? I know that the bonding list is stored there. Any other data is stored there?

Thank you!

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.

Hi,

You can use the user SFLASH region in PSoC 6 device to store the data that should retain even after programming. Please refer the KBA below and the attached project. The total size of data that you can store in user SFLASH region is 2048 bytes. Please check whether you can use this region to store your BLE device name data.

Store Custom Data in SFlash for PSoC 6 MCU Device – KBA228374

Thanks

Ganesh

View solution in original post

0 Likes
2 Replies
Alakananda_BG
Moderator
Moderator
Moderator
50 likes received 250 sign-ins 250 replies posted

Hi,

What is the data related to the BLE stored in the EEPROM? I know that the bonding list is stored there. Any other data is stored there?

>>All the configuration data, bonding data will be stored in the flash, you can refer the below documents

https://www.cypress.com/file/433761/download

https://www.cypress.com/file/399201/download

Regards

Alakananda

Alakananda
0 Likes
lock attach
Attachments are accessible only for community members.

Hi,

You can use the user SFLASH region in PSoC 6 device to store the data that should retain even after programming. Please refer the KBA below and the attached project. The total size of data that you can store in user SFLASH region is 2048 bytes. Please check whether you can use this region to store your BLE device name data.

Store Custom Data in SFlash for PSoC 6 MCU Device – KBA228374

Thanks

Ganesh

0 Likes