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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

這些問題是否也在你的項(xiàng)目中時(shí)常困擾著你?

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

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

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

不正確使用內(nèi)核API導(dǎo)致系統(tǒng)異常

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

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

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

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

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

...

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

1

提出問題

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

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í)行指令導(dǎo)致,通過1)點(diǎn)可以定位到問題發(fā)生在entry線程,第2)點(diǎn)可以看出entry線程的??臻g有點(diǎn)小,因此初步定位線程棧溢出。

3

解決問題

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

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

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

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

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

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

培訓(xùn)時(shí)間

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

本次培訓(xùn)是付費(fèi)培訓(xùn),培訓(xùn)費(fèi)用:2918元 - 含稅 (3日),提供培訓(xùn)手冊(cè)+硬件平臺(tái)。培訓(xùn)費(fèi)用同時(shí)也包含午餐。

培訓(xùn)內(nèi)容

時(shí)間

培訓(xùn)內(nèi)容

2024/11/9

RTOS內(nèi)核

1. 內(nèi)核原理

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

1.2 RT-Thread線程與線程切換學(xué)習(xí)

1.3 RT-Thread線程與中斷切換學(xué)習(xí)

2. 應(yīng)用編程

2.1 RT-Thread多線程編程

(1)RT-Thread多線程搶占學(xué)習(xí)

(2)RT-Thread多線程輪詢學(xué)習(xí)

(3)RT-Thread多線程調(diào)試實(shí)踐

2.2 RT-Thread線程同步

(1)RT-Thread信號(hào)量原理,調(diào)試與應(yīng)用實(shí)踐

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

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

2.3 RT-Thread線程通信

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

(2)RT-Thread消息隊(duì)列原理,調(diào)試與應(yīng)用實(shí)踐

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

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

3.2 RT-Thread動(dòng)態(tài)內(nèi)存應(yīng)用實(shí)踐

2024/11/10

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

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

1.1 Kconfig配置系統(tǒng)

(1) Kconfig工作機(jī)制

(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ū)動(dòng)庫(kù)、RTT HAL庫(kù)驅(qū)動(dòng)、RTT驅(qū)動(dòng)框架關(guān)系介紹

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

(1) 虛擬驅(qū)動(dòng)移植實(shí)戰(zhàn)

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

3.1 PIN設(shè)備

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

(2) PIN設(shè)備驅(qū)動(dòng)應(yīng)用實(shí)踐

3.2 UART設(shè)備

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

(2) UART設(shè)備驅(qū)動(dòng)應(yīng)用實(shí)踐

3.3 I2C設(shè)備

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

(2) I2C設(shè)備驅(qū)動(dòng)應(yīng)用實(shí)踐

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

4.1 串口設(shè)備組件

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

(2) 串口設(shè)備驅(qū)動(dòng)應(yīng)用實(shí)踐

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

(1) I2C Tools軟件包介紹

(2) I2C設(shè)備驅(qū)動(dòng)應(yīng)用實(shí)踐

2024/11/11

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

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

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

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

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

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

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

2. 組件分析與實(shí)踐

(1)MQTT軟件包原理與應(yīng)用實(shí)踐

(2)SAL抽象層原理與應(yīng)用實(shí)踐

(3)傳感器軟件包應(yīng)用實(shí)踐

(4)其他相關(guān)軟件包應(yīng)用實(shí)踐

3. 綜合實(shí)踐

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

培訓(xùn)地點(diǎn)

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

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

培訓(xùn)證書

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

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

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

    關(guān)注

    5186

    文章

    20135

    瀏覽量

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

    關(guān)注

    0

    文章

    508

    瀏覽量

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

    關(guān)注

    32

    文章

    1535

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Linux多線程對(duì)比單線程的優(yōu)勢(shì)

    在Linux系統(tǒng)中,線程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位。線程被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)行單位。一個(gè)進(jìn)程可以擁有多個(gè)線程,這些
    發(fā)表于 12-01 06:11

    堆和的區(qū)別

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

    低優(yōu)先級(jí)線程無法調(diào)度怎么解決?

    1,設(shè)置了3,5,6,8幾個(gè)優(yōu)先級(jí),設(shè)備在現(xiàn)場(chǎng)正常運(yùn)行了一年多后,顯示、前端、后端這3個(gè)低優(yōu)先級(jí)線程異常了,表現(xiàn)為屏幕不動(dòng),前端采集數(shù)據(jù)沒有變化等,其他高優(yōu)先級(jí)的線程如通訊,按鍵都能正常運(yùn)行,通訊有喂狗操作,停止通訊,會(huì)看門狗復(fù)
    發(fā)表于 09-25 07:33

    rt_sem_take卡住導(dǎo)致線程無法正常運(yùn)行怎么解決?

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

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

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

    main線程創(chuàng)建中的rt_memset導(dǎo)致hardfault是為什么?

    main線程大小設(shè)置成2048的時(shí)候rt_memset導(dǎo)致hardfault,改成512就不會(huì),這是為什么
    發(fā)表于 09-18 06:24

    網(wǎng)絡(luò)接收線程erxmb異常的原因?怎么解決?

    兩個(gè)不同的軟件接收組播數(shù)據(jù)久了后均出現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)無法接收,網(wǎng)絡(luò)發(fā)送是正常的。lpc54628芯片。郵箱有8個(gè)但erxmb線程已經(jīng)無法運(yùn)行了,這是什么原因?qū)е?/div>
    發(fā)表于 09-15 08:06

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

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

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

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

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

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

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

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

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

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

    golang內(nèi)存分配

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

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

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