X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fstm%2Fao_eeprom_stm.c;h=db4d6a49f0b5801b08ea1cb8f555cbe7c1960d3e;hp=4f477122784975f78db3eda27e2ac021c342ccda;hb=HEAD;hpb=89ecc32b90565ace078c4a84d4406a4d1f86821a diff --git a/src/stm/ao_eeprom_stm.c b/src/stm/ao_eeprom_stm.c index 4f477122..ed2d2e41 100644 --- a/src/stm/ao_eeprom_stm.c +++ b/src/stm/ao_eeprom_stm.c @@ -20,7 +20,7 @@ #include /* Total bytes of available storage */ -const ao_pos_t ao_eeprom_total = 4096; +#define ao_eeprom_total 4096 /* Location of eeprom in address space */ #define stm_eeprom ((uint8_t *) 0x08080000) @@ -103,7 +103,7 @@ ao_intflash_write8(uint16_t pos, uint8_t d) mask = 0xff << shift; w = (*addr & ~mask) | (d << shift); - ao_intflash_write32(pos & ~3, w); + ao_intflash_write32(pos & (uint16_t)~3, w); } static uint8_t @@ -117,10 +117,10 @@ ao_intflash_read(uint16_t pos) */ uint8_t -ao_eeprom_write(ao_pos_t pos32, __xdata void *v, uint16_t len) +ao_eeprom_write(ao_pos_t pos32, void *v, uint16_t len) { - uint16_t pos = pos32; - __xdata uint8_t *d = v; + uint16_t pos = (uint16_t) pos32; + uint8_t *d = v; if (pos >= ao_eeprom_total || pos + len > ao_eeprom_total) return 0; @@ -130,7 +130,7 @@ ao_eeprom_write(ao_pos_t pos32, __xdata void *v, uint16_t len) if ((pos & 3) == 0 && len >= 4) { uint32_t w; - w = d[0] | (d[1] << 8) | (d[2] << 16) | (d[3] << 24); + w = (uint32_t) d[0] | ((uint32_t) d[1] << 8) | ((uint32_t) d[2] << 16) | ((uint32_t) d[3] << 24); ao_intflash_write32(pos, w); pos += 4; d += 4; @@ -151,14 +151,14 @@ ao_eeprom_write(ao_pos_t pos32, __xdata void *v, uint16_t len) * Read from eeprom */ uint8_t -ao_eeprom_read(ao_pos_t pos, __xdata void *v, uint16_t len) +ao_eeprom_read(ao_pos_t pos, void *v, uint16_t len) { uint8_t *d = v; if (pos >= ao_eeprom_total || pos + len > ao_eeprom_total) return 0; while (len--) - *d++ = ao_intflash_read(pos++); + *d++ = ao_intflash_read((uint16_t) (pos++)); return 1; }