91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

專治MCU各種HardFault問題的開源庫

MCU開發(fā)加油站 ? 來源:strongerHuang ? 作者:armink ? 2021-03-10 11:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

相信有不少讀者都遇到過 “HardFault”的問題,而且不止一次,有時(shí)候可能因?yàn)樗B續(xù)幾日加班,甚至通宵。 那么今天就來分享一個(gè)由armink(也就是現(xiàn)在RTT里面的那位朱大神)整理的開源庫,借花獻(xiàn)佛分享給大家。一、CmBacktrace 是什么

CmBacktrace (Cortex Microcontroller Backtrace)是一款針對(duì) ARM Cortex-M 系列 MCU 的錯(cuò)誤代碼自動(dòng)追蹤、定位,錯(cuò)誤原因自動(dòng)分析的開源庫。主要特性如下:

1. 支持的錯(cuò)誤包括

斷言(assert)

故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault)

2. 故障原因自動(dòng)診斷可在故障發(fā)生時(shí),自動(dòng)分析出故障的原因,定位發(fā)生故障的代碼位置,而無需再手動(dòng)分析繁雜的故障寄存器;3. 輸出錯(cuò)誤現(xiàn)場的函數(shù)調(diào)用棧(需配合 addr2line 工具進(jìn)行精確定位),還原發(fā)生錯(cuò)誤時(shí)的現(xiàn)場信息,定位問題代碼位置、邏輯更加快捷、精準(zhǔn)。也可以在正常狀態(tài)下使用該庫,獲取當(dāng)前的函數(shù)調(diào)用棧;4. 支持 裸機(jī) 及以下操作系統(tǒng)平臺(tái):

RT-Thread

UCOS

FreeRTOS(需修改源碼)

5. 根據(jù)錯(cuò)誤現(xiàn)場狀態(tài),輸出對(duì)應(yīng)的 線程棧 或 C 主棧;6.故障診斷信息支持多國語言(目前:簡體中文、英文);7.適配Cortex-M0/M3/M4/M7 MCU;

8.支持IAR、KEIL、GCC 編譯器;

二、為什么選擇 CmBacktrace入門新人:對(duì)于從 C51 、MSP430 等簡單單片機(jī)轉(zhuǎn)而使用更加復(fù)雜的 ARM 新人來說,時(shí)不時(shí)出現(xiàn)的 "hard falut" 死機(jī)會(huì)讓新人瞬間懵掉。定位錯(cuò)誤的方法也往往是連接上仿真器,一步步 F10/F11 單步,定位到具體的錯(cuò)誤代碼,再去猜測、排除、推敲錯(cuò)誤原因,這種過程十分痛苦。

熟練老手:慢慢的大家知道可以通過故障寄存器信息來定位故障原因及故障代碼地址,雖然這樣能解決一小部分問題,但是重復(fù)的、繁瑣的分析過程也會(huì)耽誤很多時(shí)間。而且對(duì)于一些復(fù)雜問題,只依靠代碼地址是無法解決的,必須得還原錯(cuò)誤現(xiàn)場的函數(shù)調(diào)用邏輯關(guān)系。雖然連接仿真器可以查看到的函數(shù)調(diào)用棧,但故障狀態(tài)下是無法顯示的,所以還是得一步步 F10/F11 單步去定位錯(cuò)誤代碼的位置。

另外,還有兩種場景:1、很多產(chǎn)品真機(jī)調(diào)試時(shí)必須斷開仿真器2、問題確實(shí)存在,但是極難被重現(xiàn)

所以定位這類問題就顯得難上加難。

使用本庫:上述所有問題都迎刃而解,可以將錯(cuò)誤信息輸出到控制臺(tái)上,還可以將錯(cuò)誤信息使用 EasyFlash 的 Log 功能保存至 Flash 中,設(shè)備死機(jī)后重啟依然能夠讀取上次的錯(cuò)誤信息。CmBacktrace 輸出的信息包括函數(shù)調(diào)用棧、故障診斷結(jié)果、堆棧、故障寄存器及產(chǎn)品固件信息,極大的提升了錯(cuò)誤定位的效率及準(zhǔn)確性。

