主控板死机

优化过后的与上位机通信的代码,接收上位机的数据,会死机
main
kafeijiaasamu 2 years ago
parent 52b421ac0f
commit 685d591a6b

Binary file not shown.

@ -29,7 +29,7 @@ Project File Date: 11/19/2023
Build target 'LED' Build target 'LED'
compiling myfreertos.c... compiling myfreertos.c...
linking... linking...
Program Size: Code=25672 RO-data=804 RW-data=1524 ZI-data=13220 Program Size: Code=25648 RO-data=804 RW-data=1524 ZI-data=13220
FromELF: creating hex file... FromELF: creating hex file...
"..\OBJ\LED.axf" - 0 Error(s), 0 Warning(s). "..\OBJ\LED.axf" - 0 Error(s), 0 Warning(s).
@ -44,7 +44,7 @@ Package Vendor: Keil
D:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include D:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include
<h2>Collection of Component Files used:</h2> <h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:03 Build Time Elapsed: 00:00:05
</pre> </pre>
</body> </body>
</html> </html>

File diff suppressed because it is too large Load Diff

@ -3,7 +3,7 @@
<title>Static Call Graph - [..\OBJ\LED.axf]</title></head> <title>Static Call Graph - [..\OBJ\LED.axf]</title></head>
<body><HR> <body><HR>
<H1>Static Call Graph for image ..\OBJ\LED.axf</H1><HR> <H1>Static Call Graph for image ..\OBJ\LED.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Tue Dec 12 14:52:29 2023 <BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Tue Dec 12 16:16:59 2023
<BR><P> <BR><P>
<H3>Maximum Stack Usage = 304 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3> <H3>Maximum Stack Usage = 304 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3> Call chain for Maximum Stack Depth:</H3>
@ -608,7 +608,7 @@ Global Symbols
<P><STRONG><a name="[2]"></a>HardFault_Handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.HardFault_Handler)) <P><STRONG><a name="[2]"></a>HardFault_Handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f10x_it.o(i.HardFault_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f10x_md.o(RESET)
</UL> </UL>
<P><STRONG><a name="[66]"></a>Host_Computer_Communication</STRONG> (Thumb, 366 bytes, Stack size 24 bytes, myfreertos.o(i.Host_Computer_Communication)) <P><STRONG><a name="[66]"></a>Host_Computer_Communication</STRONG> (Thumb, 414 bytes, Stack size 24 bytes, myfreertos.o(i.Host_Computer_Communication))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = Host_Computer_Communication &rArr; RTC_synchronization_ins &rArr; delay_ms &rArr; vTaskDelay &rArr; xTaskResumeAll &rArr; xTaskIncrementTick &rArr; __2printf <BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = Host_Computer_Communication &rArr; RTC_synchronization_ins &rArr; delay_ms &rArr; vTaskDelay &rArr; xTaskResumeAll &rArr; xTaskIncrementTick &rArr; __2printf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RTC_synchronization_ins <BR>[Calls]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RTC_synchronization_ins
@ -1136,7 +1136,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI1_Init <BR>[Called By]<UL><LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI1_Init
</UL> </UL>
<P><STRONG><a name="[3b]"></a>Sensor_Communication_task</STRONG> (Thumb, 1278 bytes, Stack size 24 bytes, myfreertos.o(i.Sensor_Communication_task)) <P><STRONG><a name="[3b]"></a>Sensor_Communication_task</STRONG> (Thumb, 1196 bytes, Stack size 24 bytes, myfreertos.o(i.Sensor_Communication_task))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = Sensor_Communication_task &rArr; Host_Computer_Communication &rArr; RTC_synchronization_ins &rArr; delay_ms &rArr; vTaskDelay &rArr; xTaskResumeAll &rArr; xTaskIncrementTick &rArr; __2printf <BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = Sensor_Communication_task &rArr; Host_Computer_Communication &rArr; RTC_synchronization_ins &rArr; delay_ms &rArr; vTaskDelay &rArr; xTaskResumeAll &rArr; xTaskIncrementTick &rArr; __2printf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bufcut_Init <BR>[Calls]<UL><LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;bufcut_Init

@ -2506,7 +2506,7 @@ I (..\FreeRTOS\portable\RVDS\ARM_CM3\portmacro.h)(0x573F3A17)
I (..\FreeRTOS\include\mpu_wrappers.h)(0x573F3A16) I (..\FreeRTOS\include\mpu_wrappers.h)(0x573F3A16)
I (..\FreeRTOS\include\task.h)(0x573F3A16) I (..\FreeRTOS\include\task.h)(0x573F3A16)
I (..\FreeRTOS\include\list.h)(0x573F3A16) I (..\FreeRTOS\include\list.h)(0x573F3A16)
F (..\myfreertos\myfreertos.c)(0x6578032A)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\myfreertos.o --omf_browse ..\obj\myfreertos.crf --depend ..\obj\myfreertos.d) F (..\myfreertos\myfreertos.c)(0x657816F8)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\USER -I ..\CORE -I ..\STM32F10x_FWLib\inc -I ..\HARDWARE -I ..\SYSTEM -I ..\dhcp -I ..\dns -I ..\md5 -I ..\MQTT -I ..\MQTT\lib -I ..\w5500 -I ..\FreeRTOS\include -I ..\FreeRTOS\portable\RVDS\ARM_CM3 -I ..\myfreertos -ID:\MDK5\ARM\Keil\STM32F1xx_DFP\2.3.0\Device\Include -D__UVISION_VERSION="536" -DSTM32F10X_MD -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER -o ..\obj\myfreertos.o --omf_browse ..\obj\myfreertos.crf --depend ..\obj\myfreertos.d)
I (..\myfreertos\myfreertos.h)(0x656FE939) I (..\myfreertos\myfreertos.h)(0x656FE939)
I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE) I (..\FreeRTOS\include\FreeRTOS.h)(0x652F9ABE)
I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E) I (D:\MDK5\ARM\ARMCC\include\stddef.h)(0x6025237E)

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -254,35 +254,30 @@ void Sensor_Communication_task(void *pvParameters)
} }
else if(RS485_RX_BUF_COPY[0]==0xEE)
{
Host_Computer_Communication();
}
else else
{ {
int index=0; Host_Computer_Communication();
//if()与while()的顺序不能变
if((RS485_RX_BUF_COPY[0]!=0x00))//不为0处理掉
{
RX_BUF_Transfer(0,1);
} }
while(RS485_RX_BUF_COPY[index]==0x00) // else
{ // {
index++; // int index=0;
} // //if()与while()的顺序不能变
RX_BUF_Transfer(0,index); // if((RS485_RX_BUF_COPY[0]!=0x00))//不为0处理掉
printf("previous array cut\r\n"); // {
// while(RS485_RX_BUF_COPY[0]==0x00)//前面数据为0删掉 // RX_BUF_Transfer(0,1);
// }
//
// while(RS485_RX_BUF_COPY[index]==0x00)
// { // {
//RX_BUF_Transfer(0,1); // index++;
// } // }
// RX_BUF_Transfer(0,index);
// printf("previous array cut\r\n");
//RX_BUF_Printf(128); // }
} }
}
printf("%d %d %d\n",T,H,C); printf("%d %d %d\n",T,H,C);
//printf("current params: %d:%d,hot or cold flag:%d, humidity flag:%d, alarm: %d\r\n",chour, cminute, hot_clod_flag, humidity_flag, ALARM); //printf("current params: %d:%d,hot or cold flag:%d, humidity flag:%d, alarm: %d\r\n",chour, cminute, hot_clod_flag, humidity_flag, ALARM);
//printf("led!!!\r\n"); //printf("led!!!\r\n");
@ -337,7 +332,7 @@ void Host_Computer_Communication(void)
//RX_BUF_Printf(128); //RX_BUF_Printf(128);
} }
} }
if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB1) else if(RS485_RX_BUF_COPY[0]==0xEE&&RS485_RX_BUF_COPY[1]==0xB1)
{ {
if(RS485_RX_BUF_COPY[2]==0x11&&RS485_RX_BUF_COPY[15]==0xFF&&RS485_RX_BUF[16]==0xFF)//单个同步默认带的数据 if(RS485_RX_BUF_COPY[2]==0x11&&RS485_RX_BUF_COPY[15]==0xFF&&RS485_RX_BUF[16]==0xFF)//单个同步默认带的数据
{ {
@ -366,7 +361,23 @@ void Host_Computer_Communication(void)
} }
} }
else
{
int index=0;
//if()与while()的顺序不能变
if((RS485_RX_BUF_COPY[0]!=0x00))//不为0处理掉
{
RX_BUF_Transfer(0,1);
}
while(RS485_RX_BUF_COPY[index]==0x00)
{
index++;
}
RX_BUF_Transfer(0,index);
printf("previous array cut\r\n");
}
} }

Loading…
Cancel
Save