原因是单片机RAM内存不够了,检查程序发现一个超大的二维数组导致,修改后编译正常
#define BLE_OTA_ROW_MAX_LEN 100
#define BLE_OTA_DATA_MAX_LEN 2048
typedef struct
{
uint32_t Addr; //地址行
uint8_t SerialNum; //数据段序列号
uint8_t BinData[BLE_OTA_ROW_MAX_LEN][BLE_OTA_DATA_MAX_LEN];
uint8_t Crc8; //检验码
} BLE_tstrOtaPack; //蓝牙OTA数据包结构图