在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

線程棧分配惹的禍?系統(tǒng)異常這樣解決!

RT-Thread官方賬號 ? 2024-10-31 08:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式操作系統(tǒng)通常被認為有一定的學習門檻,為幫助嵌入式工程師降低RTOS的使用難度,RT-Thread提供了文檔教學中心視頻中心、論壇交流等多種支持。然而在實際項目中,開發(fā)者們仍可能會遇到各種挑戰(zhàn),尤其當項目規(guī)模擴大、代碼復雜度增加時,各種“難以捉摸”的bug便會頻繁出現(xiàn),令工程師們一頭霧水,不知從何入手。這些問題可能涉及內存管理、任務調度、棧溢出等復雜內容。

這些問題是否也在你的項目中時常困擾著你?

51ac409a-971c-11ef-8084-92fbcf53809c.png

系統(tǒng)莫名其妙進入Hardfault

系統(tǒng)運行過程線程異常掛起

不正確使用內核API導致系統(tǒng)異常

系統(tǒng)運行過程發(fā)生斷言

不清楚某些系統(tǒng)組件或軟件包的使用方法

線程棧分配不合理導致系統(tǒng)異常

應用代碼不規(guī)范導致系統(tǒng)異常

如何修改Scons腳本,Kconfig...

...

作為初學者非常容易遇到的一個問題是:線程棧分配不合理導致系統(tǒng)異常

1

提出問題

剛開始接觸RT-Thread的小伙伴在創(chuàng)建線程時,常常會遇到下述問題:

51d1a9ac-971c-11ef-8084-92fbcf53809c.png

2

分析問題

從終端輸出的信息我們可以獲取到的關鍵信息有

1) 在發(fā)生異常的線程為entry

51dd8970-971c-11ef-8084-92fbcf53809c.png

2) 該線程的棧空間為0x100

51eac478-971c-11ef-8084-92fbcf53809c.png

3) SCB_CFSR_UFSR:0x01 UNDEFINSTR

UNDEFINSTR通常是PC指針指向非法地址執(zhí)行指令導致,通過1)點可以定位到問題發(fā)生在entry線程,第2)點可以看出entry線程的棧空間有點小,因此初步定位線程棧溢出。

3

解決問題

最終找到問題線程棧太小導致線程棧溢出,同時回到線程入口函數(shù)可以發(fā)現(xiàn)在線程中定義了一個很大的數(shù)組導致了線程棧的溢出,進一步證明了上述的問題。

解決問題就是依據(jù)經(jīng)驗和工具進行分析嘗試的一個過程。

1)將線程棧改大一些,entry線程正常運行。

2)使能內核的堆棧溢出檢查,運行輸出msh >thread:entry stack overflow

最終找到問題線程棧太小導致線程棧溢出,同時回到線程入口函數(shù)可以發(fā)現(xiàn)在線程中定義了一個很大的數(shù)組導致了線程棧的溢出,進一步證明了上述的問題。

RT-Thread開班啦,技術專家團隊手把手帶您上手RT-Thread嵌入式操作系統(tǒng),我們開放了為期三天的嵌入式操作系統(tǒng)專業(yè)培訓班!本次培訓將會深入講解RT-Thread嵌入式實時操作系統(tǒng)的核心概念、實戰(zhàn)技巧、應用場景、嵌入式開發(fā)疑難雜癥分析與答疑!

培訓時間

2024/11/9-2024/11/11(3天時間)

本次培訓是付費培訓,培訓費用:2918元 - 含稅 (3日),提供培訓手冊+硬件平臺。培訓費用同時也包含午餐。

培訓內容

時間

培訓內容

2024/11/9

RTOS內核

1. 內核原理

1.1 RT-Thread系統(tǒng)啟動流程

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動態(tài)內存管理

3.1 RT-Thread動態(tài)內存管理原理介紹

3.2 RT-Thread動態(tài)內存應用實踐

2024/11/10

RT-Thread I/O設備驅動

1. RT-Thread構建與配置系統(tǒng)

1.1 Kconfig配置系統(tǒng)

(1) Kconfig工作機制

(2) Kconfig語法介紹

1.2 Scons構建系統(tǒng)

(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) 虛擬驅動移植實戰(zhàn)

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設備驅動實戰(zhàn)

4.1 串口設備組件

(1) 串口類設備組件介紹

(2) 串口設備驅動應用實踐

4.2 I2C設備驅動

(1) I2C Tools軟件包介紹

(2) I2C設備驅動應用實踐

2024/11/11

RT-Thread組件與系統(tǒng)問題排查實踐

1. 系統(tǒng)常見問題排查

