[En-Nut-Discussion] EEPROM use
Harald Kipp
harald.kipp at egnite.de
Mon May 14 12:08:31 CEST 2012
Hi Ayman,
On 13.05.2012 10:16, Ayman Hendawy wrote:
> uint8_t save = 99;
> uint8_t load;
> OnChipNvMemSave ( 512, &save, sizeof(uint8_t));
>
> OnChipNvMemLoad ( 512, &load, sizeof(uint8_t));
> But I never read 99 from load, I never read a correct value, I always read
> garbag data,
It should work. Did you get any warnings from the compiler?
> may be the problem in the addresses, but I tried to change it many times
> with different values with no result,
The ATmega128 got 4096 EEPROM bytes, so address 512 is OK.
> By the way may be the problem in the make file, how can I update make file
> to create the necessary file.
Nothing special is required in the Makefile.
I assume, that the problem is somewhere else. Do you know the following page?
http://www.ethernut.de/nutwiki/Non-Volatile_Memory
If you like, you can replace NutNvMemXXX by OnChipNvMemXXX. The former is just more portable, because not every CPU has an on-chip EEPROM.
Are you aware, that the EESAVE fuse must be programmed to retain EEPROM contents during chip erase?
Regards,
Harald
P.S.: Please let us know what you found out. I'm still missing your response to
http://lists.egnite.de/pipermail/en-nut-discussion/2012-March/013453.html
I assume that you solved the problem. It may be helpful for others to know what went wrong. Thanks.
More information about the En-Nut-Discussion
mailing list