- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Just clarifying that it's 512 kb (kilo bits) = 64 kB (kilo bytes).
The interface to it is via I2C. Is there example code to access this non-volatile memory space?
I currently use the internal NV RAM (EEPROM) from 0x10 to 0x6F, but need a lot more.
Thanks!
Cheers,
Gil
Solved! Go to Solution.
- Labels:
-
FlashEEPROM
-
I2C
-
SDK 2.X
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The safest way to use the storage in the EEPROM is with bleprofile_*NVRAM() functions. These functions ensure that only space reserved for data storage is accessed.
If you want to use space outside of these areas, then you can try to use bleappfwu_readMem() and bleappfwu_writeMem() like in ws_upgrade.c (in uart_firmware_upgrade or ota_firmware_upgrade samples). But remember that the application code, patches and configuration are stored in the same EEPROM and overwriting this area will cause undefined behavior.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The safest way to use the storage in the EEPROM is with bleprofile_*NVRAM() functions. These functions ensure that only space reserved for data storage is accessed.
If you want to use space outside of these areas, then you can try to use bleappfwu_readMem() and bleappfwu_writeMem() like in ws_upgrade.c (in uart_firmware_upgrade or ota_firmware_upgrade samples). But remember that the application code, patches and configuration are stored in the same EEPROM and overwriting this area will cause undefined behavior.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks.
I don't mean the NV RAM storage from 0x10 to 0x6F available in the 20737 (and the "S"). I already use them with bleprofile_*NVRAM() functions.
The 203737S (SiP) module has an external (to the CPU, but inside the SiP) 512 kb (64 kB) EEPROM, accessible via I2C, according to the chip's block diagram on the datasheet.
That's what I would like to use. Is that what you're referring to?
Thanks again!
Cheers,
Gil
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, he is referring to the external EEPROM within the SIP module.
In this forum, NVRAM generally refers to external storage which include flash and eeprom.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So the 512 kb area is not intended for general purpose storage used by the application?
It could break things if it's used. Is that right?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You can use any area in the 512kb EEPROM that is not already used by the FW. To see what is used by the FW, you need to look at *-rom-ram-Wiced-release.hex file (this is an Intel hex file, so use your favorite text editor to view the contents) in the build directory and avoid all sections in this. In addition to this, also avoid DLConfigVSLength bytes starting at offset DLConfigVSLocation in Platforms/*/*_EEPROM.btp.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think you will find this post created by maxsong useful: WICED Smart BCM92073X EEPROM and SFLASH Layout