1.现象:
上电后一直复位:rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
原因:
Flash烧录时,ota_data和app0位置错了
解决:
把ota_data和app0位置烧录正确即可(位置从分区表去找)
2.现象:
调用modbus读函数后,系统复位重启
原因:
读取寄存器的全局变量的参数为:mb_parameter_descriptor_t Sub_deviceinfo_parameters[]
和实际调用mbc_master_get_parameter函数时,用的参数不一致,导致总线上数据虽然是对的(主要是mb_size不一致),导致modbus库和freertos挂了。
解决:
如果需要一个寄存器全局变量参数,对应多个读or写参数,每次调用mbc_master_set_descriptor写参数前,先把参数的值手动改为当次通讯需要的参数即可。
Sub_deviceinfo_parameters[R_TaskParam[SecNum].cid_type].mb_reg_start=R_TaskParam[SecNum].RegStart;
Sub_deviceinfo_parameters[R_TaskParam[SecNum].cid_type].mb_size=R_TaskParam[SecNum].RegSize;
err = mbc_master_set_descriptor(&Sub_deviceinfo_parameters[0], Sub_device_parameters_num);