我希望使用某些值初始化eeprom,但它没有按预期工作。我做错了什么:
从我在IAR中的.icf文件
define symbol __region_EEPROM_start__ = 0x08080030;
define symbol __region_EEPROM_end__ = 0x080807FF;
..
define region EEPROM_region = mem:[from __region_EEPROM_start__ to __region_EEPROM_end__];
..
place in EEPROM_region {rw section .eeprom};
在我的代码中:
__root char dataE[] @ ".eeprom" = {0xFF};
int
main (void)
{
init ()
然而 EEPROM 没有正确初始化,我在调试模式下得到的只是:
0x08080000 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x08080010 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x08080020 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x08080030 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
默认情况下,
编译器可以将EEPROM初始化为零。要初始化为不同的值,您必须单独编写它,然后加载它。或者在初始化部分的主要内容中执行此操作。