精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

成人免费av片| 人妻少妇被粗大爽9797pw| www国产在线| 99精品热6080yy久久| 亚洲欧美日韩视频一区| 国产成人在线综合| 九色porny丨入口在线| 国产清纯白嫩初高生在线观看91| 亚洲va欧美va在线观看| 亚洲午夜18毛片在线看| 亚洲mv大片欧洲mv大片| 精品视频在线播放色网色视频| 999精彩视频| 波多野结衣乳巨码无在线观看| 国产喂奶挤奶一区二区三区| 91视频99| 一二三四区在线| 91久久综合| 欧美成人激情在线| 亚洲av综合一区二区| 欧美区一区二区| 色8久久精品久久久久久蜜| 色哟哟免费网站| 国产有码在线| 91美女精品福利| 波多野结衣成人在线| 在线视频播放大全| 亚洲制服av| 久久久久久久999| 性生交大片免费全黄| 国产成人黄色| 日韩电影中文字幕一区| 麻豆免费在线观看视频| 欧美暴力调教| 91久久免费观看| 国产精品国产亚洲精品看不卡| 高潮毛片在线观看| 国产精品丝袜在线| 清纯唯美一区二区三区| 欧洲毛片在线| 99精品视频一区| 国产传媒一区二区三区| wwwxxxx国产| 国产成人亚洲综合a∨婷婷| 国产日韩一区在线| 中国a一片一级一片| 毛片一区二区| 日韩av电影院| 亚洲黄网在线观看| 久久av一区二区三区| 欧美在线欧美在线| 成年人视频在线免费看| 国产亚洲激情| 国产v综合v亚洲欧美久久| 国产情侣自拍av| 亚洲私拍自拍| 96精品视频在线| 日本韩国欧美中文字幕| 欧美亚洲免费| 国产精品第1页| 波多野结衣在线观看一区| 日韩电影在线看| 国产精品久久久久av| 中文字幕视频在线播放| 美腿丝袜亚洲综合| 91久久精品国产| 精品国产999久久久免费| 国产激情视频一区二区三区欧美| 99国精产品一二二线| 全国男人的天堂网| 91视频免费观看| 日韩少妇中文字幕| 黄色动漫在线观看| 亚洲成年人影院| 超碰影院在线观看| 外国成人毛片| 亚洲а∨天堂久久精品9966| 国产精品无码一区二区三| 国产精品免费大片| www.日韩系列| 日韩少妇高潮抽搐| 天堂精品中文字幕在线| 国产欧美日韩中文字幕| 国产夫绿帽单男3p精品视频| av电影在线观看一区| 日韩一区免费观看| bt在线麻豆视频| 精品久久中文字幕久久av| 欧美亚洲国产成人| 欧美亚洲黄色| 亚洲第一区中文99精品| 国产精品20p| 欧美一区网站| 欧美又大又粗又长| 国产免费一区二区三区免费视频| 成人精品免费网站| 亚洲精品永久www嫩草| 国产丝袜精品丝袜| 欧美偷拍一区二区| 国产精品一区二区无码对白| 精品久久91| 欧美激情手机在线视频| 亚洲成人av网址| 盗摄精品av一区二区三区| 日本一区二区三区四区高清视频| 高清全集视频免费在线| 在线观看日韩电影| 国产污在线观看| 99热在线成人| 日本一本a高清免费不卡| 国产毛片毛片毛片毛片| 久久精品夜夜夜夜久久| 97超碰在线视| 亚洲一区有码| 亚洲欧洲高清在线| 国产精品23p| 国产乱码精品一品二品| 神马一区二区影院| 黄毛片在线观看| 日韩午夜激情电影| 久久av红桃一区二区禁漫| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲自拍偷拍在线| 欧洲不卡av| 欧美亚洲动漫精品| 国产伦精品一区二区三区妓女 | 激情小说综合网| av免费在线免费| 欧美天天综合网| 中文字幕av网址| av成人国产| 成人在线观看网址| 中文字幕在线播放网址| 欧美绝品在线观看成人午夜影视| 久久精品一区二区免费播放| 亚洲国产婷婷| 国产精品日韩欧美一区二区| 在线看福利影| 欧美一区中文字幕| 精品国产国产综合精品| 久久国产精品第一页| 先锋影音一区二区三区| 日本精品在线中文字幕| 一区二区欧美日韩视频| 狠狠躁夜夜躁人人爽视频| 久久嫩草精品久久久久| 无码人妻精品一区二区三区在线| 国内精品麻豆美女在线播放视频| 欧美激情国内偷拍| 嫩草影院一区二区| 激情成人在线视频| 亚洲国产果冻传媒av在线观看| 国产精品www994| 成人精品水蜜桃| 不卡的av影片| 亚洲第一综合天堂另类专 | 色呦呦日韩精品| 99久久人妻无码精品系列| 亚洲中午字幕| 色噜噜狠狠色综合网| 久久精品资源| 欧美另类极品videosbest最新版本 | 91精品久久久久久久久久久久久久 | 中文字幕欧美日韩一区二区三区| 欧美成人高清视频在线观看| 久久天天躁夜夜躁狠狠躁2022| 99久久99久久久精品棕色圆| 伊人性伊人情综合网| 99久久免费看精品国产一区| 国产亚洲在线| 亚洲日本精品国产第一区| 日韩在线激情| 欧美极品xxxx| 玖玖综合伊人| 678五月天丁香亚洲综合网| 激情视频在线播放| 95精品视频在线| 熟妇人妻va精品中文字幕 | 中文字幕+乱码+中文乱码91| 中文字幕一区视频| 国模大尺度视频| 国产亚洲毛片在线| 一区不卡视频| 福利在线一区| 国产精品久久久久9999| 色呦呦网站在线观看| 亚洲美女喷白浆| 国产一区二区在线不卡| 天天免费综合色| 五月天免费网站| 成人一道本在线| 狠狠热免费视频| 欧美日韩国内| 午夜精品一区二区在线观看的| 日韩精品免费视频一区二区三区| 欧美一乱一性一交一视频| 国产原创在线观看| 日韩精品电影网| www.精品久久| 欧美亚洲一区二区三区四区| 久草视频免费在线| 中文字幕精品一区二区精品绿巨人 | 日韩一区二区视频在线| 中国色在线观看另类| 午夜免费福利影院| 美日韩一级片在线观看| 欧美综合在线播放| 久久久久久久久久久久久久久久久久 | ww亚洲ww在线观看国产| 国产又黄又猛又粗| 亚洲国产1区| 一区二区三区欧美在线| 免费萌白酱国产一区二区三区| 成人一区二区电影| **在线精品| 97精品久久久| 中文字幕在线观看网站| 少妇久久久久久| 青青国产在线| 亚洲精品成人久久| www.爱爱.com| 欧美精品在欧美一区二区少妇| 男女视频免费看| 一二三区精品视频| 小嫩苞一区二区三区| 国产欧美一二三区| 国产精品第七页| 成人午夜av电影| 日本中文字幕在线不卡| 麻豆精品在线视频| 热久久精品免费视频| 国产精品亚洲欧美| 日本少妇高潮喷水视频| 狠狠88综合久久久久综合网| 路边理发店露脸熟妇泻火| 国产精品成人a在线观看| 午夜视频久久久| 精品国产一区探花在线观看| 欧美一区二区在线视频观看| 天天操综合520| 久久福利电影| 免费萌白酱国产一区二区三区| 国产高清一区二区三区| 国产精品zjzjzj在线观看| 亚洲综合日韩在线| av不卡一区| 国产精品日韩欧美一区二区| 麻豆一区二区| 久久亚洲午夜电影| 日韩深夜影院| 欧美日韩免费精品| 国产a久久精品一区二区三区| 免费久久99精品国产自| 亚洲小说图片视频| 日韩欧美一区二区三区四区 | 欧美1区2区3| 91在线精品观看| 高潮久久久久久久久久久久久久 | 男人的天堂在线免费视频| 日韩精品在线播放| 国际av在线| 久久精品国产96久久久香蕉| 成人影欧美片| 欧美精品电影在线| 欧亚av在线| 国产精品久久久久福利| 亚洲免费资源| 国产91一区二区三区| 网红女主播少妇精品视频| 欧美激情国产日韩| 日韩精品免费一区二区三区| 国产麻豆电影在线观看| 国产精品v日韩精品v欧美精品网站| 成人免费网站入口| 亚洲欧美卡通另类91av| 污污的网站18| 国产高清在线观看免费不卡| 97人妻天天摸天天爽天天| 国产日韩欧美a| 精品人妻伦九区久久aaa片| 亚洲一区二区三区激情| 成人精品免费在线观看| 欧美视频在线不卡| www.国产.com| 亚洲香蕉伊综合在人在线视看| 欧美成人hd| 91av网站在线播放| 婷婷成人av| 精品国产一区二区三区日日嗨| 欧美综合久久| 日韩av新片网| 蜜臀av性久久久久蜜臀av麻豆 | 国产精品福利电影| 亚洲精品在线观看视频| 成人在线观看免费| 欧美高清在线观看| 成人高清一区| 精品乱码一区| 最新国产精品| 中文字幕在线导航| www.久久久久久久久| 午夜剧场免费在线观看| 色综合中文字幕| 成人激情四射网| 色妞一区二区三区| 伊人色综合一区二区三区影院视频 | 黄色a级在线观看| 亚洲欧美日本视频在线观看| gogo亚洲国模私拍人体| 国产午夜精品一区二区三区视频 | a级国产乱理论片在线观看99| 美女久久久久| 国产69精品久久久久久久| 极品少妇xxxx偷拍精品少妇| 新91视频在线观看| 亚洲电影激情视频网站| 精品国产18久久久久久| 日韩资源在线观看| 色婷婷综合久久久中字幕精品久久| www.成人三级视频| 欧美在线高清| 中文字幕一区二区在线观看视频| 99国产精品国产精品久久| 久久久久成人精品无码| 欧美精品777| 欧美三级电影一区二区三区| 国产成人精彩在线视频九色| 免费福利视频一区| av片在线免费| 国产精品亚洲专一区二区三区| 天天爽天天爽天天爽| 在线一区二区三区| 国产精品一二三区视频| 啪一啪鲁一鲁2019在线视频| 奇米影视777在线欧美电影观看| 成人免费在线视频播放| 国产盗摄精品一区二区三区在线| 在线看的片片片免费| 欧美日高清视频| av在线电影免费观看| 国产精品久久av| 欧美综合另类| 999久久久精品视频| 亚洲欧洲成人精品av97| 97av免费视频| 久久天堂av综合合色| 91成人抖音| 亚洲欧洲在线一区| 久久精品国产亚洲a| 日本高清不卡免费| 欧美一区二区三区性视频| 亚洲丝袜精品| 国产精品10p综合二区| 亚洲国产网站| 国产吞精囗交久久久| 在线看国产一区二区| 中文字幕在线免费| 91久久精品国产91久久| 欧美日本一区| 污片免费在线观看| 在线观看日韩国产| 欧美69xxx| 国产成人免费观看| 国产日韩亚洲| 天堂资源在线视频| 欧美一区二区黄色| 2021中文字幕在线| 日本在线成人一区二区| 精一区二区三区| 国产在线视频第一页| 亚洲欧美另类在线观看| 国产一区高清| 日韩免费在线观看av| 97se亚洲国产综合自在线| 中文字幕乱码在线观看| 欧美精品一区二区三区国产精品| 免费萌白酱国产一区二区三区| 欧美丰满熟妇xxxxx| 亚洲六月丁香色婷婷综合久久| 日本xxxx人| 国产精品第二页| 欧美精品一区二区三区久久久竹菊| 免费a在线观看播放| 欧美日韩中文字幕精品| 92久久精品| 亚洲人一区二区| 91丨porny丨国产| 国产精品美女一区| 18一19gay欧美视频网站| 欧美a级片视频| 亚洲色图14p| 欧美一级久久久久久久大片| 日韩精品99| 国产精品国三级国产av| 国产蜜臀97一区二区三区| 韩国av电影在线观看| 国产精品爽爽ⅴa在线观看| 国精品一区二区三区| 黄色av免费播放| 亚洲国产女人aaa毛片在线|