- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi there,
We are receiving a build error upon adding the EmEEPROM component, and think it is an issue with the linker scripts since we are only using single core (cm4 never gets enabled). However we aren't too familiar with linker scripts -- we are looking for assistance on what is meant by "you must reallocate the declaration of the '.cy_em_eeprom' section' in the PDL for EmEEPROM? Thank you.
PDL description:
"Also note that by default, the Em_EEPROM storage is fully allocated to both of the PSoC 6 cores in the ".cy_em_eeprom" section. If the Em_EEPROM is used on one of the cores, you must reallocate the declaration of the ".cy_em_eeprom" section in both linker scripts. Otherwise, while building the project the cymcuelftool will report an error because of ".cy_em_eeprom" section contents collision."
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Steve,
The section '.cy_em_eeprom' allocated for two cores should have same initial values. If you use only cm0+ as well as BLE component, system will also allocate eeprom space in section '.cy_em_eeprom' to store BLE bonding list for only cm0+, which can cause mismatch between the two cores.
Given only cm0+ used, I believe you can just comment lines in cm4 linker file (.ld) to make it unaccessible to eeprom space:
em_eeprom (rx) : ORIGIN = 0x14000000, LENGTH = 0x8000 /* 32 KB */
or
/* Emulated EEPROM Flash area */
.cy_em_eeprom :
{
KEEP(*(.cy_em_eeprom))
} > em_eeprom
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Steve,
The section '.cy_em_eeprom' allocated for two cores should have same initial values. If you use only cm0+ as well as BLE component, system will also allocate eeprom space in section '.cy_em_eeprom' to store BLE bonding list for only cm0+, which can cause mismatch between the two cores.
Given only cm0+ used, I believe you can just comment lines in cm4 linker file (.ld) to make it unaccessible to eeprom space:
em_eeprom (rx) : ORIGIN = 0x14000000, LENGTH = 0x8000 /* 32 KB */
or
/* Emulated EEPROM Flash area */
.cy_em_eeprom :
{
KEEP(*(.cy_em_eeprom))
} > em_eeprom
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi fwan,
Thank you for your help! That did the job, both options successfully compile the project with EmEEPROM