精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

STM32 在 Keil 環境下如何使用 Cm_Backtrace進行錯誤追蹤

開發 前端
我們在平常使用STM32單片機的時候,往往會碰到程序跑飛的情況,出現hard_fulat等錯誤,而我們在定位錯誤的時候,采用的方法往往是連上仿真器,一步一步單步調試,定位到具體的錯誤代碼,再去猜測、排除、推敲錯誤原因。

[[385668]]

 引言

我們在平常使用STM32單片機的時候,往往會碰到程序跑飛的情況,出現hard_fulat等錯誤,而我們在定位錯誤的時候,采用的方法往往是連上仿真器,一步一步單步調試,定位到具體的錯誤代碼,再去猜測、排除、推敲錯誤原因,這樣一個過程很是痛苦,而且在實際情況中,很多產品真機調試時必須斷開仿真器或者說,問題確實存在,但是極難出現,所以在基于這樣一個問題背景下,RTT 的大佬armink開發了一個基于 ARM Cortex-M系列的 MCU錯誤追蹤庫,用于幫助開發者解決上述問題。

CmBacktrace 的作用及適用平臺首先,CmBacktrace 是一款針對于 ARM Cortex-M 系列 MCU 的錯誤代碼自動追蹤、定位、錯誤原因自動分析的開源庫,它所支持的錯誤包括:

  • 斷言(assert)
  • 故障
  • Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault

支持裸機以及以下操作系統平臺:

  • RT-Thread
  • UCOS
  • FreeRTOS

適配 Cortex-M0/M3/M7 MCU,支持IAR、KEIL、GCC編譯器,能夠達到的效果是:故障原因自動診斷,自動分析故障原因,定位發生故障代碼位置,輸出錯誤現場的函數調用棧。

移植

當前筆者所使用的平臺是 keil 5,所使用的控制器是 STM32F103,我們準備一個具備串口功能的工程,工程結構如下所示:

image-20210306101326283

 

緊接著,我們來看下 cm_backtrace的源代碼:

image-20210306101659128

 

上述中,cm_backtrace文件夾中存放的是源代碼,我們需要將其全部復制到我們的工程目錄,demos是使用的例子,里面分為有操作系統和無操作系統兩種類型,然后tools存放的是工具,用命令行的形式來分析代碼錯誤的工具,將相關文件復制到工程目錄之后工程目錄下的文件如下所示:

image-20210306102410525

 

然后,我們將相關文件添加至工程中,下面是添加之后的工程文件:

image-20210306102815766

 

同時應該添加相關頭文件路徑,添加的頭文件路徑如下所示:

image-20210306102919999

 

至此,cm_backtrace的源代碼就添加完了,我們來編譯一下。編譯結果如下所示:

 

 


image-20210306103031890

 

 

可以發現有很多錯誤,這是因為我們的相關宏還沒有打開,我們以照源碼中的說明文檔中的一個表,在 cmb_def.h中依次打開對應的宏,表如下所示:

配置名稱 功能 備注
cmb_println(…) 錯誤及診斷信息輸出 必須配置
CMB_USING_BARE_METAL_PLATFORM 是否使用在裸機平臺 使用則定義該宏
CMB_USING_OS_PLATFORM 是否使用在操作系統平臺 操作系統與裸機必須二選一
CMB_OS_PLATFORM_TYPE 操作系統平臺 RTT/UCOSII/UCOSIII/FREERTOS
CMB_CPU_PLATFORM_TYPE CPU平臺 M0/M3/M4/M7
CMB_USING_DUMP_STACK_INFO 是否使用 Dump 堆棧的功能 使用則定義該宏
CMB_PRINT_LANGUAGE 輸出信息時的語言 CHINESE/ENGLISH

更改之后的代碼如下所示:

image-20210306103649154

 

更改了宏之后,我們再來編譯代碼,編譯結果如下所示:

image-20210306103729814

 

提示要開啟c99編譯模式,我們在keil中設置,設置方式如下所示:

image-20210306103831859

 

繼續編譯,看到還有一個錯誤信息,編譯結果如下所示:

image-20210306104005145

 

