все так, кроме объявления регистров по прикладному коду - такого у меня нет, все объявлено в одном месте. самый верхний уровень описания:
//! карта сегментов в адресном пространстве Modbus
regmap_segment_t segment_map1[MB_SEG_NUM]=
{
SG_CONST,static_cast<void const*>(device_ver),0 ,LENOF(device_ver),
SG_RAM ,password1 ,LENOF(device_ver) ,LENOF(password1),
SG_FUNC ,&mbRTC ,LENOF(device_ver)+LENOF(password1),5,
SG_RAM ,dnk_state ,8 ,LENOF(dnk_state),
SG_FUNC ,&mbOutputs ,57 ,1,
SG_RAM ,dnk_state2 ,58 ,LENOF(dnk_state2),
SG_SETUP,settings4 ,58+LENOF(dnk_state2) ,LENOF(settings4),
SG_FUNC ,&mbPstatus ,68 ,4,
SG_FUNC ,&mbResetAll ,72 ,1,
SG_SETUP,settings2 ,73 ,LENOF(settings2),
SG_FUNC ,&mbCom1Speed ,73+LENOF(settings2) ,1,
SG_SETUP,com1_settings ,73+LENOF(settings2)+1 ,3,
SG_FUNC ,&mbCom2Speed ,73+LENOF(settings2)+4 ,1,
SG_SETUP,com2_settings ,73+LENOF(settings2)+5 ,3,
SG_SETUP,settings3 ,104 ,LENOF(settings3),
SG_FUNC ,&alarmlog ,109 ,ALCORE_LOG_LEN*4,
SG_FUNC ,&alarmlog_staterec ,187 ALCORE_LOG_LEN*DATA_FIELD_QTY,
SG_SETUP,mbg_settings ,1082 ,17,
SG_SETUP,mbg_device_settings ,1099 ,GATEWAY_DEV_QTY*2,
SG_FUNC ,&mbg_slave_status ,1099+GATEWAY_DEV_QTY*2 ,1,
SG_FUNC ,&mbg_slave_errors ,1100+GATEWAY_DEV_QTY*2 ,1,
SG_FUNC ,&mbg_reg_cfg ,1139 ,GATEWAY_REG_QTY*3,
SG_FUNC ,&mbg_regs ,2000 ,GATEWAY_REG_QTY
};