修改内存溢出bug

This commit is contained in:
haifeng.wang 2025-04-10 16:16:07 +08:00
parent 2a6515926f
commit 86cba307d2
5 changed files with 177 additions and 1002 deletions

File diff suppressed because it is too large Load Diff

View File

@ -75,7 +75,10 @@ extern TIM_HandleTypeDef htim1;
void NMI_Handler(void) void NMI_Handler(void)
{ {
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
uint32_t cfsr = SCB->CFSR;
printf("\n*** NMI_Handler occur cfsr =%x***\n",cfsr);
/* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */

View File

@ -85,7 +85,7 @@ const uint8_t SOFTWARE_VER_MINOR = 201; // TTS-4G
//const uint8_t SOFTWARE_DATE_DAY = 4; //const uint8_t SOFTWARE_DATE_DAY = 4;
const uint8_t SOFTWARE_DATE_YEAR = 25; const uint8_t SOFTWARE_DATE_YEAR = 25;
const uint8_t SOFTWARE_DATE_MONTH = 4; const uint8_t SOFTWARE_DATE_MONTH = 4;
const uint8_t SOFTWARE_DATE_DAY = 2; const uint8_t SOFTWARE_DATE_DAY = 10;
// 存储格式版本号=1.1 // 存储格式版本号=1.1
const uint8_t CONFIG_FORMAT_VER_MAJOR = 1; const uint8_t CONFIG_FORMAT_VER_MAJOR = 1;

View File

@ -723,7 +723,7 @@ void Meter_Disp()
{ {
// GPRS错误代码 // GPRS错误代码
Disp_Fld1Text(dcBuff.powerInfo.gprsFailCode); Disp_Fld1Text(dcBuff.powerInfo.gprsFailCode);
// sprintf(text, "%d", SYS_RSTSTS); // 复位原因; // sprintf(text, "%d", dcBuff.powerInfo.gprsFailCode); // 复位原因;
// Disp_Fld1Text(text); // Disp_Fld1Text(text);
// 定位日期 // 定位日期
sprintf(text, "%02d%02d%02d", dcBuff.dtuData.sysTime.year, dcBuff.dtuData.sysTime.month, sprintf(text, "%02d%02d%02d", dcBuff.dtuData.sysTime.year, dcBuff.dtuData.sysTime.month,

View File

@ -62,8 +62,8 @@ uint8_t Task_sendBuff[TASK_SENDBUFF_SIZE] = {0}; //
#else #else
#define TASK_RECVBUFF_SIZE (SFLASH_ERASE_SIZE) #define TASK_RECVBUFF_SIZE (SFLASH_ERASE_SIZE)
#endif #endif
uint8_t Task_recvBuff[TASK_RECVBUFF_SIZE] = {0}; // À©Õ¹ÄÚ´æ //uint8_t Task_recvBuff[TASK_RECVBUFF_SIZE] = {0}; // À©Õ¹ÄÚ´æ
uint8_t Task_recvBuff[1200] = {0}; // À©Õ¹ÄÚ´æ
// 信号量,用于通知执行任务 // 信号量,用于通知执行任务
volatile uint8_t DTU_semGPS = 0; volatile uint8_t DTU_semGPS = 0;
volatile uint8_t DTU_semGPRS = 0; volatile uint8_t DTU_semGPRS = 0;
@ -3630,7 +3630,7 @@ void DTU_setOffsetSecondsFromServer()
} }
} }
char pakistan_data[300]; char pakistan_data[400];
uint16_t Pack_Pakistan_Json_Data(void) uint16_t Pack_Pakistan_Json_Data(void)
{ {
uint16_t len = 0; uint16_t len = 0;
@ -3650,22 +3650,22 @@ uint16_t Pack_Pakistan_Json_Data(void)
dcBuff.configBottle.emptyPct * 0.01f, 0,0,0, dcBuff.configData.intervalTrans / 60); dcBuff.configBottle.emptyPct * 0.01f, 0,0,0, dcBuff.configData.intervalTrans / 60);
#else #else
len = sprintf(pakistan_data,"{\"PSN\":20%02d%02d%02d%02d%03d,\"Tank_Pressure\":%.2f,\"Tank_Level\":%.2f,\ len = sprintf(pakistan_data,"{\"PSN\":20%02d%02d%02d%02d%03d,\"Tank_Pressure\":%.2f,\"Tank_Level\":%.2f,\
\"Manf_Pressure\":%d,\"Tank_Pressure_High\":%.2f,\"Tank_Pressure_Low\":%.2f,\"Tank_Pressure2_High\":%.2f,\"Tank_Pressure2_Low\":%.2f,\"Tank_Level_High\":%.2f,\ \"Manf_Pressure\":%.2f,\"Manf_Pressure_High\":%.2f,\"Manf_Pressure_Low\":%.2f,\"Tank_Pressure_High\":%.2f,\"Tank_Pressure_Low\":%.2f,\"Tank_Level_High\":%.2f,\
\"Tank_Level_Low\":%.2f,\"Tank_Level_Reorder\":%d,\"Manf_Pressure_High\":%d,\ \"Tank_Level_Low\":%.2f,\"Tank_Level_Reorder\":%d,\"Interval\":%d}",
\"Manf_Pressure_Low\":%d,\"Interval\":%d}",
dcBuff.configBottle.PSN[0], dcBuff.configBottle.PSN[1], dcBuff.configBottle.PSN[0], dcBuff.configBottle.PSN[1],
dcBuff.configBottle.PSN[2], dcBuff.configBottle.PSN[3], dcBuff.configBottle.PSN[2], dcBuff.configBottle.PSN[3],
(dcBuff.configBottle.PSN[4] << 8) | dcBuff.configBottle.PSN[5], (dcBuff.configBottle.PSN[4] << 8) | dcBuff.configBottle.PSN[5],
(float)dcBuff.sampleData.pressure * 0.01f, (float)dcBuff.sampleData.pressure * 0.01f,
KPa2mmH2O(dcBuff.sampleData.diff), 0, KPa2mmH2O(dcBuff.sampleData.diff),
(float)dcBuff.sampleData.extPressure[0]*0.01f,
dcBuff.configBottle.warnPressH2 * 0.01f,
dcBuff.configBottle.warnPress2 * 0.01f,
dcBuff.configBottle.warnPressH * 0.01f, dcBuff.configBottle.warnPressH * 0.01f,
dcBuff.configBottle.warnPress * 0.01f, dcBuff.configBottle.warnPress * 0.01f,
dcBuff.configBottle.warnPressH2 * 0.01f,
dcBuff.configBottle.warnPress2 * 0.01f,
dcBuff.configBottle.fullPct * 0.01f, dcBuff.configBottle.fullPct * 0.01f,
dcBuff.configBottle.emptyPct * 0.01f, 0,0,0, dcBuff.configData.intervalTrans / 60); dcBuff.configBottle.emptyPct * 0.01f, 0, dcBuff.configData.intervalTrans / 60);
#endif #endif
return(len); return(len);
} }
@ -4115,7 +4115,7 @@ void DTU_Task(void *p_arg)
// 是否下载参数:数据服务器 // 是否下载参数:数据服务器
downloadParam = 0; downloadParam = 0;
ackParam = 0; ackParam = 0;
dcBuff.configDisplay.op_SERVER_PROTOCOL =SERVER_PROTOCOL_PAKISTAN;
if(dcBuff.configDisplay.op_SERVER_PROTOCOL == SERVER_PROTOCOL_HTTPS) if(dcBuff.configDisplay.op_SERVER_PROTOCOL == SERVER_PROTOCOL_HTTPS)
{ {
try_count = 2; try_count = 2;
@ -4206,13 +4206,12 @@ sig=dFgP23aabJi6dMl7X2wf8JBfexlMB4xO7Zy6Gkxb2CI";
// char *Pakistan_example = "{\"PSN\":2456548901234,\"Tank_Pressure\":12,\"Tank_Level\":400.55,\ // char *Pakistan_example = "{\"PSN\":2456548901234,\"Tank_Pressure\":12,\"Tank_Level\":400.55,\
//\"Manf_Pressure\":8,\"Tank_Pressure_High\":10,\"Tank_Pressure_Low\":2,\"Tank_Level_High\":600.45,\ //\"Manf_Pressure\":8,\"Tank_Pressure_High\":10,\"Tank_Pressure_Low\":2,\"Tank_Level_High\":600.45,\
//\"Tank_Level_Low\":200.00,\"Tank_Level_Reorder\":350.00,\"Manf_Pressure_High\":5,\ //\"Tank_Level_Low\":200.00,\"Tank_Level_Reorder\":350.00,\"Manf_Pressure_High\":5,\
//\"Manf_Pressure_Low\":1,\"Interval\":45}"; //\"Manf_Pressure_Low\":1,\"Interval\":45}";
// i = strlen(Pakistan_example); // i = strlen(Pakistan_example);
i = Pack_Pakistan_Json_Data(); i = Pack_Pakistan_Json_Data();
sprintf((char *) Task_sendBuff, http_header_fmt, Pakistan_url, Pakistan_server, i); sprintf((char *) Task_sendBuff, http_header_fmt, Pakistan_url, Pakistan_server, i);
printf("\n\n%s%s\n", Task_sendBuff, pakistan_data); // printf("\n\n%s%s\n", Task_sendBuff, pakistan_data);
recvLen = 0; // 发送HTTP头完了直接返回不等结果 recvLen = 0; // 发送HTTP头完了直接返回不等结果
if(!Sim808_SendAndRecv(1, Task_sendBuff, strlen((char *) Task_sendBuff), &recvLen, Task_recvBuff, sizeof(Task_recvBuff))) if(!Sim808_SendAndRecv(1, Task_sendBuff, strlen((char *) Task_sendBuff), &recvLen, Task_recvBuff, sizeof(Task_recvBuff)))
@ -4220,13 +4219,16 @@ sig=dFgP23aabJi6dMl7X2wf8JBfexlMB4xO7Zy6Gkxb2CI";
recvLen = 15; // 发送数据,完了等结果 recvLen = 15; // 发送数据,完了等结果
if(!Sim808_SendAndRecv(1, (uint8_t *) pakistan_data, i, &recvLen, Task_recvBuff, sizeof(Task_recvBuff))) if(!Sim808_SendAndRecv(1, (uint8_t *) pakistan_data, i, &recvLen, Task_recvBuff, sizeof(Task_recvBuff)))
break; break;
//if(!Sim808_SendAndRecv(1, (uint8_t *) Pakistan_example, i, &recvLen, Task_recvBuff, sizeof(Task_recvBuff)))
printf("\n\n%s\n", Task_recvBuff); // break;
if(!strstr((char *) Task_recvBuff, "HTTP/1.1 200 OK"))
{
strcpy(dcBuff.powerInfo.gprsFailCode, "HTTP"); //printf("\n\n%s\n", Task_recvBuff);
break; // if(!strstr((char *) Task_recvBuff, "HTTP/1.1 200 OK"))
} // {
// strcpy(dcBuff.powerInfo.gprsFailCode, "HTTP");
// break;
// }
dcBuff.powerInfo.gprsSuccCount++; dcBuff.powerInfo.gprsSuccCount++;
// 最近一条上传数据的采集时间 // 最近一条上传数据的采集时间
@ -4794,6 +4796,8 @@ sig=dFgP23aabJi6dMl7X2wf8JBfexlMB4xO7Zy6Gkxb2CI";
while((try_count--) && (k || upgrade || ackUpgrade || downloadParam || ackParam || downloadConfig || ackConfig)) while((try_count--) && (k || upgrade || ackUpgrade || downloadParam || ackParam || downloadConfig || ackConfig))
{ {
// 连接升级服务器 // 连接升级服务器
strcpy(dcBuff.configData.upgServer, "extra.cd-ls.cn");
dcBuff.configData.upgPort=7006;
if(Sim808_Connect(0, dcBuff.configData.upgServer, dcBuff.configData.upgPort)) if(Sim808_Connect(0, dcBuff.configData.upgServer, dcBuff.configData.upgPort))
{ {
if(k) if(k)