chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

不正確使用內(nèi)核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

分析問題

從終端輸出的信息我們可以獲取到的關(guān)鍵信息有

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

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

2) 該線程的??臻g為0x100

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

3) SCB_CFSR_UFSR:0x01 UNDEFINSTR

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

3

解決問題

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

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

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

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

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

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

培訓時間

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

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

培訓內(nèi)容

時間

培訓內(nèi)容

2024/11/9

RTOS內(nèi)核

1. 內(nèi)核原理

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多線程調(diào)試實踐

2.2 RT-Thread線程同步

(1)RT-Thread信號量原理,調(diào)試與應用實踐

(2)RT-Thread互斥量原理,調(diào)試與應用實踐

(3)RT-Thread事件集原理,調(diào)試與應用實踐

2.3 RT-Thread線程通信

(1)RT-Thread消息郵箱原理,調(diào)試與應用實踐

(2)RT-Thread消息隊列原理,調(diào)試與應用實踐

3. RT-Thread動態(tài)內(nèi)存管理

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

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

2024/11/10

RT-Thread I/O設(shè)備驅(qū)動

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

1.1 Kconfig配置系統(tǒng)

(1) Kconfig工作機制

(2) Kconfig語法介紹

1.2 Scons構(gòu)建系統(tǒng)

(1) Scons語法介紹

(2) Scons使用示例

1.3 Env工具

(1) Env常用命令使用示例

2. RT-Thread I/O設(shè)備框架

2.1 I/O設(shè)備框架原理

(1) 原廠驅(qū)動庫、RTT HAL庫驅(qū)動、RTT驅(qū)動框架關(guān)系介紹

2.2 I/O設(shè)備框架應用實踐

(1) 虛擬驅(qū)動移植實戰(zhàn)

3. RT-Thread 設(shè)備驅(qū)動框架

3.1 PIN設(shè)備

(1) PIN設(shè)備驅(qū)動框架原理

(2) PIN設(shè)備驅(qū)動應用實踐

3.2 UART設(shè)備

(1) UART設(shè)備驅(qū)動框架原理

(2) UART設(shè)備驅(qū)動應用實踐

3.3 I2C設(shè)備

(1) I2C設(shè)備驅(qū)動框架原理

(2) I2C設(shè)備驅(qū)動應用實踐

4. RT-Thread設(shè)備驅(qū)動實戰(zhàn)

4.1 串口設(shè)備組件

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

(2) 串口設(shè)備驅(qū)動應用實踐

4.2 I2C設(shè)備驅(qū)動

(1) I2C Tools軟件包介紹

(2) I2C設(shè)備驅(qū)動應用實踐

2024/11/11

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

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

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

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

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

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

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

2. 組件分析與實踐

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

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

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

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

3. 綜合實踐

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

培訓地點

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

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

