一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F407+FreeRTOS+LWIP1.4.1移植問題記錄

冬至子 ? 來源:不懂幽默的秦二 ? 作者:diandianmo ? 2023-07-21 14:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近在學(xué)習(xí)物聯(lián)網(wǎng)相關(guān)的知識,打算用ST的開發(fā)板STM32F407ZGT6作為控制中心,上面搭載FreeROTS實時系統(tǒng),STM32F407開發(fā)板作為 TCP client,網(wǎng)絡(luò)調(diào)試助手作為TCP server,利用串口獲取兩者的連接狀態(tài)。在用原子的lwip工程移植到自己的STM32F407開發(fā)板時,可以正常獲取DHCP分配的IP,也能通過網(wǎng)絡(luò)和網(wǎng)絡(luò)工具正常通信,但是串口一直提示錯誤:

圖片

從port.c文件中,定位到該行。

圖片

從文件中來看,應(yīng)該是和中斷有關(guān)的,從網(wǎng)上查閱了很多資料發(fā)現(xiàn),首先懷疑串口的中斷的優(yōu)先級超過FreeRTOS的管理最高優(yōu)先級,需要將串口中斷的優(yōu)先級降為FreeRTOS的管理最高優(yōu)先級以下就可以。

據(jù)此,分別確認(rèn)以下中斷配置:主函數(shù)中,(1)系統(tǒng)中斷優(yōu)先級分組,位于main.c文件(2)串口中斷,位于usart.c文件(3)FreeRTOS系統(tǒng)可以管理的中斷最高優(yōu)先級,位于freertosconfig.h文件

圖片

圖片

圖片

可以發(fā)現(xiàn),串口中斷的優(yōu)先級為3,freeRTOS最大可管理的中斷優(yōu)先級是5(中斷級小于等于5,freeRTOS無法管理),中斷優(yōu)先級更改為6,發(fā)現(xiàn)不行。再繼續(xù)查閱資料。

發(fā)現(xiàn)在ethernetif.c源碼中,low_level_input中有一個pbuf_alloc,而源碼中恰恰有sys_arch.c的sys_arch_protect()和sys_arch_unprotect()的臨界保護

而low_level_input是在中斷中調(diào)用的。

發(fā)現(xiàn)參考DEMO的sys_arch.c中的sys_arch_protect()和sys_arch_unprotect()是使用的任務(wù)級的臨界保護,所以芯片會出現(xiàn)未知的異常。

圖片

圖片

圖片

發(fā)現(xiàn)編譯下載到板卡中,串口還是會出現(xiàn)同樣的問題。

此外sys_mbox_trypost也要用中斷級入隊函數(shù)。

圖片

修改后,重新編譯下載,串口打印ok.

圖片

