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

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

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

調(diào)試Cortex-M MCU的5個(gè)小點(diǎn)介紹

PCB線路板打樣 ? 來源:LONG ? 2019-08-07 10:26 ? 次閱讀

調(diào)試嵌入式軟件是我最不喜歡的活動(dòng),但不幸的是它是一個(gè)必要的惡魔。值得慶幸的是,技術(shù)和工具鏈創(chuàng)新的進(jìn)步帶來了大量技術(shù),可以大大加快調(diào)試過程。讓我們來看看其中的一些,從傳統(tǒng)的斷點(diǎn)調(diào)試開始,再到更高級(jí)的儀器跟蹤技術(shù)。

1 -傳統(tǒng)的斷點(diǎn)調(diào)試

每個(gè)開發(fā)人員都熟悉傳統(tǒng)的調(diào)試技術(shù),即設(shè)置斷點(diǎn),執(zhí)行代碼,然后在監(jiān)視寄存器和變量值的同時(shí)逐步執(zhí)行代碼。斷點(diǎn)調(diào)試是一種我認(rèn)為比其他技術(shù)更常用的技術(shù)。然而,這令人沮喪,因?yàn)閿帱c(diǎn)調(diào)試效率低下并且通常會(huì)產(chǎn)生次優(yōu)結(jié)果。

那么,為什么經(jīng)常使用斷點(diǎn)呢?主要原因似乎是因?yàn)閿帱c(diǎn)易于使用,易于訪問,開發(fā)人員樂觀地認(rèn)為斷點(diǎn)是工作的正確工具。樂觀主義需要磨練。斷點(diǎn)有可能破壞系統(tǒng)的實(shí)時(shí)性能,并且可能會(huì)讓開發(fā)人員陷入無休止的單一步驟,盲目地尋找解決問題的方法。

2 -IDE值繪制

現(xiàn)在幾乎所有現(xiàn)代調(diào)試器和IDE都允許開發(fā)人員監(jiān)視存儲(chǔ)在內(nèi)存位置中的值,例如變量。開發(fā)人員選擇內(nèi)存位置和值刷新率,然后啟動(dòng)調(diào)試會(huì)話。某些IDE能夠監(jiān)視IDE內(nèi)置的值,而其他IDE則依賴于使用外部軟件。

值監(jiān)控非常有用,但如果被監(jiān)控的數(shù)據(jù)與圖形表示相關(guān)聯(lián),那么它就更有價(jià)值。實(shí)時(shí)繪制數(shù)據(jù)值對(duì)于發(fā)現(xiàn)意外更改或驗(yàn)證是否生成特定波形非常有用。以三相BLDC電機(jī)為例。開發(fā)人員可能希望監(jiān)控每個(gè)電機(jī)支路上的電流和電壓,這需要生成非常特定的波形以驅(qū)動(dòng)電機(jī)。繪制每個(gè)電機(jī)支路上的電壓和電流可以使開發(fā)人員實(shí)時(shí)查看正在發(fā)生的情況。

3 -重新啟動(dòng) printf 到SWO

在更高端的ARM Cortex-M部件上,例如M3/M4,為開發(fā)人員提供了額外的調(diào)試功能,稱為串行線查看器(SWV)。除串行線輸出(SWO)外,SWV還包括標(biāo)準(zhǔn)串行線調(diào)試器。 SWO可用于執(zhí)行非??岬牟僮?,例如檢索程序計(jì)數(shù)器,事件計(jì)數(shù)器和跟蹤數(shù)據(jù)等等。開發(fā)人員可以自定義他們希望通過SWO傳輸?shù)?a target="_blank">信息

許多開發(fā)人員設(shè)置 printf 以從其嵌入式系統(tǒng)獲取調(diào)試信息。開發(fā)人員可以使用SWO通過調(diào)試器重新路由 printf 信息,而不是在微控制器上使用串行引腳。以這種方式使用調(diào)試器可以節(jié)省對(duì)專用串行接口的需求,消除UARTUSB設(shè)備的開發(fā)時(shí)間,并且效率更高。最初在應(yīng)用程序中使用的開銷現(xiàn)在通過SWO和調(diào)試硬件卸載,這節(jié)省了應(yīng)用程序代碼本來使用的寶貴時(shí)鐘周期。

4 -RTOS跟蹤

嘗試透過RTOS所做的面紗可能非常具有挑戰(zhàn)性。開發(fā)人員不希望干擾實(shí)時(shí)系統(tǒng)性能,但仍需要一些方法來理解系統(tǒng)的行為。 Blinky LED通常是最常用的技巧,但最近的跟蹤工具為開發(fā)人員的工具箱添加了一項(xiàng)驚人的技術(shù)。存在免費(fèi)和商用的RTOS跟蹤工具,例如TraceX,SystemView和Tracealyzer等。

