diff --git a/dynamixel_base/include/dynamixel_slave_registers.h b/dynamixel_base/include/dynamixel_slave_registers.h index 46cef2b79342753136e2514c7ce41c79383306a1..40f60b49385636e2d818fc5562af66efefb639b8 100644 --- a/dynamixel_base/include/dynamixel_slave_registers.h +++ b/dynamixel_base/include/dynamixel_slave_registers.h @@ -14,13 +14,15 @@ #define RETURN_LEVEL 0 #define dyn_slave_control_eeprom_data(name,section_name,base_address1,base_address2,DEFAULT_DEVICE_MODEL,DEFAULT_FIRMWARE_VERSION,DEFAULT_DEVICE_ID,DEFAULT_BAUDRATE,DEFAULT_RETURN_DELAY,DEFAULT_RETURN_LEVEL) \ -unsigned short int name##_eeprom_data[] __attribute__ ((section (section_name)))={DEFAULT_DEVICE_MODEL&0x00FF,(DEFAULT_DEVICE_ID<<8) + base_address1+DEVICE_MODEL, \ - (DEFAULT_DEVICE_MODEL>>8)&0x00FF,(DEFAULT_DEVICE_ID<<8) + base_address1+DEVICE_MODEL+1, \ - DEFAULT_FIRMWARE_VERSION,(DEFAULT_DEVICE_ID<<8) + base_address1+FIRMWARE_VERSION, \ - DEFAULT_DEVICE_ID,(DEFAULT_DEVICE_ID<<8) + base_address1+DEVICE_ID, \ - DEFAULT_BAUDRATE,(DEFAULT_DEVICE_ID<<8) + base_address1+BAUDRATE, \ - DEFAULT_RETURN_DELAY,(DEFAULT_DEVICE_ID<<8) + base_address1+RETURN_DELAY, \ - DEFAULT_RETURN_LEVEL,(DEFAULT_DEVICE_ID<<8) + base_address2+RETURN_LEVEL}; +unsigned short int name##_eeprom_data[] __attribute__ ((section (section_name))) __attribute__ ((aligned (4)))= {\ + DEFAULT_DEVICE_MODEL&0x00FF,base_address1+DEVICE_MODEL, \ + (DEFAULT_DEVICE_MODEL>>8)&0x00FF,base_address1+DEVICE_MODEL+1, \ + DEFAULT_FIRMWARE_VERSION,base_address1+FIRMWARE_VERSION, \ + DEFAULT_DEVICE_ID,base_address1+DEVICE_ID, \ + DEFAULT_BAUDRATE,base_address1+BAUDRATE, \ + DEFAULT_RETURN_DELAY,base_address1+RETURN_DELAY, \ + DEFAULT_RETURN_LEVEL,base_address2+RETURN_LEVEL \ +}; #endif diff --git a/dynamixel_base/src/dynamixel_slave_device.c b/dynamixel_base/src/dynamixel_slave_device.c index 25ae4dfa993643d1b031add57f913495caace089..3d792dc043937e39ce47630f8ed16f8b8c868ee4 100644 --- a/dynamixel_base/src/dynamixel_slave_device.c +++ b/dynamixel_base/src/dynamixel_slave_device.c @@ -403,7 +403,7 @@ unsigned char dyn_slave_device_init(TDynamixelSlaveDevice *device,unsigned char device->bulk_read_pending=0x00; /* initialize memory module */ - mem_init(&device->memory,address); + mem_init(&device->memory); mem_module_init(&device->mem_module); device->mem_module.data=device; device->mem_module.write_cmd=(void(*)(void *,unsigned short int, unsigned short int,unsigned char *))dyn_slave_device_write_cmd;