出現(xiàn)這個問題應(yīng)該就是在中斷中調(diào)用了任務(wù)級臨界保護,建議逐條查看中斷中調(diào)用的函數(shù)中是否用到了任務(wù)級臨界保護。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    492

    瀏覽量

    64021
  • LwIP協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    9086
  • 串口中斷
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    14297
  • DHCP網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    4992
  • STM32F407ZGT6
    +關(guān)注

    關(guān)注

    4

    文章

    4

    瀏覽量

    5062
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    移植LWIP+FREERTOS時遇到的問題怎么解決?

    中斷,并且再也沒法ping 通的問題,表現(xiàn)的現(xiàn)象是進不去以太網(wǎng)中斷,導(dǎo)致 ethernetif_input()接收不到數(shù)據(jù) 移植過程是這樣的:(STM32F407+DP83848) 1:首先移植RTOS+
    發(fā)表于 03-11 06:48

    為什么探索者stm32f407移植UCOSIII+LWIP1.4.1后無法穩(wěn)定運行?

    完全相同。 2、LWIP移植參考網(wǎng)絡(luò)上移植stm32f107+ lwip1.4.1的代碼,與發(fā)燒友ucosII+
    發(fā)表于 09-29 01:38

    lwipfreertos操作系統(tǒng)移植代碼分享!

    本人在stm32f407 探索者板子上實驗過,根據(jù)原子哥lwip帶UCOS2移植的這一節(jié)視頻,做了lwipFreeRTOS
    發(fā)表于 10-18 01:45

    freeRTOS+LWIPSTM32F407上的移植分享!

    的學(xué)習(xí)資料,那我們只好自己摸索嘗試了。本帖子是一個在MDK環(huán)境下移植后的freeRTOSLWIP的工程壓縮包(在帖子最后),用于和大家共同探討移植問題,壓縮包解壓后,在路徑
    發(fā)表于 10-23 04:36

    STM32F407+ucos-iii+lwip1.4.1移植分享!

    的固件庫不是標(biāo)準(zhǔn)庫而是HAL庫,因為HAL庫是未來的趨勢2,我的ucos-iii移植是直接從ucos官網(wǎng)下載的關(guān)于STM32F407的發(fā)行版本,ucos-iii版本號 V3.04.05,15年9月份的版本STM32F407_uC
    發(fā)表于 11-10 23:05

    請問有reeRTOS+STM32F407ZGT和lwip1.4.1+dp83848程序嗎?

    本人想做一個小東西。要用到以太網(wǎng),同時要支持操作系統(tǒng)。在這里求助廣大網(wǎng)友。具體如下:FreeRTOS+STM32F407ZGT+lwip1.4.1+dp83848程序,STM32F407與dp83848連接接口為RMII.如果有操作系統(tǒng)UCOSIII的也可以,謝謝。
    發(fā)表于 03-27 04:35

    STM32F107+LWIP+FreeRTOS 精選資料分享

    STM32F107+LWIP+FreeRTOS前言最近在學(xué)習(xí)LWIP的協(xié)議棧,打算移植FreeRTOS上網(wǎng)上找了資料,原子的用的是F4的平
    發(fā)表于 08-05 06:50

    請問一下在FreeRTOS系統(tǒng)下的LwIP-1.4.1是怎樣移植

    請問一下在FreeRTOS系統(tǒng)下的LwIP-1.4.1是怎樣移植的?有哪些移植過程?
    發(fā)表于 11-03 07:06

    如何實現(xiàn)FreeRTOS系統(tǒng)下LwIP-1.4.1移植?

    如何實現(xiàn)FreeRTOS系統(tǒng)下LwIP-1.4.1移植?
    發(fā)表于 12-23 07:29

    FreeRTOS下對lwIP移植程序

    FreeRTOS下對 lwIP移植程序。
    發(fā)表于 10-29 10:58 ?11次下載

    STM32F107VCT6+DP83848 移植 LWip-1.4.1 筆記

    STM32F107VCT6+DP83848 移植 LWip-1.4.1 筆記
    發(fā)表于 11-22 19:10 ?123次下載

    FreeRTOS-stm32f407移植

    FreeRTOS-stm32f407移植需要準(zhǔn)備的內(nèi)容FreeRTOS移植步驟1、添加FreeRTOS源碼1)復(fù)制源碼內(nèi)容2)刪除porta
    發(fā)表于 12-04 13:36 ?9次下載
    <b class='flag-5'>FreeRTOS-stm32f407</b><b class='flag-5'>移植</b>

    STM32FreeRTOS移植

    FreeRTOS,接下來我們就把FreeRTOS移植到我們所使用的平臺上,我們使用的板子是STM32F407。02. 預(yù)備工作要移植
    發(fā)表于 12-04 14:06 ?15次下載
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b>

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

    本項目采用正點原子的探索者STM32F407開發(fā)板利用STM32CubeM移植LWIP使用STM32CubeMX可以非常方便的將
    發(fā)表于 12-27 18:37 ?84次下載
    使用<b class='flag-5'>STM32</b>CubeMX對<b class='flag-5'>F407</b>ZGT6<b class='flag-5'>移植</b><b class='flag-5'>LWIP</b>(全網(wǎng)最全)

    STM32F407 FreeRTOS開發(fā)手冊 V1.1

    STM32F407 FreeRTOS開發(fā)手冊_V1.1PDF文件下載。
    發(fā)表于 07-31 11:16 ?57次下載