跟蹤工具允許開發(fā)人員分析RTOS何時(shí)空閑以及何時(shí)進(jìn)入和退出每個(gè)任務(wù)。開發(fā)人員可以監(jiān)視系統(tǒng)異常,響應(yīng)時(shí)間,執(zhí)行時(shí)間以及正確開發(fā)嵌入式系統(tǒng)所需的許多其他關(guān)鍵細(xì)節(jié)。 RTOS跟蹤工具中最酷的功能是能夠繪制系統(tǒng)中發(fā)生的情況。實(shí)時(shí)或在記錄的日志中查看和監(jiān)視時(shí)序圖可以幫助開發(fā)人員獲得系統(tǒng)按預(yù)期工作的置信度,或幫助他們發(fā)現(xiàn)本來需要花費(fèi)大量時(shí)間才能發(fā)現(xiàn)的小問題。

5 -使用指令跟蹤技術(shù)(ETM/ETB/ETM)

有時(shí)開發(fā)人員面臨調(diào)試問題,這些問題處于可以想到的最低級(jí)別處理器。存在可以監(jiān)視處理器執(zhí)行的各個(gè)指令的跟蹤技術(shù)。在測試和驗(yàn)證軟件時(shí),這種低級(jí)別跟蹤可用于監(jiān)視分支覆蓋。用于指令跟蹤的調(diào)試器工具與開發(fā)人員用于串行線查看的工具不同,通常會(huì)花費(fèi)更多。

結(jié)束思路

過去幾年,調(diào)試工具和技術(shù)發(fā)展迅速,特別是對(duì)于高端微控制器。一般來說,工程師是視覺生物,工具供應(yīng)商正在尋找方法以視覺刺激的方式揭示實(shí)時(shí)系統(tǒng)中究竟發(fā)生了什么。設(shè)置調(diào)試工具可能需要一些前期時(shí)間,但是花費(fèi)更少的時(shí)間進(jìn)行調(diào)試和更多時(shí)間設(shè)計(jì)的潛力值得投入時(shí)間。開發(fā)人員至少應(yīng)熟悉可用的不同調(diào)試工具和功能,以便在出現(xiàn)問題并需要調(diào)試系統(tǒng)時(shí),他們可以選擇合適的工具來完成工作。您使用的其他技術(shù)是什么幫助工程師更快,更有效地調(diào)試他們的系統(tǒng)?

