【问题描述】
之前的系统参数用一个结构体变量tempBasicInfo来保存,成员类型有:uint8_t、uint16_t、结构体,结构体成员为uint8_t、uint16_t;今天需要添加一系列参数,用了一个uint8_t和三个uint8_t数组;以前配置完tempBasicInfo后会将其赋给常驻的stBasicInfo:
stBasicInfo = tempBasicInfo;
增加数组成员后,编译无错,但是调试时出现异常,如:断点不停,或是有时单步可以,突然某一步直接run了;
【问题处理】
查了半天,才定位到这里,用memcpy替代后,正常。谨记之~!!!
typedef struct // 基本系统参数
{
uint8_t CfgFlag;
uint8_t ProtocolType;
uint8_t Operator;
uint16_t CollectInterval;
uint16_t UploadInterval;
uint8_t TotalNum;
structIPAddress IPAddress; // IP address & port NO.
#if defined(xxx)
uint16_t dtuTempUploadInt;
uint16_t statUploadInt;
uint16_t tempUploadInt;
uint8_t para_f4; // dtu uplink parameters
uint8_t para_f10[PARA_LEN_DOWN_LINK]; // dtu down-link parameters
uint8_t para_f29[PARA_LEN_UPLOAD_DATA]; // control parameters of upload data
uint8_t para_f31[PARA_LEN_TIME]; // time parameters of dtu
#endif
}strcBasicInfo;