最近在學(xué)習(xí)物聯(lián)網(wǎng)相關(guān)的知識(shí),打算用ST的開發(fā)板STM32F407ZGT6作為控制中心,上面搭載FreeROTS實(shí)時(shí)系統(tǒng),STM32F407開發(fā)板作為 TCP client,網(wǎng)絡(luò)調(diào)試助手作為TCP server,利用串口獲取兩者的連接狀態(tài)。在用原子的lwip工程移植到自己的STM32F407開發(fā)板時(shí),可以正常獲取DHCP分配的IP,也能通過(guò)網(wǎng)絡(luò)和網(wǎng)絡(luò)工具正常通信,但是串口一直提示錯(cuò)誤:
從port.c文件中,定位到該行。
從文件中來(lái)看,應(yīng)該是和中斷有關(guān)的,從網(wǎng)上查閱了很多資料發(fā)現(xiàn),首先懷疑串口的中斷的優(yōu)先級(jí)超過(guò)FreeRTOS的管理最高優(yōu)先級(jí),需要將串口中斷的優(yōu)先級(jí)降為FreeRTOS的管理最高優(yōu)先級(jí)以下就可以。
據(jù)此,分別確認(rèn)以下中斷配置:主函數(shù)中,(1)系統(tǒng)中斷優(yōu)先級(jí)分組,位于main.c文件(2)串口中斷,位于usart.c文件(3)FreeRTOS系統(tǒng)可以管理的中斷最高優(yōu)先級(jí),位于freertosconfig.h文件
可以發(fā)現(xiàn),串口中斷的優(yōu)先級(jí)為3,freeRTOS最大可管理的中斷優(yōu)先級(jí)是5(中斷級(jí)小于等于5,freeRTOS無(wú)法管理),中斷優(yōu)先級(jí)更改為6,發(fā)現(xiàn)不行。再繼續(xù)查閱資料。
發(fā)現(xiàn)在ethernetif.c源碼中,low_level_input中有一個(gè)pbuf_alloc,而源碼中恰恰有sys_arch.c的sys_arch_protect()和sys_arch_unprotect()的臨界保護(hù)
而low_level_input是在中斷中調(diào)用的。
發(fā)現(xiàn)參考DEMO的sys_arch.c中的sys_arch_protect()和sys_arch_unprotect()是使用的任務(wù)級(jí)的臨界保護(hù),所以芯片會(huì)出現(xiàn)未知的異常。
發(fā)現(xiàn)編譯下載到板卡中,串口還是會(huì)出現(xiàn)同樣的問(wèn)題。
此外sys_mbox_trypost也要用中斷級(jí)入隊(duì)函數(shù)。
修改后,重新編譯下載,串口打印ok.
出現(xiàn)這個(gè)問(wèn)題應(yīng)該就是在中斷中調(diào)用了任務(wù)級(jí)臨界保護(hù),建議逐條查看中斷中調(diào)用的函數(shù)中是否用到了任務(wù)級(jí)臨界保護(hù)。
-
FreeRTOS
+關(guān)注
關(guān)注
12文章
486瀏覽量
63704 -
LwIP協(xié)議
+關(guān)注
關(guān)注
0文章
11瀏覽量
9063 -
串口中斷
+關(guān)注
關(guān)注
0文章
67瀏覽量
14231 -
DHCP網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
2瀏覽量
4985 -
STM32F407ZGT6
+關(guān)注
關(guān)注
4文章
4瀏覽量
5021
發(fā)布評(píng)論請(qǐng)先 登錄
移植LWIP+FREERTOS時(shí)遇到的問(wèn)題怎么解決?
為什么探索者stm32f407移植UCOSIII+LWIP1.4.1后無(wú)法穩(wěn)定運(yùn)行?
lwip帶freertos操作系統(tǒng)移植代碼分享!
freeRTOS+LWIP在STM32F407上的移植分享!
STM32F407+ucos-iii+lwip1.4.1移植分享!
請(qǐng)問(wèn)有reeRTOS+STM32F407ZGT和lwip1.4.1+dp83848程序嗎?
STM32F107+LWIP+FreeRTOS 精選資料分享
請(qǐng)問(wèn)一下在FreeRTOS系統(tǒng)下的LwIP-1.4.1是怎樣移植的
如何實(shí)現(xiàn)FreeRTOS系統(tǒng)下LwIP-1.4.1的移植?
STM32F107VCT6+DP83848 移植 LWip-1.4.1 筆記
FreeRTOS-stm32f407移植

【STM32】FreeRTOS移植

使用STM32CubeMX對(duì)F407ZGT6移植LWIP(全網(wǎng)最全)

評(píng)論