- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I'm trying to use the emulated eeprom in a project, and I noticed that when I try to write something on the EM_EEPROM it would change the values of my global variables and break my code.
When I was debugging i noticed on the function Cy_Em_EEPROM_Write, the variables address are overlapping the other variable addresses:
wearLevelingFactor 0x00000001 0x2000024C (All) unsigned long
emEepromRowAddr 0x00000001 0x2000024C (All) unsigned long
On the pictures you can see that emEepromRowAddr is getting the same address than context->wearLevelingFactor
Does anyone know what could be the issue that is causing this?
Thank you!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry guys, I found the problem, it was a buffer defined inside my main it was a int with 800 positions, 3.2 kbytes, I only have 4kb. It was overflowing my ram, since it was inside my main, it wasn't giving me any error or warning.
Thank you, for all the help!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
From you screenshot, I find the userFlashStartAddr is not the "0x14000000" default.
Maybe you change the project cy8c6XX7_cm4.ld or cy8c6XX7_cm0plus.ld file.
It is recommend that you could open the creator P6 Em_EEPROM code example, programing, then open the *ld file to check the memory allocation.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I only have cm0plusgcc.ld and I cant find userFlashStartAddr in it.
I'm using psoc creator 4.2 and Em_EEPROM_v2.20.
Thank you!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please confirm what is provided as the 4th argument "context" when calling the Cy_Em_EEPROM_Write() function.
I suppose that the size of the structure given to the 4th argument is too short.
Regards,
Noriaki
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry guys, I found the problem, it was a buffer defined inside my main it was a int with 800 positions, 3.2 kbytes, I only have 4kb. It was overflowing my ram, since it was inside my main, it wasn't giving me any error or warning.
Thank you, for all the help!