CAN_ODENTRY objDic [] = { /* index, subindexaccess_type | length,value_pointer */ { 0x1000,0x00,OD_EXP_RO| 4,(uint8_t *)&deviceType}, { 0x1800,0x02,OD_EXP_RW| 4,(uint8_t *)&transmitionType}, { 0x1800,0x03,OD_EXP_RW| 4,(uint8_t *)&inhibitTime}, { SE_1_INDEX,0x00,OD_EXP_RO| 4,(uint8_t *)&numOfSeSubIndexes}, { SE_1_INDEX,SE_ON_SUBINDEX,OD_EXP_RW| 4,(uint8_t *)&se1Enable}, { SE_1_INDEX,SE_GAIN_SUBINDEX,OD_EXP_RW| 4,(uint8_t *)&se1Gain}, { SE_1_INDEX,SE_CURRENT_OPTION,OD_EXP_RW| 4,(uint8_t *)&se1CurrentOption}, { SE_1_INDEX,SE_SAMPLING_TIME,OD_EXP_RW| 4,(uint8_t *)&se1SamplingTimeUs}, { SE_1_INDEX,USE_IIR_SUBINDEX,OD_EXP_RW| 4,(uint8_t *)&se1UseIir}, { SE_1_INDEX,IIR_A0,OD_EXP_RW| 4,(uint8_t *)&se1A0}, { SE_1_INDEX,IIR_A1,OD_EXP_RW| 4,(uint8_t *)&se1A1}, { SE_1_INDEX,IIR_A2,OD_EXP_RW| 4,(uint8_t *)&se1A2}, { SE_1_INDEX,IIR_A3,OD_EXP_RW| 4,(uint8_t *)&se1A3}, { SE_1_INDEX,IIR_B0,OD_EXP_RW| 4,(uint8_t *)&se1B0}, { SE_1_INDEX,IIR_B1,OD_EXP_RW| 4,(uint8_t *)&se1B1}, { SE_1_INDEX,IIR_B2,OD_EXP_RW| 4,(uint8_t *)&se1B2}, { SE_1_INDEX,IIR_B3,OD_EXP_RW| 4,(uint8_t *)&se1B3}, { SE_1_INDEX,SE_ADC_VALUE_SUBINDX,OD_EXP_RO| 4,(uint8_t *)&se1AdcValue}, { SE_1_INDEX,SE_VOLTAGE_VALUE_SUBINDEX,OD_EXP_RO| 4,(uint8_t *)&se1Voltage}, ... and so on,. 259 elements. }; ... CAN_CANOPENCFG canOpenConfigStruct = { 1, // node_id 5, // msgobj_rx 6, // msgobj_tx 1, // isr_handled sizeof(constObjDic)/sizeof(constObjDic[0]), // od_const_num (CAN_ODCONSTENTRY *)constObjDic, // od_const_table sizeof(objDic)/sizeof(objDic[0]), // od_num (CAN_ODENTRY *)objDic, // od_table }; ... ...somewhere in my code... ROM **rom = (ROM **)0x1fff1ff8; ... (*rom)->pCAND->config_canopen((CAN_CANOPENCFG *)&canOpenConfigStruct); ... |