俗話說,工欲善其事,必先利其器。所以有時(shí)候做事效率低的原因也許是,你會(huì)用的工具種類太少。

三、CmBacktrace 如何使用

本文就簡單演示一下,演示分如下幾個(gè)步驟:1、制造除零異常(IAR 工程,點(diǎn)擊查看源碼)2、查看錯(cuò)誤診斷信息3、查看函數(shù)調(diào)用?;拘畔?、通過命令行工具進(jìn)入項(xiàng)目工程存放可執(zhí)行文件的路徑

5、使用 addr2line 命令,查看函數(shù)調(diào)用棧詳細(xì)信息,并定位錯(cuò)誤代碼

具體的使用方法,請(qǐng)見原始說明文檔,里面描述了很多細(xì)節(jié)內(nèi)容。

原文標(biāo)題:專治MCU各種 HardFault 的庫:CmBacktrace(錯(cuò)誤追蹤庫)

文章出處:【微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    147

    文章

    18924

    瀏覽量

    398073
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    4204

    瀏覽量

    46130
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51598

原文標(biāo)題:專治MCU各種 HardFault 的庫:CmBacktrace(錯(cuò)誤追蹤庫)

文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Fluke 773毫安鉗形表讓暖通自控調(diào)試效率翻倍

    它不只是個(gè)鉗表,更是為你量身定制的集成式診斷平臺(tái),專治各種暖通空調(diào)與樓宇自控系統(tǒng)“疑難雜癥”。
    的頭像 發(fā)表于 02-28 09:38 ?400次閱讀

    鋼渣處理線的“網(wǎng)絡(luò)神醫(yī)”:疆鴻智能PROFIBUS集線器,專治各種信號(hào)不服

    鋼渣處理線的“網(wǎng)絡(luò)神醫(yī)”:疆鴻智能PROFIBUS集線器,專治各種信號(hào)不服 一、項(xiàng)目背景與挑戰(zhàn) 某大型鋼鐵集團(tuán)煉鋼廠年產(chǎn)鋼渣超百萬噸,原有鋼渣處理線采用分布式硬接線控制方式。隨著產(chǎn)能提升與自動(dòng)化升級(jí)
    的頭像 發(fā)表于 12-29 14:41 ?164次閱讀
    鋼渣處理線的“網(wǎng)絡(luò)神醫(yī)”:疆鴻智能PROFIBUS集線器,<b class='flag-5'>專治</b><b class='flag-5'>各種</b>信號(hào)不服

    OpenTenBase核心貢獻(xiàn)者分享開源數(shù)據(jù)的破局之路

    “在開源數(shù)據(jù)已成一片‘紅?!漠?dāng)下,單純比拼‘快’或‘省’,已很難在開發(fā)者心中建立獨(dú)特的護(hù)城河?!監(jiān)penTenBase核心貢獻(xiàn)者、騰訊云數(shù)據(jù)專家工程師李晉鋼這樣闡述他對(duì)當(dāng)前數(shù)據(jù)
    的頭像 發(fā)表于 12-29 14:00 ?416次閱讀

    炎核開源開放平臺(tái)上架推出OpenSparseBlas高性能稀疏計(jì)算

    在科學(xué)計(jì)算與工程仿真領(lǐng)域,高效處理大規(guī)模稀疏矩陣運(yùn)算是提升整體計(jì)算效能的關(guān)鍵。為此,我們在炎核開源開放平臺(tái)上架推出 OpenSparseBlas——一個(gè)專為稀疏矩陣/向量計(jì)算而打造的高性能稀疏計(jì)算
    的頭像 發(fā)表于 12-15 15:18 ?632次閱讀

    MCU軟件核心及示例代碼速覽 !

    為加速嵌入式項(xiàng)目開發(fā),本文對(duì)MCU軟件核心進(jìn)行整體速覽,涵蓋初始化、外設(shè)控制與中斷處理等關(guān)鍵部分,并結(jié)合簡潔示例代碼,幫助開發(fā)者快速理解與應(yīng)用功能。 一、MCU核心庫函數(shù)功能
    的頭像 發(fā)表于 12-11 17:19 ?686次閱讀
    <b class='flag-5'>MCU</b>軟件核心<b class='flag-5'>庫</b>及示例代碼速覽 !

    MCU調(diào)試典型問題與解決方法

    (NVIC_SetPriorityGrouping())。 檢查未處理的中斷標(biāo)志(清除Pending位)。 HardFault定位: 在HardFault_Handler中讀取SCB->
    發(fā)表于 11-17 07:57

    LuatOS MCU核心全接觸:新手操作與功能測試攻略!

    ?MCU芯片級(jí)開發(fā)新手如何快速掌握核心技能?本文圍繞LuatOS的MCU核心,系統(tǒng)演示時(shí)鐘頻率獲取、唯一ID讀取、高精度計(jì)時(shí)、IO復(fù)用配置等核心功能測試,并通過豐富示例,幫助開發(fā)者輕松入門,迅速
    的頭像 發(fā)表于 11-12 14:30 ?294次閱讀
    LuatOS <b class='flag-5'>MCU</b>核心<b class='flag-5'>庫</b>全接觸:新手操作與功能測試攻略!

    新手必備:LuatOS MCU核心功能測試與實(shí)踐指南

    新手如何快速掌握MCU芯片級(jí)開發(fā)?本文通過LuatOS的MCU核心,全面演示時(shí)鐘頻率獲取、唯一ID讀取、高精度計(jì)時(shí)、IO復(fù)用配置等核心功能的測試流程,并提供實(shí)用示例,幫助開發(fā)者高效入門,輕松應(yīng)對(duì)
    的頭像 發(fā)表于 11-12 14:26 ?338次閱讀
    新手必備:LuatOS <b class='flag-5'>MCU</b>核心<b class='flag-5'>庫</b>功能測試與實(shí)踐指南

    Cortex-M0+處理器的HardFault錯(cuò)誤介紹

    在ARM處理器中,如果一個(gè)程序產(chǎn)生了錯(cuò)誤并且被處理器檢測到,就會(huì)產(chǎn)生錯(cuò)誤異常。Cortex-M0+處理器只有一種異常用以處理錯(cuò)誤:HardFault。
    的頭像 發(fā)表于 10-14 10:50 ?3383次閱讀
    Cortex-M0+處理器的<b class='flag-5'>HardFault</b>錯(cuò)誤介紹

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

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

    飛書富文本組件RichTextVista開源

    近日,飛書正式將其自研的富文本組件 RichTextVista(簡稱“RTV”)開源,并上線OpenHarmony 三方中心倉。該組件以領(lǐng)先的性能、流暢的渲染體驗(yàn)與高度的開放性,為鴻蒙生態(tài)提供了更高效的富文本解決方案。
    的頭像 發(fā)表于 07-16 16:47 ?1006次閱讀

    請(qǐng)問EZ-Serial固件是否使用任何OSS(開源軟件)或軟件?

    EZ-Serial 固件是否使用任何 OSS(開源軟件)或軟件?
    發(fā)表于 07-02 08:14

    #工作原理大揭秘 #單片機(jī) #電路原理 #MCU#mcu程序開發(fā)

    mcu
    宇凡微電子
    發(fā)布于 :2025年06月19日 19:02:28

    s32k324調(diào)試時(shí)出現(xiàn)MemManage和HardFault怎么解決?

    我目前正在使用 s32k324 板。 我正在運(yùn)行一個(gè)簡單的示例代碼,但在調(diào)試時(shí)收到以下兩個(gè)錯(cuò)誤 MemManage:處理器嘗試從不允許執(zhí)行的位置獲取指令。 HardFault:故障已升級(jí)為硬故障。 您能告訴我解決方案嗎?
    發(fā)表于 04-04 08:16

    STM32H743對(duì)關(guān)鍵中斷函數(shù),使用ITCM搬至RAM運(yùn)行,仿真進(jìn)入HardFault_Handler報(bào)錯(cuò)怎么解決?

    ,CubeIDE編譯能正常通過,且map文件中,對(duì)已搬至ITCM RAM區(qū)域運(yùn)行的中斷函數(shù)的地址是OK的。只要上電一仿真運(yùn)行就會(huì)進(jìn)入HardFault_Handler函數(shù),MCU主頻是480MHz,不知是否主頻過高所致,請(qǐng)各位大神指點(diǎn)下。
    發(fā)表于 03-07 08:04