projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Move ao_adc_single.h API header to kernel/
[fw/altos]
/
src
/
stm
/
ao_eeprom_stm.c
diff --git
a/src/stm/ao_eeprom_stm.c
b/src/stm/ao_eeprom_stm.c
index 05f880b851d351fa24c33e388e55a0f93923b3d2..ed2d2e41728d0fc3a00f5c9ff1638a9db2f8bb50 100644
(file)
--- a/
src/stm/ao_eeprom_stm.c
+++ b/
src/stm/ao_eeprom_stm.c
@@
-20,7
+20,7
@@
#include <ao_eeprom.h>
/* Total bytes of available storage */
#include <ao_eeprom.h>
/* 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)
/* Location of eeprom in address space */
#define stm_eeprom ((uint8_t *) 0x08080000)
@@
-83,7
+83,7
@@
ao_intflash_write32(uint16_t pos, uint32_t w)
{
volatile uint32_t *addr;
{
volatile uint32_t *addr;
- addr = (uint32_t *) (stm_eeprom + pos);
+ addr = (uint32_t *) (
void *) (
stm_eeprom + pos);
/* Write a word to a valid address in the data EEPROM */
*addr = w;
/* Write a word to a valid address in the data EEPROM */
*addr = w;
@@
-96,14
+96,14
@@
ao_intflash_write8(uint16_t pos, uint8_t d)
uint32_t w, *addr, mask;
uint8_t shift;
uint32_t w, *addr, mask;
uint8_t shift;
- addr = (uint32_t *) (stm_eeprom + (pos & ~3));
+ addr = (uint32_t *) (
void *) (
stm_eeprom + (pos & ~3));
/* Compute word to be written */
shift = (pos & 3) << 3;
mask = 0xff << shift;
w = (*addr & ~mask) | (d << shift);
/* Compute word to be written */
shift = (pos & 3) << 3;
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
}
static uint8_t
@@
-117,10
+117,10
@@
ao_intflash_read(uint16_t pos)
*/
uint8_t
*/
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;
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;
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;
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
* 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--)
{
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;
}
return 1;
}