diff --git a/libraries/AP_HAL_AVR/Storage.cpp b/libraries/AP_HAL_AVR/Storage.cpp index f2fb42016a..208d4a0ea7 100644 --- a/libraries/AP_HAL_AVR/Storage.cpp +++ b/libraries/AP_HAL_AVR/Storage.cpp @@ -4,35 +4,35 @@ #include "Storage.h" using namespace AP_HAL_AVR; -uint8_t AVREEPROMStorage::read_byte(const uint8_t *p) { - return eeprom_read_byte(p); +uint8_t AVREEPROMStorage::read_byte(uint16_t loc) { + return eeprom_read_byte((uint8_t*)loc); } -uint16_t AVREEPROMStorage::read_word(const uint16_t *p) { - return eeprom_read_word(p); +uint16_t AVREEPROMStorage::read_word(uint16_t loc) { + return eeprom_read_word((uint16_t*)loc); } -uint32_t AVREEPROMStorage::read_dword(const uint32_t *p) { - return eeprom_read_dword(p); +uint32_t AVREEPROMStorage::read_dword(uint16_t loc) { + return eeprom_read_dword((uint32_t*)loc); } -void AVREEPROMStorage::read_block(void *dst, const void *src, size_t n) { - eeprom_read_block(dst,src,n); +void AVREEPROMStorage::read_block(void *dst, uint16_t src, size_t n) { + eeprom_read_block(dst,(const void*)src,n); } -void AVREEPROMStorage::write_byte(uint8_t *p, uint8_t value) { - eeprom_write_byte(p,value); +void AVREEPROMStorage::write_byte(uint16_t loc, uint8_t value) { + eeprom_write_byte((uint8_t*)loc,value); } -void AVREEPROMStorage::write_word(uint16_t *p, uint16_t value) { - eeprom_write_word(p,value); +void AVREEPROMStorage::write_word(uint16_t loc, uint16_t value) { + eeprom_write_word((uint16_t*)loc,value); } -void AVREEPROMStorage::write_dword(uint32_t *p, uint32_t value) { - eeprom_write_dword(p,value); +void AVREEPROMStorage::write_dword(uint16_t loc, uint32_t value) { + eeprom_write_dword((uint32_t*)loc,value); } -void AVREEPROMStorage::write_block(void *src, void *dst, size_t n) { - eeprom_write_block(src,dst,n); +void AVREEPROMStorage::write_block(uint16_t dst, void *src, size_t n) { + eeprom_write_block(src,(void*)dst,n); } diff --git a/libraries/AP_HAL_AVR/Storage.h b/libraries/AP_HAL_AVR/Storage.h index b6efadd36a..fc70fa964e 100644 --- a/libraries/AP_HAL_AVR/Storage.h +++ b/libraries/AP_HAL_AVR/Storage.h @@ -9,16 +9,16 @@ class AP_HAL_AVR::AVREEPROMStorage : public AP_HAL::Storage { public: AVREEPROMStorage() {} - void init(void* machtnicht) {} - uint8_t read_byte(const uint8_t *p); - uint16_t read_word(const uint16_t *p); - uint32_t read_dword(const uint32_t *p); - void read_block(void *dst, const void *src, size_t n); + void init(void* machtnichts) {} + uint8_t read_byte(uint16_t loc); + uint16_t read_word(uint16_t loc); + uint32_t read_dword(uint16_t loc); + void read_block(void *dst, uint16_t src, size_t n); - void write_byte(uint8_t *p, uint8_t value); - void write_word(uint16_t *p, uint16_t value); - void write_dword(uint32_t *p, uint32_t value); - void write_block(void *src, void *dst, size_t n); + void write_byte(uint16_t loc, uint8_t value); + void write_word(uint16_t loc, uint16_t value); + void write_dword(uint16_t loc, uint32_t value); + void write_block(uint16_t dst, void* src, size_t n); }; #endif // __AP_HAL_AVR_STORAGE_H__ diff --git a/libraries/AP_HAL_AVR/examples/Storage/Storage.pde b/libraries/AP_HAL_AVR/examples/Storage/Storage.pde index 9d4f11f27a..acb983decb 100644 --- a/libraries/AP_HAL_AVR/examples/Storage/Storage.pde +++ b/libraries/AP_HAL_AVR/examples/Storage/Storage.pde @@ -11,14 +11,14 @@ uint8_t fibs[12] = { 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 }; void test_erase() { hal.console->printf_P(PSTR("erasing... ")); for(int i = 0; i < 100; i++) { - hal.storage->write_byte((uint8_t*)i, 0); + hal.storage->write_byte(i, 0); } hal.console->printf_P(PSTR(" done.\r\n")); } void test_write() { hal.console->printf_P(PSTR("writing... ")); - hal.storage->write_block(fibs, (uint8_t*)0, 12); + hal.storage->write_block(0, fibs, 12); hal.console->printf_P(PSTR(" done.\r\n")); } @@ -26,7 +26,7 @@ void test_readback() { hal.console->printf_P(PSTR("reading back...\r\n")); uint8_t readback[12]; bool success = true; - hal.storage->read_block(readback, (uint8_t*)0, 12); + hal.storage->read_block(readback, 0, 12); for (int i = 0; i < 12; i++) { if (readback[i] != fibs[i]) { success = false;