You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
esp32 — just return -ENOSYS (or -1?), no nvm (at least other methods return -1)
avr — it has nvm implementation. AVR libc has only single block update function, source. If two dst_p blocks are in the same eeprom page, they probably should be written in single "erase and write" operation, like in eeprom_soft's vwrite_inner. BTW, looks like nvm avr port, delegated to AVR-libc's eeprom_update_block and so on, somewhat duplicates functionality of Simba eeprom_soft, so maybe it's okay to return -ENOSYS here too and tell user to use eeprom_soft for such complex cases.
Not sure about other architectures/MCUs: pic, spc56, stm32, xhypervisor
The same happens for nodemcu, esp01, esp12e boards.
That probably means that "nvm" functionality is not supported on esp8266 (does it refer to some memory that is persistent after power off, but not main flash memory?). I was able to build using following defines (in config.h):
I don't know the right values of these parameters; just setting CONFIG_NVM_EEPROM_SOFT 1 causes section `.bss' is not within region `dram0_0_seg' linker error, I found these chunk and block sizes experimentally and not yet tested such configuration on device.
So,
What are "sane defaults" of *NVM_EEPROM_SOFT* defines for esp8266? Looks like "soft nvm" uses RAM and flash ROM, and esp8266 has 80kB of user-usable RAM, and flash memory might be different on different boards but common block size is 4kB.
linux
esp
— just return-ENOSYS
(or -1?), no nvmesp32
— just return-ENOSYS
(or -1?), no nvm (at least other methods return -1)avr
— it has nvm implementation. AVR libc has only single block update function, source. If twodst_p
blocks are in the same eeprom page, they probably should be written in single "erase and write" operation, like ineeprom_soft
'svwrite_inner
. BTW, looks like nvm avr port, delegated to AVR-libc'seeprom_update_block
and so on, somewhat duplicates functionality of Simbaeeprom_soft
, so maybe it's okay to return-ENOSYS
here too and tell user to useeeprom_soft
for such complex cases.Not sure about other architectures/MCUs: pic, spc56, stm32, xhypervisor
I'm trying to build hello world application for
nodemcu
board usingmaster
branch of Simba (351d933).Makefile
:main.c
:I get this error when building it:
The same happens for
nodemcu
,esp01
,esp12e
boards.That probably means that "nvm" functionality is not supported on esp8266 (does it refer to some memory that is persistent after power off, but not main flash memory?). I was able to build using following defines (in
config.h
):I don't know the right values of these parameters; just setting
CONFIG_NVM_EEPROM_SOFT 1
causessection `.bss' is not within region `dram0_0_seg'
linker error, I found these chunk and block sizes experimentally and not yet tested such configuration on device.So,
*NVM_EEPROM_SOFT*
defines for esp8266? Looks like "soft nvm" uses RAM and flash ROM, and esp8266 has 80kB of user-usable RAM, and flash memory might be different on different boards but common block size is 4kB.Might be related to #146 (but there's runtime problem, not compile-time).
The text was updated successfully, but these errors were encountered: