Closed
Description
Hello all,
I use EEMEM with library #include <avr/eeprom.h>
.
It very practical, because I can use "read block", "update block" and "write block"
without giving EEPROM addresses.
Example:
EEMEM uint8_t EEPROM_K[12] =
{ 0xE8, 0x03, 0x00, 0x00,
0xD0, 0x07, 0x00, 0x00,
0xC8, 0x00, 0x00, 0x00 }; // E8 03 00 00 _ D0 07 00 00 _ C8 00 00 00
uint8_t K_bytes[12];
eeprom_read_block((void*)K_bytes, (const void*)EEPROM_K, 12);
When doing variable declaration, according to the AVR-documentation (attached),
the compiler should begin with address 0 and ascending 1,2,3, ................
In the new version 1.6.4 the last EEMEM declaration begins with address 0. It has
changed the EEPROM addressing in a reversed way (from down to up)
V1.0.5
// EEPROM-addresses
EEMEM char string1[6]= "abcdef"; // 0, 1, 2 , 3, 4, 5
EEMEM char string2[6]= "ghijkl"; // 6, 7, 8, 9, 10, 11
Now with V1.6.4 (not logical for humans)
// EEPROM-addresses
EEMEM char string1[6]= "abcdef"; // 6, 7, 8, 9, 10, 11
EEMEM char string2[6]= "ghijkl"; // 0, 1, 2 , 3, 4, 5
Jack