diff --git a/bioloid_controller_cm510/CMakeLists.txt b/bioloid_controller_cm510/CMakeLists.txt index 1921211d4e0e4ea74b8631f6556982e005be067a..f9a5fe1af1b823868ea44b10181bd177412598d7 100644 --- a/bioloid_controller_cm510/CMakeLists.txt +++ b/bioloid_controller_cm510/CMakeLists.txt @@ -129,7 +129,9 @@ add_library(${PROJECT_NAME} src/bioloid_controller_cm510.cpp ${BIOLOID_FW_PATH}/controllers/src/buzzer.c # communications modules ${BIOLOID_FW_PATH}/communications/src/dynamixel.c + ${BIOLOID_FW_PATH}/communications/src/memory.c # main application module +# ${ProjectPath}/cm510_vision.c ${ProjectPath}/stairs.c # AVR simulation modules src/sim/avr_delay.c diff --git a/bioloid_controller_cm510/include/sim/avr/eeprom.h b/bioloid_controller_cm510/include/sim/avr/eeprom.h new file mode 100644 index 0000000000000000000000000000000000000000..f192459ece967a0df5382cd0389f277459a33e75 --- /dev/null +++ b/bioloid_controller_cm510/include/sim/avr/eeprom.h @@ -0,0 +1,17 @@ +#ifndef _AVR_EEPROM_H +#define _AVR_EEPROM_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <avr/io.h> + +uint8_t eeprom_read_byte(const uint8_t *p); +void eeprom_write_byte(uint8_t *p, uint8_t value); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/bioloid_controller_cm510/src/sim/avr_eeprom.c b/bioloid_controller_cm510/src/sim/avr_eeprom.c new file mode 100644 index 0000000000000000000000000000000000000000..d9b904bfdf3427cdeb54b00a001ff7933ba57747 --- /dev/null +++ b/bioloid_controller_cm510/src/sim/avr_eeprom.c @@ -0,0 +1,15 @@ +#include "memory.h" + +#define EEPROM_BASE 0x00810000 + +uint8_t eeprom_mem[2*EEPROM_SIZE]={0xFF}; + +uint8_t eeprom_read_byte(const uint8_t *p) +{ + return eeprom_mem[(int)(p-EEPROM_BASE)]; +} + +void eeprom_write_byte(uint8_t *p, uint8_t value) +{ + eeprom_mem[(int)(p-EEPROM_BASE)]=value; +}