聲明:本文內(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)投訴
  • PCB打樣
    +關(guān)注

    關(guān)注

    17

    文章

    2968

    瀏覽量

    21758
  • 華強(qiáng)PCB
    +關(guān)注

    關(guān)注

    8

    文章

    1831

    瀏覽量

    27844
  • 華強(qiáng)pcb線路板打樣

    關(guān)注

    5

    文章

    14629

    瀏覽量

    43108
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    為什么說Cortex-M是低功耗應(yīng)用的首選

    雖然Cortex-M處理器家族目標(biāo)瞄準(zhǔn)效能光譜較低端的區(qū)域,但是和大多數(shù)微控制器(MCU)采用的其他典型處理器相比,Cortex-M的效能依然算相當(dāng)強(qiáng)悍。舉例來說,像是許多高效能微控制器所采用的
    發(fā)表于 07-28 09:44 ?3500次閱讀
    為什么說<b class='flag-5'>Cortex-M</b>是低功耗應(yīng)用的首選

    如何使用Ozone分析Cortex-M異常

    Ozone可以幫助用戶快速分析和查找導(dǎo)致CPU故障的軟件bug。本文解釋如何使用Ozone的調(diào)試功能,深入了解Cortex-M架構(gòu)上的這些錯(cuò)誤。
    的頭像 發(fā)表于 11-29 11:14 ?830次閱讀
    如何使用Ozone分析<b class='flag-5'>Cortex-M</b>異常

    ARM Cortex-M堆棧機(jī)制介紹

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是ARM Cortex-M堆棧機(jī)制?! 〗裉旖o大家分享的這篇依舊是2016年之前痞子衡寫的技術(shù)文檔,花了點(diǎn)時(shí)間重新編排了一下
    發(fā)表于 12-16 06:26

    ARM Cortex-M之KEIL MDK調(diào)試技術(shù)簡介

    1、KEIL MDK調(diào)試技術(shù)簡介先看一個(gè)總視圖相信大家都是有基礎(chǔ)滴,最基本的東西我就不廢話了,很多初級(jí)選手做ARM Cortex-M調(diào)試基本都停留再使用上圖
    發(fā)表于 05-07 16:29

    介紹易于使用的Arm Cortex-M處理器上的信號(hào)處理功能

    Cortex-M4,Cortex-M7,Cortex -M33或Cortex-M35P處理器,以取代MC
    發(fā)表于 07-29 14:48

    5V供電Cortex-M微控制器

    5V供電Cortex-M微控制器 傳統(tǒng)的微控制器(單片機(jī))是5V供電系統(tǒng),要想使用Cortex-M架構(gòu)的微控制器替換這些傳統(tǒng)器件,那最好是有5
    發(fā)表于 11-25 02:22 ?777次閱讀

    傳統(tǒng)的單片機(jī)和ARM較量 助推MCU踏上高端Cortex-M市場

    據(jù)有關(guān)市場調(diào)研機(jī)構(gòu)稱,基于ARM Cortex-M內(nèi)核的MCU在2010年創(chuàng)紀(jì)錄地實(shí)現(xiàn)了100%的出貨量增長。而整個(gè)MCU市場才增長了37%。MCU市場的增長也幾乎是來自于ARM
    發(fā)表于 04-28 10:00 ?1630次閱讀

    Atmel Studio 6軟件中如何調(diào)試ARM Cortex-M

    Atmel Studio 6軟件中如何調(diào)試ARM Cortex-M
    的頭像 發(fā)表于 07-04 10:49 ?4261次閱讀

    關(guān)于Cortex-M 調(diào)試應(yīng)用的介紹

    Cortex-M 調(diào)試應(yīng)用
    的頭像 發(fā)表于 07-10 00:56 ?2635次閱讀

    米爾科技Cortex-M Prototyping System +介紹

    ARM? Cortex?-M原型系統(tǒng) MPS2+,為Cortex-M 系列微處理器設(shè)計(jì)的原型驗(yàn)證評(píng)估系統(tǒng),包含最新的Cortex-M7 及Corte
    的頭像 發(fā)表于 11-14 10:45 ?1962次閱讀
    米爾科技<b class='flag-5'>Cortex-M</b> Prototyping System +<b class='flag-5'>介紹</b>

    加速Cortex-M MCU調(diào)試的五個(gè)技巧資料下載

    電子發(fā)燒友網(wǎng)為你提供加速Cortex-M MCU調(diào)試的五個(gè)技巧資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希
    發(fā)表于 04-24 08:45 ?5次下載
    加速<b class='flag-5'>Cortex-M</b> <b class='flag-5'>MCU</b><b class='flag-5'>調(diào)試</b>的五<b class='flag-5'>個(gè)</b>技巧資料下載

    mcookie與單片機(jī)的關(guān)系_使用ARM Cortex-M MCU拓展單片機(jī)教學(xué)

    mcookie與單片機(jī)的關(guān)系_使用ARM Cortex-M MCU拓展單片機(jī)教學(xué)
    發(fā)表于 11-30 19:36 ?9次下載
    mcookie與單片機(jī)的關(guān)系_使用ARM <b class='flag-5'>Cortex-M</b> <b class='flag-5'>MCU</b>拓展單片機(jī)教學(xué)

    一點(diǎn)理解之 CmBacktrace: ARM Cortex-M 系列 MCU 錯(cuò)誤追蹤庫

    一點(diǎn)理解之 CmBacktrace: ARM Cortex-M 系列 MCU 錯(cuò)誤追蹤庫
    發(fā)表于 11-30 19:51 ?10次下載
    一點(diǎn)理解之 CmBacktrace: ARM <b class='flag-5'>Cortex-M</b> 系列 <b class='flag-5'>MCU</b> 錯(cuò)誤追蹤庫

    基于32位Arm Cortex-M內(nèi)核N32系列MCU應(yīng)用

    國民技術(shù)N32系列MCU產(chǎn)品基于32位Arm Cortex-M內(nèi)核,內(nèi)置嵌入式高速閃存、低功耗電源管理,集成數(shù)?;旌想娐?,并內(nèi)置硬件密碼算法加速引擎以及安全單元。
    發(fā)表于 03-28 11:35 ?953次閱讀

    瑞薩Cortex-M內(nèi)核RA MCU的RT-Thread BSP制作教程發(fā)布

    瑞薩Cortex-M內(nèi)核RA MCU的RT-Thread BSP制作教程發(fā)布
    的頭像 發(fā)表于 09-18 10:58 ?732次閱讀
    瑞薩<b class='flag-5'>Cortex-M</b>內(nèi)核RA <b class='flag-5'>MCU</b>的RT-Thread BSP制作教程發(fā)布