培訓證書

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

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

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

    關(guān)注

    5198

    文章

    20404

    瀏覽量

    333343
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    509

    瀏覽量

    20821
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1602

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    【瑞薩FPB-RA6E2試用】【瑞薩RA × Zephyr開發(fā)板評測】+線程創(chuàng)建及測試

    線程可立即打斷低優(yōu)先級線程。 時間片輪轉(zhuǎn)法 ,即同等優(yōu)先級的線程分配以固定的時間片輪流執(zhí)行。 較少見的協(xié)作式調(diào)度法, 其線程會主動讓出CP
    發(fā)表于 02-03 21:33

    Cortex-M3工作模式及異常

    一、工作模式 線程模式和手柄模式。 當處理器處在線程狀態(tài)下時,既可以使用特權(quán)級,也可以使用用戶級;另一方面, handler模式總是特權(quán)級的。在復位后,處理器進入線程模式+特權(quán)級。 二、異常
    發(fā)表于 01-20 08:24

    【瑞薩FPB-RA6E2試用】【瑞薩FPB-RA6E2】RTOS(Real-Time Operating System,實時操作系統(tǒng))《線程》個人理解及項目實現(xiàn)

    【瑞薩FPB-RA6E2】RTOS(Real-Time Operating System,實時操作系統(tǒng))《線程》個人理解及項目實現(xiàn) 1. RTOS(Real-Time Operating
    發(fā)表于 01-14 11:50

    摩爾線程在MDC 2025重磅發(fā)布全創(chuàng)新成果

    12月20日,在首屆MUSA開發(fā)者大會上,摩爾線程創(chuàng)始人、董事長兼CEO張建中發(fā)表主題演講,系統(tǒng)展示了以自主MUSA統(tǒng)一架構(gòu)為核心的全創(chuàng)新成果,全面展現(xiàn)公司在技術(shù)和生態(tài)上的關(guān)鍵突破與前瞻布局。
    的頭像 發(fā)表于 12-22 18:04 ?1428次閱讀

    使用setjmp及l(fā)ongjmp函數(shù)處理異常

    使用setjmp和longjmp函數(shù):這是一種用于實現(xiàn)非局部跳轉(zhuǎn)的方法,就是在程序中設(shè)置一個跳轉(zhuǎn)點,并在某些情況下跳轉(zhuǎn)到該跳轉(zhuǎn)點,從而繞過中間的一些代碼或函數(shù)。這樣可以在某些情況下模擬異常處理的效果
    發(fā)表于 12-11 08:00

    線程系統(tǒng)

    線程系統(tǒng)的事件響應也是在中斷中完成的,但事件的處理是在線程中完成的。在多線程系統(tǒng)中,線程跟中斷
    發(fā)表于 12-08 07:55

    堆和的區(qū)別

    一個由C/C 編譯的程序占用的內(nèi)存分為以下幾個部分: 區(qū)(stack):由編譯器自動分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的。 堆區(qū)(heap):一般由
    的頭像 發(fā)表于 11-27 18:13 ?1055次閱讀

    rt_sem_take卡住導致線程無法正常運行怎么解決?

    串口接收數(shù)據(jù)后release信號量,接收線程take sem,高頻大數(shù)據(jù)量接受數(shù)據(jù),運行一段時間后接受線程suspend,但是release正常釋放 出現(xiàn)問題問題后查看信息如下: 接受線程為suspend,sem的值一直在增
    發(fā)表于 09-23 08:17

    rtthread線程出現(xiàn)異常了,有沒有什么鉤子函數(shù)能夠定義用戶操作?

    線程出現(xiàn)異常了,有沒有什么鉤子函數(shù)能夠定義用戶操作????
    發(fā)表于 09-18 06:36

    線程刪除時遇到斷言,是什么原因?qū)е碌模?/a>

    在一個線程中調(diào)用線程刪除函數(shù)刪除另外一個線程,這2個線程的優(yōu)先級是相等的,被刪除的線程也是動態(tài)創(chuàng)建的,出現(xiàn)了下面的斷言內(nèi)容,一般是什么情況導
    發(fā)表于 09-12 06:08

    摩爾線程吳慶詳解 MUSA 軟件:以技術(shù)創(chuàng)新釋放 KUAE 集群潛能,引領(lǐng) GPU 計算新高度?

    的分享。GPU 計算軟件開發(fā)總監(jiān)吳慶登上講臺,發(fā)表了題為《摩爾線程 MUSA 軟件助力 KUAE 集群釋放無限潛能》的演講。他從專業(yè)視角出發(fā),為在場聽眾深入剖析了 MUSA 軟件在驅(qū)動 KUAE 集群高效運轉(zhuǎn)方面的核心技術(shù)與
    的頭像 發(fā)表于 07-28 13:47 ?6010次閱讀
    摩爾<b class='flag-5'>線程</b>吳慶詳解 MUSA 軟件<b class='flag-5'>棧</b>:以技術(shù)創(chuàng)新釋放 KUAE 集群潛能,引領(lǐng) GPU 計算新高度?

    摩爾線程亮相WAIC 2025:以“AI工廠”理念驅(qū)動算力進化,全AI應用賦能千行百業(yè)

    7月26日-29日,2025世界人工智能大會(WAIC)在上海舉辦。摩爾線程攜以全功能GPU為核心的“云邊端”全AI產(chǎn)品和解決方案精彩亮相,并首次提出“AI工廠”理念,旨在為AGI時代打造生產(chǎn)先進
    的頭像 發(fā)表于 07-28 11:34 ?2048次閱讀
    摩爾<b class='flag-5'>線程</b>亮相WAIC 2025:以“AI工廠”理念驅(qū)動算力進化,全<b class='flag-5'>棧</b>AI應用賦能千行百業(yè)

    UVC+MSC實現(xiàn)中MSC線程未運行的原因?

    apiRetStatus = CY_U3P_SUCCESS; /* 為線程分配內(nèi)存并創(chuàng)建線程 */ uvc_ptr = CyU3PMemAlloc ( UVC_APP_THREAD_STACK
    發(fā)表于 07-16 07:08

    深度剖析 RT-Thread 線程調(diào)度流程

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

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

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