這是因為cmb_fault.S中使用匯編定義了 HardFault_Handler函數,而在原本工程中,stm32f10x_it.c中已經定義了 HardFault_Handler,我們將stm32f10x_it.c中的HardFault_Handler注釋掉,代碼如下所示:

image-20210306104326301

 

現在編譯就可以通過了。

測試

移植完之后,我們現在來測試一下,在單片機中除0造成的錯誤如何檢查出來,我們在主函數中添加如下所示的代碼:

  1. #include "stm32f10x.h" 
  2. #include "bsp_usart.h" 
  3. #include <cm_backtrace.h> 
  4.  
  5. #define HARDWARE_VERSION               "V1.0.0" 
  6. #define SOFTWARE_VERSION               "V0.1.0" 
  7.  
  8. extern void fault_test_by_div0(void); 
  9.  
  10. /** 
  11.   * @brief  主函數 
  12.   * @param  無 
  13.   * @retval 無 
  14.   */ 
  15. int main(void) 
  16. {     
  17.   /*初始化USART 配置模式為 115200 8-N-1,中斷接收*/ 
  18.   USART_Config(); 
  19.  
  20.   /* CmBacktrace initialize */ 
  21.   cm_backtrace_init("CmBacktrace", HARDWARE_VERSION, SOFTWARE_VERSION); 
  22.  
  23.   fault_test_by_div0(); 
  24.  
  25.   while(1) 
  26.   {     
  27.   }     

將程序燒錄單片機,通過串口調試助手觀查輸出的信息:

image-20210306105316179

 

我們可以看到輸出信息顯示了當前用法錯誤是:企圖除 0 操作,并給出了相關寄存器信息,但是我們還不知道出現錯誤的代碼在哪一行,這個時候,就需要使用到前文所說的tools文件夾下的工具,addr2line工具。在使用這個工具的時候,需要知道當前工具輸出的可執行文件的名字,我們打開keil,信息如下所示:

image-20210306105719377

 

然后,我們找到 cm_backtrace文件夾下的tools工具,將其復制到USART.axf所在的目錄,復制之后的文件夾目錄如下所示:

image-20210306110017993

 

在當前文件夾下打開 cmd窗口,然后運行addr2line -e USART.axf -a -f 08001844 0800189a,在這里提一下打開 cmd的方法,按住Shift鍵,然后右鍵,打開Powershell

image-20210306110527928

 

打開的 Powershell如下所示,并在Powershell中輸入start cmd打開cmd窗口,然后在cmd窗口輸入addr2line -e USART.axf -a -f 08001844 0800189a,結果如下所示:

image-20210306110839097

 

可以看到錯誤信息是fault_test.c的38行,我們打開源代碼查看:

image-20210306111229605

 

可以看到確實是38行,問題分析正確。

小結

這就是本期分享的所有內容了,工欲善其事,必先利其器這話還是很有道理,學會使用各種分析工具也能夠加快我們的開發進度,幫助我們更快更好地解決問題。

責任編輯:武曉燕 來源: wenzi嵌入式軟件
相關推薦

2022-07-25 14:31:55

LiteOS開發工具

2021-05-20 07:26:22

DMASTM32數據

2021-05-06 08:54:39

串口DMASTM32

2021-08-31 08:01:40

STM32DSP指令

2022-10-10 08:24:15

編程數據邏輯語句

2021-12-22 06:56:07

STM32C語言內存

2021-02-05 08:41:44

STM32網絡中斷

2021-01-20 09:51:25

STM32網絡接口

2021-08-26 06:29:47

STM32DWT數據觀察點觸發

2024-02-23 10:11:00

虛擬化技術

2009-07-17 17:39:35

在NetBeans環境

2011-03-28 10:42:00

Spring

2013-01-24 09:29:16

2022-01-07 08:24:13

STM32枚舉結構體

2010-03-26 15:14:20

Linux系統環境

2009-12-10 09:42:07

2018-10-15 10:15:30

STM32Linux經驗

2010-01-12 15:13:37

Visual C++環

2021-04-22 08:39:23

哈佛結構馮洛伊曼結構ARM架構

2021-02-03 13:04:24

STM32網絡控制器
點贊
收藏

51CTO技術棧公眾號

国产精品12区| 久久婷婷五月综合色丁香| 国产成人在线视频播放| 69久久夜色精品国产69乱青草| 成年人的黄色片| 美女福利一区二区| 亚洲欧洲制服丝袜| 狠狠色综合网站久久久久久久| 成人小视频在线播放| 911精品美国片911久久久| 亚洲国产欧美精品| www.cao超碰| h片视频在线观看| 久久久久青草大香线综合精品| 国产色婷婷国产综合在线理论片a| 欧美国产在线看| 怕怕欧美视频免费大全| 91精品蜜臀在线一区尤物| 久久综合色视频| 成人福利片网站| 久久精品水蜜桃av综合天堂| 99国精产品一二二线| 国产精品欧美综合| 国产视频亚洲| 97国产精品视频| 51精品国产人成在线观看 | 欧美亚洲一区二区在线| 国产一二三区在线播放| 福利在线视频导航| 日本中文字幕伦在线观看| 国产专区欧美精品| 国产精品ⅴa在线观看h| 在线观看 中文字幕| 中文字幕av亚洲精品一部二部| 亚洲色图13p| 在线观看国产免费视频| 都市激情亚洲| 欧美成人欧美edvon| 最新免费av网址| 国产成+人+综合+亚洲欧美| 久久精品精品电影网| 777久久精品一区二区三区无码| 国产在线视频网址| 99久精品国产| 欧美精彩视频一区二区三区| 日韩黄色在线免费观看| 91性高潮久久久久久久| 久久久成人av毛片免费观看| 亚洲成在线观看| 久久www视频| 国产在线1区| 一区二区三区四区视频免费观看| 色综合咪咪久久| 97超碰青青草| 在线播放高清视频www| 亚洲综合在线免费观看| 国产精品视频二| 日韩123区| 亚洲综合清纯丝袜自拍| 成年人深夜视频| 美洲精品一卡2卡三卡4卡四卡| 亚洲乱码精品一二三四区日韩在线| 亚洲视频在线二区| 免费av在线网站| 亚洲日本一区二区三区| 国产精品88久久久久久妇女| 国产福利视频在线| 伊人性伊人情综合网| 51xx午夜影福利| 人妖欧美1区| 精品国产成人在线| 日韩av一二三四| 91精品国产66| 日韩一级二级三级精品视频| 国产亚洲精品成人a| 久久悠悠精品综合网| 精品香蕉在线观看视频一| 熟女少妇内射日韩亚洲| 66视频精品| 高清欧美一区二区三区| 91玉足脚交嫩脚丫在线播放| 麻豆久久久久久久| 91成人免费看| 久久精品高清| 婷婷久久综合九色国产成人 | 日韩欧美精品在线观看| 黄色国产小视频| 亚洲精品aaa| 精品99999| 免费黄在线观看| 欧美激情aⅴ一区二区三区| 91av网站在线播放| 一区二区三区黄| caoporm超碰国产精品| 亚洲乱码国产乱码精品天美传媒| av在线app| 日本道在线观看一区二区| 国产欧美精品一二三| 欧美日韩导航| 久久在精品线影院精品国产| 欧美三日本三级少妇99| 麻豆成人免费电影| 精品国产免费久久久久久尖叫| av女优在线| 亚洲线精品一区二区三区| 亚洲五月天综合| 无码国模国产在线观看| 一区二区三区四区在线观看视频| 国产一级片视频| 麻豆国产欧美日韩综合精品二区| 国产欧美在线一区二区| 老司机午夜在线视频| 狠狠躁夜夜躁人人爽超碰91| www激情五月| 精品国产1区| 1769国产精品| 国产 欧美 自拍| 中文在线资源观看网站视频免费不卡| 国产高清www| 国产一区二区三区| 国产一区二区三区视频免费| 日韩av在线电影| 精彩视频一区二区| 午夜午夜精品一区二区三区文| 久草在线资源福利站| 日韩午夜av一区| 亚洲精品一区二区三区在线播放| 欧美一级一区| 久久久久久久免费| 91超碰在线| 日韩精品一区国产麻豆| 伊人久久久久久久久久久久久久| 日韩有码一区二区三区| 狼狼综合久久久久综合网| av有码在线观看| 亚洲第一网站免费视频| 欧美精品色哟哟| 国产激情一区二区三区四区 | 日韩精品欧美专区| 午夜久久中文| 精品中文字幕久久久久久| 国产亚洲欧美精品久久久久久| 国产一区不卡视频| 只有这里有精品| 91精品国产色综合久久不卡粉嫩| 丝袜亚洲另类欧美重口| 亚洲av无码乱码国产精品fc2| 久久久影视传媒| 黄色片久久久久| 久久99久久人婷婷精品综合| 国产91亚洲精品| 成年人视频免费在线观看| 欧美在线观看视频一区二区| 欧美波霸videosex极品| 日韩福利视频导航| 欧美日韩一区二| 日韩av电影资源网| www.国产一区| 国产高中女学生第一次| 一区二区三区不卡视频| 免费看毛片的网站| 国产伦理一区| 日韩影视精品| 亚洲欧洲日韩精品在线| 色综合久久88| 视频在线不卡| 欧美亚洲国产一区在线观看网站| 老司机深夜福利网站| 国产精品一级黄| 日本丰满少妇xxxx| 国产一区不卡| 国产在线拍揄自揄视频不卡99| 成人无遮挡免费网站视频在线观看| 精品区一区二区| 丁香六月婷婷综合| 国产精品视频免费看| 免费看的av网站| 亚洲一区二区三区免费在线观看| 婷婷四月色综合| 亚洲精品在线a| 日本久久久久久久久| 暖暖日本在线观看| 亚洲第一页自拍| 中文资源在线播放| 亚洲一区二区三区三| 91成年人网站| 国产精品亚洲а∨天堂免在线| 国产视频九色蝌蚪| 久久精品国产大片免费观看| 国产精品播放| 成人高清一区| 韩国欧美亚洲国产| 在线观看免费黄色| 亚洲成人黄色网址| 日韩国产亚洲欧美| 亚洲午夜国产一区99re久久| 影音先锋男人在线| 99re成人精品视频| 欧美性猛交xxxx乱大交91| 中文在线不卡| 无码人妻精品一区二区三区99v| 日韩av综合网站| 激情视频在线播放| 久久久久国产精品麻豆ai换脸| 99日在线视频| 亚洲中午字幕| 国内精品国产三级国产99| 精品一区三区| 国产精品视频入口| 日韩在线你懂得| 欧美专区第一页| 调教一区二区| 日韩在线视频观看正片免费网站| 亚洲aⅴ乱码精品成人区| 欧美一区二区在线免费观看| 波多野结衣一二区| 激情av一区二区| 麻豆视频在线观看| 亚洲天堂福利av| 久久视频精品在线观看| 99精品久久只有精品| 免费高清视频在线观看| 精品在线你懂的| 最近免费中文字幕中文高清百度| 亚洲国产导航| 国产精品国三级国产av| 亚洲欧美综合久久久| 视频一区视频二区视频三区视频四区国产| 欧美大胆视频| 国产无套精品一区二区| 亚洲国产中文在线| 91在线观看免费网站| 色999久久久精品人人澡69 | 亚洲欧美日韩国产成人综合一二三区| 图片婷婷一区| 一级久久久久久久| 亚洲欧美另类小说| 国产一二三四区在线| 日韩精品视频在线看| 日本精品视频在线| 欧美另类老肥妇| 国外成人在线播放| 久久一卡二卡| 国内精品400部情侣激情| 毛片大全在线观看| 小明成人免费视频一区| 欧美激情一区二区久久久| av激情在线| 久久91精品国产91久久跳| 超碰在线caoporn| 欧美精品亚州精品| 天堂av资源在线观看| 久久9999久久免费精品国产| 国产一区二区在线电影| 欧美在线aaa| 黄页网站大全一区二区| 久久综合桃花网| 国产精品亚洲专一区二区三区| 亚洲av无一区二区三区久久| 福利一区在线观看| 国产麻豆剧传媒精品国产av| 91女人视频在线观看| 一区二区三区久久久久| 国产精品成人午夜| 欧美激情精品久久| 黄色一区二区在线| 波多野结衣人妻| 婷婷成人影院| 精品一区日韩成人| 精品国产一级毛片| 中文精品视频一区二区在线观看| 综合亚洲视频| 欧美三级在线观看视频| 天堂蜜桃91精品| 天天干天天色天天干| 国产精品 日产精品 欧美精品| 国产99视频精品免视看7| 日韩三区免费| 亚洲va国产va天堂va久久| 伊人精品综合| 久久综合久久久| 久久一级电影| 亚洲精品久久久久久久蜜桃臀| 福利在线视频导航| 久久久精品免费| 啊啊啊久久久| 国产精品视频自拍| 伊人久久噜噜噜躁狠狠躁| 91国偷自产一区二区三区观看 | 狠狠操狠狠干视频| 国产精品资源网| asian性开放少妇pics| 中文字幕在线播放不卡一区| 久久久国产高清| 欧美精品乱人伦久久久久久| 五月婷婷激情在线| 色妞色视频一区二区三区四区| 久草在线新免费首页资源站| 国产精品久久久久不卡| 国产精品99久久免费观看| 亚洲国产一区二区三区在线| 最新亚洲视频| 韩国一区二区在线播放| 91蝌蚪porny九色| 欧美成人手机视频| 欧美午夜精品一区| 日韩精品视频无播放器在线看| 欧美精品情趣视频| 丁香婷婷久久| 麻豆av一区二区三区| 黄色av日韩| 亚洲图片 自拍偷拍| 国产欧美日韩精品a在线观看| 久久露脸国语精品国产91| 欧美一区二区在线不卡| 国产鲁鲁视频在线观看免费| 97精品国产97久久久久久免费 | 女生影院久久| 国产综合第一页| 欧美一区不卡| 中文av字幕在线观看| 欧美激情一区不卡| aaaaaa毛片| 精品亚洲一区二区三区| 8x8ⅹ拨牐拨牐拨牐在线观看| 亚洲在线视频福利| 天天av综合| 日韩在线不卡一区| 国产精品免费av| 最近中文字幕av| 国产亚洲精品激情久久| 国产高清不卡| 欧美一级二级三级九九九| 亚洲一区二区三区高清不卡| 欧类av怡春院| 午夜精品久久久久久久久久| 刘亦菲久久免费一区二区| 欧美精品第一页在线播放| 91精品导航| 日韩精品视频在线观看视频| 成人性生交大片免费看视频在线| 好吊色视频在线观看| 日韩欧美在线综合网| 性欧美ⅴideo另类hd| 97超碰人人看人人| 亚洲午夜视频| 少妇精品无码一区二区三区| 午夜视频久久久久久| 神马电影在线观看| 国产成人精品视频| 精品久久91| 色婷婷.com| 一区二区三区日韩精品| 黄色一级大片在线免费看国产| 国产综合在线看| 曰本一区二区三区视频| 亚洲黄色a v| 国产精品久久久久影院亚瑟| 国产裸体永久免费无遮挡| 欧美精品免费播放| 国产精品高潮呻吟久久久久| 女人和拘做爰正片视频| 国产亚洲精品久| 91在线你懂的| 欧美高清电影在线看| 美女一区二区在线观看| 色诱视频在线观看| 中文字幕一区二区三区在线观看| 精品区在线观看| 97成人超碰免| 日韩精品免费一区二区三区| 原创真实夫妻啪啪av| 午夜国产精品一区| 国产在线电影| 91中文在线观看| 国产日韩亚洲欧美精品| 久久精品成人欧美大片| 国产成人久久精品麻豆二区| 强伦女教师2:伦理在线观看| 成人国产精品免费观看动漫| www.国产色| 久久偷看各类女兵18女厕嘘嘘| 99这里只有精品视频| 37pao成人国产永久免费视频| 国产精品久久777777| 成人午夜免费福利| 国产成人亚洲精品| 欧美日韩爆操| 国内精品卡一卡二卡三| 日韩精品中文字幕在线不卡尤物| 亚洲人体视频| 青青草视频国产| 国产日韩欧美激情| 亚洲精品一区二区三区四区| 国产精品99蜜臀久久不卡二区| 欧美午夜一区| 一区二区三区在线观看免费视频| 日韩免费高清av| 日韩高清在线| 日本一道本久久|