- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have to use some persistent memory for a project I am working on and haven't had to do this before on PSoC. Everything I saw points to using the Emulated EEPROM component to store it in flash on PSoC 4. However, the Emulated EEPROM component isn't available when developing for PRoC. Is there something PRoC is missing that is required for this component. It sounds like just a software API on top of flash.
I am working around it by making direct flash memory write calls. This has been working fine so far. I don't see a way to reserve flash memory so that my program code doesn't overwrite it but so far it is small enough that it hasn't been a problem. It would be good to use the same components across devices as much as possible. What is different about the PRoC that would prevent this from working?
- Labels:
-
BLE
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I cannot find a project where this was done. In TRM, Section F, there is a
discussion on FLASH calls for programming -
Regards, Dana.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I didn't know about the supervisory flash before. That could come in handy.
I ended up trying an experiment. While the IDE won't let me use the EmEEProm component, I was able to use it on a PSoC4 project and copy the generated files over to a PRoC project. This worked. I was able to run the Cypress example project both on the PSoC4 and PRoC with the generated files. So even though the IDE doesn't think it is supported, it works identically. This makes sense since it is just a software wrapper over other API calls.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thats good news, thanks for posting back.
Regards, Dana.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I did some test on the PRoC BLE (CYBL10563-56LQXI).
1) Copy the Em_EEPROM.c and .h from the example code of CE95313 to my project. If my project does not call the CyBle_Start(), the Em_EEPROM_Write() can store data into the flash. But if the project calls the CyBle_Start(), Em_EEPROM_Write() cannot store data into the flash. The return code is still SUCCESS.
2) Calling CyBle_StoreAppData() also can store data into the flash. (My chip has 128K flash, so I set the IMO to 48MHz in my project.)