嵌入式操作系統通常被認為有一定的學習門檻,為幫助嵌入式工程師降低RTOS的使用難度,RT-Thread提供了文檔教學中心、視頻中心、論壇交流等多種支持。然而在實際項目中,開發者們仍可能會遇到各種挑戰,尤其當項目規模擴大、代碼復雜度增加時,各種“難以捉摸”的bug便會頻繁出現,令工程師們一頭霧水,不知從何入手。這些問題可能涉及內存管理、任務調度、棧溢出等復雜內容。
這些問題是否也在你的項目中時常困擾著你?
系統莫名其妙進入Hardfault
系統運行過程線程異常掛起
不正確使用內核API導致系統異常
系統運行過程發生斷言
不清楚某些系統組件或軟件包的使用方法
線程棧分配不合理導致系統異常
應用代碼不規范導致系統異常
如何修改Scons腳本,Kconfig...
...
作為初學者非常容易遇到的一個問題是:線程棧分配不合理導致系統異常。
1
提出問題
剛開始接觸RT-Thread的小伙伴在創建線程時,常常會遇到下述問題:
2
分析問題
從終端輸出的信息我們可以獲取到的關鍵信息有
1) 在發生異常的線程為entry
2) 該線程的棧空間為0x100
3) SCB_CFSR_UFSR:0x01 UNDEFINSTR
UNDEFINSTR通常是PC指針指向非法地址執行指令導致,通過1)點可以定位到問題發生在entry線程,第2)點可以看出entry線程的棧空間有點小,因此初步定位線程棧溢出。
3
解決問題
最終找到問題線程棧太小導致線程棧溢出,同時回到線程入口函數可以發現在線程中定義了一個很大的數組導致了線程棧的溢出,進一步證明了上述的問題。
解決問題就是依據經驗和工具進行分析嘗試的一個過程。
1)將線程棧改大一些,entry線程正常運行。
2)使能內核的堆棧溢出檢查,運行輸出msh >thread:entry stack overflow
最終找到問題線程棧太小導致線程棧溢出,同時回到線程入口函數可以發現在線程中定義了一個很大的數組導致了線程棧的溢出,進一步證明了上述的問題。
RT-Thread開班啦,技術專家團隊手把手帶您上手RT-Thread嵌入式操作系統,我們開放了為期三天的嵌入式操作系統專業培訓班!本次培訓將會深入講解RT-Thread嵌入式實時操作系統的核心概念、實戰技巧、應用場景、嵌入式開發疑難雜癥分析與答疑!
培訓時間
2024/11/9-2024/11/11(3天時間)
本次培訓是付費培訓,培訓費用:2918元 - 含稅 (3日),提供培訓手冊+硬件平臺。培訓費用同時也包含午餐。
培訓內容
時間 | 培訓內容 |
2024/11/9 RTOS內核 | 1. 內核原理 1.1 RT-Thread系統啟動流程 1.2 RT-Thread線程與線程切換學習 1.3 RT-Thread線程與中斷切換學習 2. 應用編程 2.1 RT-Thread多線程編程 (1)RT-Thread多線程搶占學習 (2)RT-Thread多線程輪詢學習 (3)RT-Thread多線程調試實踐 2.2 RT-Thread線程同步 (1)RT-Thread信號量原理,調試與應用實踐 (2)RT-Thread互斥量原理,調試與應用實踐 (3)RT-Thread事件集原理,調試與應用實踐 2.3 RT-Thread線程通信 (1)RT-Thread消息郵箱原理,調試與應用實踐 (2)RT-Thread消息隊列原理,調試與應用實踐 3. RT-Thread動態內存管理 3.1 RT-Thread動態內存管理原理介紹 3.2 RT-Thread動態內存應用實踐 |
2024/11/10 RT-Thread I/O設備驅動 | 1. RT-Thread構建與配置系統 1.1 Kconfig配置系統 (1) Kconfig工作機制 (2) Kconfig語法介紹 1.2 Scons構建系統 (1) Scons語法介紹 (2) Scons使用示例 1.3 Env工具 (1) Env常用命令使用示例 2. RT-Thread I/O設備框架 2.1 I/O設備框架原理 (1) 原廠驅動庫、RTT HAL庫驅動、RTT驅動框架關系介紹 2.2 I/O設備框架應用實踐 (1) 虛擬驅動移植實戰 3. RT-Thread 設備驅動框架 3.1 PIN設備 (1) PIN設備驅動框架原理 (2) PIN設備驅動應用實踐 3.2 UART設備 (1) UART設備驅動框架原理 (2) UART設備驅動應用實踐 3.3 I2C設備 (1) I2C設備驅動框架原理 (2) I2C設備驅動應用實踐 4. RT-Thread設備驅動實戰 4.1 串口設備組件 (1) 串口類設備組件介紹 (2) 串口設備驅動應用實踐 4.2 I2C設備驅動 (1) I2C Tools軟件包介紹 (2) I2C設備驅動應用實踐 |
2024/11/11 RT-Thread組件與系統問題排查實踐 | 1. 系統常見問題排查 (1)基礎問題排查方法與實踐示例 (2)內存泄漏問題排查方法與實踐示例 (3)棧溢出問題排查方法與實踐示例 (4)線程死鎖問題排查方法與實踐示例 (5)HardFault問題排查方法與實踐示例 2. 組件分析與實踐 (1)MQTT軟件包原理與應用實踐 (2)SAL抽象層原理與應用實踐 (3)傳感器軟件包應用實踐 (4)其他相關軟件包應用實踐 3. 綜合實踐 綜合所學內容,手把手從零實現一個IoT設備。 |
培訓地點
深圳福田區天安數碼城天吉大廈AB座7樓7B2知了會議中心M6會議室
地鐵:1、7、9、11號線到達車公廟地鐵站,可從G口出,右轉步行100米左右到達知了會議中心。
培訓證書
培訓結束后通過考核的將可以獲得RT-Thread出具的結業證書和中國電子學會出具的職業技能證書-RT-Thread操作系統應用開發
-
嵌入式
+關注
關注
5071文章
19026瀏覽量
303492 -
線程
+關注
關注
0文章
504瀏覽量
19653 -
RT-Thread
+關注
關注
31文章
1274瀏覽量
39940
發布評論請先 登錄
相關推薦
評論