(1)基礎問題排查方法與實踐示例

(2)內存泄漏問題排查方法與實踐示例

(3)棧溢出問題排查方法與實踐示例

(4)線程死鎖問題排查方法與實踐示例

(5)HardFault問題排查方法與實踐示例

2. 組件分析與實踐

(1)MQTT軟件包原理與應用實踐

(2)SAL抽象層原理與應用實踐

(3)傳感器軟件包應用實踐

(4)其他相關軟件包應用實踐

3. 綜合實踐

綜合所學內容,手把手從零實現(xiàn)一個IoT設備。

培訓地點

深圳福田區(qū)天安數(shù)碼城天吉大廈AB座7樓7B2知了會議中心M6會議室

地鐵:1、7、9、11號線到達車公廟地鐵站,可從G口出,右轉步行100米左右到達知了會議中心。

培訓證書

培訓結束后通過考核的將可以獲得RT-Thread出具的結業(yè)證書和中國電子學會出具的職業(yè)技能證書-RT-Thread操作系統(tǒng)應用開發(fā)

5254a974-971c-11ef-8084-92fbcf53809c.png

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

    關注

    5145

    文章

    19597

    瀏覽量

    316124
  • 線程
    +關注

    關注

    0

    文章

    508

    瀏覽量

    20130
  • RT-Thread
    +關注

    關注

    32

    文章

    1385

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深度剖析 RT-Thread 線程調度流程

    rt_system_scheduler_start:調度系統(tǒng)第一個線程rt_hw_context_switch_to:初始化上下文切換環(huán)境,觸發(fā)PendSV異常first_thread:系統(tǒng)
    的頭像 發(fā)表于 06-25 18:24 ?364次閱讀
    深度剖析 RT-Thread <b class='flag-5'>線程</b>調度流程

    機器學習異常檢測實戰(zhàn):用Isolation Forest快速構建無標簽異常檢測系統(tǒng)

    算法進行異常檢測,并結合LightGBM作為主分類器,構建完整的欺詐檢測系統(tǒng)。文章詳細闡述了從無監(jiān)督異常檢測到人工反饋循環(huán)的完整工作流程,為實際業(yè)務場景中的風險控
    的頭像 發(fā)表于 06-24 11:40 ?491次閱讀
    機器學習<b class='flag-5'>異常</b>檢測實戰(zhàn):用Isolation Forest快速構建無標簽<b class='flag-5'>異常</b>檢測<b class='flag-5'>系統(tǒng)</b>

    線程的安全注意事項

    和模塊需要支持多線程安全,否則可能會導致多線程數(shù)據(jù)競爭問題,造成應用程序異常或崩潰。 在TaskPool或Worker的工作線程中支持使用以下模塊,其他模塊在使用時需要驗證是否滿足
    發(fā)表于 06-20 07:49

    鴻蒙5開發(fā)寶藏案例分享---跨線程性能優(yōu)化指南

    序列化為什么拖慢性能? 當對象跨線程傳遞時(比如主線程→子線程),系統(tǒng)會 自動序列化和反序列化 。如果對象結構復雜(比如嵌套數(shù)組、類方法),耗時會暴增!舉個例子: // 未優(yōu)化的寫法:
    發(fā)表于 06-12 17:13

    main線程大小設置成2048的時候rt_memset導致hardfault,為什么?

    main線程大小設置成2048的時候rt_memset導致hardfault,改成512就不會,這是為什么
    發(fā)表于 06-10 06:04

    ZLG嵌入式筆記(連載36) | 工業(yè)現(xiàn)場掉電,系統(tǒng)異常如何破解?

    在工業(yè)現(xiàn)場,設備常因掉電導致文件系統(tǒng)損壞或數(shù)據(jù)丟失。本文將介紹如何通過硬件和系統(tǒng)設計優(yōu)化,解決這一問題,提升設備穩(wěn)定性。前言在工業(yè)應用現(xiàn)場,不可避免會出現(xiàn)異常掉電或者一些偶發(fā)性頻繁上下電的情況,
    的頭像 發(fā)表于 04-30 18:24 ?172次閱讀
    ZLG嵌入式筆記(連載36) | 工業(yè)現(xiàn)場掉電,<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>異常</b>如何破解?

    golang內存分配

    內存碎片. 線程擁有一定的 cache, 可用于無鎖分配. 同時 Go 對于 GC 后回收的內存頁, 并不是馬上歸還給操作系統(tǒng), 而是會延遲歸還, 用于滿足未來的內存需求. ?? ? 在 1.10
    的頭像 發(fā)表于 03-31 15:00 ?160次閱讀
    golang內存<b class='flag-5'>分配</b>

    進程、線程、協(xié)程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!

    是(每個進程可以跑在不同CPU) 是(線程可以分配到不同核) 否(只能在一個核上蹦迪) 適用場景 銀行系統(tǒng)、docker容器 視頻渲染、實時音視頻 微信客服、高并發(fā)Web服務器 社死案例 進程A崩了
    發(fā)表于 03-26 09:27

    socket 多線程編程實現(xiàn)方法

    在現(xiàn)代網(wǎng)絡編程中,多線程技術被廣泛應用于提高服務器的并發(fā)處理能力。Socket編程是網(wǎng)絡通信的基礎,而將多線程技術應用于Socket編程,可以顯著提升服務器的性能。 多線程編程的基本概念 多
    的頭像 發(fā)表于 11-12 14:16 ?957次閱讀

    Linux網(wǎng)絡協(xié)議的實現(xiàn)

    網(wǎng)絡協(xié)議是操作系統(tǒng)核心的一個重要組成部分,負責管理網(wǎng)絡通信中的數(shù)據(jù)包處理。在 Linux 操作系統(tǒng)中,網(wǎng)絡協(xié)議(Network Stack)負責實現(xiàn) TCP/IP 協(xié)議簇,處理應用
    的頭像 發(fā)表于 09-10 09:51 ?644次閱讀
    Linux網(wǎng)絡協(xié)議<b class='flag-5'>棧</b>的實現(xiàn)

    轉載 golang內存分配

    . 線程擁有一定的 cache, 可用于無鎖分配. 同時 Go 對于 GC 后回收的內存頁, 并不是馬上歸還給操作系統(tǒng), 而是會延遲歸還, 用于滿足未來的內存需求. ?? ? 在 1.10 以前 go
    的頭像 發(fā)表于 09-05 14:12 ?466次閱讀
    轉載 golang內存<b class='flag-5'>分配</b>

    CPU線程和程序線程的區(qū)別

    CPU的線程與程序的線程在概念、作用、實現(xiàn)方式以及性能影響等方面存在顯著差異。以下是對兩者區(qū)別的詳細闡述,旨在深入探討這一技術話題。
    的頭像 發(fā)表于 09-02 11:18 ?2033次閱讀

    rtt工程移植后線程創(chuàng)建不成功怎么解決?

    之前用l431的板子跑10k的采樣后來要提高到100k,更換了f446的芯片,但是根據(jù)新的內存地址從0x20000000開始寫入數(shù)據(jù)后,兩個線程創(chuàng)建不成功了,不知道是否是線程的的大小不夠還是內存分配不對,求指點
    發(fā)表于 07-18 06:44

    STM32F072VBT6.icf文件堆棧分配異常的原因?

    STM32F072VBT6.icf文件堆棧分配異常
    發(fā)表于 07-05 08:10

    lvgl移植到RT-Thread Nano后進入硬件錯誤中斷的原因?

    使用的是RT-Thread Nano的最新版,第一次移植,不知道是不是因為這個lvgl只能移植到標準版里? 嘗試過給lvgl的線程分配更大的,但是依舊會卡死在硬件錯誤中斷里。但只要把用戶的ui
    發(fā)表于 07-04 07:40
    主站蜘蛛池模板: 国产午夜视频在永久在线观看 | 水果视频色版 | 自拍偷拍欧美 | 天天摸天天做 | 欧美色图色就是色 | 免费人成在线观看网站 | 久久免费精品国产72精品剧情 | 老色批网站 | 国产成人免费无庶挡视频 | 久久婷婷六月 | 国产精品久久久久国产精品三级 | 国产农村妇女毛片精品久久久 | 久久精品re| 黄色视屏免费在线观看 | 欧美极品色影院 | 色wwwwww | 欧美色图 亚洲 | 国产一级毛片午夜福 | 天天操天天曰 | 国产男女交性视频播放免费bd | 色宅男| 日本黄色大片免费看 | 狼狼色丁香久久女婷婷综合 | 狠狠成人| 久久婷婷久久一区二区三区 | 亚州一级毛片在线 | 免费看一级视频 | 色婷婷九月 | 久碰香蕉精品视频在线观看 | 四虎影永久在线观看网址 | 色窝网 | 人人做人人干 | 欧美97色| 久久久久久久成人午夜精品福利 | 日日噜噜噜夜夜爽爽狠狠 | 免费观看影院 | 午夜a级毛片| 成年人污视频 | 日日夜夜操操 | 四虎在线最新地址公告 | xxxx日本老师hd|