當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]嵌入式系統(tǒng)開發(fā)過程實際上就是一個調(diào)試診斷的過程,而且調(diào)試診斷將一直伴隨著一個產(chǎn)品的終身,即使是最成熟的產(chǎn)品也偶爾會出現(xiàn)這樣或那樣的問題,這都需要開發(fā)人員去診斷、排查。

嵌入式系統(tǒng)開發(fā)過程實際上就是一個調(diào)試診斷的過程,而且調(diào)試診斷將一直伴隨著一個產(chǎn)品的終身,即使是最成熟的產(chǎn)品也偶爾會出現(xiàn)這樣或那樣的問題,這都需要開發(fā)人員去診斷、排查。

從只有幾千字節(jié)存儲空間的簡單 8 位控制器,到現(xiàn)在先進的 32 位控制器,雖然微控制器經(jīng)歷了諸多演變,但是許多開發(fā)人員仍在使用老舊的工具,拖慢了開發(fā)周期。

設(shè)計人員若要適應(yīng)當(dāng)今快速發(fā)展且復(fù)雜多變的開發(fā)環(huán)境,則需要確保擁有合適的工具才能應(yīng)對。他們需要嵌入式工具,以便監(jiān)視芯片并查看其軟件是否按照預(yù)期方式運行;他們還需要可指出錯誤或優(yōu)化代碼規(guī)模的工具,以降低其 BOM 成本。

現(xiàn)在有許多工具可以幫助他們降低整體開發(fā)成本,加快調(diào)試過程,從而縮短上市時間。本文將介紹一些這樣的工具,然后說明如何通過它們獲得最大收益。

利用專業(yè)調(diào)試器節(jié)省時間和金錢

開發(fā)人員編寫的軟件程序第一次試運行就正常工作非常少見。因此軟件開發(fā)需要調(diào)試,所以對于軟件開發(fā)人員來說,最重要的工具就是調(diào)試器。利用調(diào)試器,開發(fā)人員可以將應(yīng)用程序加載到目標微控制器上,逐步檢查代碼,查看存儲器和其他寄存器,并操縱硬件。

問題是,許多專業(yè)開發(fā)人員通常使用的調(diào)試器是其低成本開發(fā)板所附帶的。這些調(diào)試器方便、便宜,而且在演示時表現(xiàn)完美。但是,在開發(fā)專業(yè)軟件時,可能會出現(xiàn)以下限制:

斷點有限

時鐘速率降低

缺乏跟蹤功能

功能極少

換言之,有時真是一分錢一分貨:附送的簡化工具集可能不是快速有效地開發(fā)和調(diào)試軟件的最佳方式。

專業(yè)級調(diào)試器具有許多功能,可提高工程師的生產(chǎn)力,例如無限制的斷點。許多調(diào)試器只能使用微控制器的內(nèi)部比較器來設(shè)置斷點,而在大多數(shù)情況下只有兩個可用。在有數(shù)萬行代碼的復(fù)雜程序中,只有兩個可用的斷點可能會導(dǎo)致開發(fā)人員把時間浪費斷點切換上,也可能會導(dǎo)致開發(fā)人員錯過軟件中的關(guān)鍵點,從而錯過潛伏的漏洞。這樣一來,可能會導(dǎo)致編碼時間更長,反而增加了開發(fā)成本并影響了上市時間。

專業(yè)級調(diào)試器提供的算法不僅可以使用硬件斷點,還可以使用軟件和閃存斷點,為開發(fā)人員提供了更多的靈活性,而且用來評估代碼的斷點數(shù)量幾無限制。

當(dāng)然專業(yè)級調(diào)試器不便宜。它們的價格可以輕松標到幾百到幾千美元。但它們?yōu)殚_發(fā)人員帶來了不可計算的投資回報,并能使用多年,無需升級或更換。選擇調(diào)試器時,開發(fā)人員應(yīng)該問自己幾個問題:

調(diào)試器的斷點數(shù)是否無限制?

這是一款可以與幾乎所有工具鏈和微控制器配合使用的第三方調(diào)試器嗎?

五年后這個調(diào)試器還能使用嗎?

這個調(diào)試器有很好的生態(tài)系統(tǒng)嗎?

調(diào)試器的能力可以擴展嗎?

因為符合上述標準而變得非常受歡迎的一款第三方調(diào)試器是 Segger J-Link。根據(jù)開發(fā)人員的需求,Segger J-Link 可提供不同的版本。其中包括 J-Link Base Unit、J-Link Plus、J-Link Ultra Plus 和 J-Link Trace(圖 1)。

 

 

Segger J-Link 調(diào)試器型號比較圖片

圖 1:Segger J-Link 調(diào)試器型號比較。(:Segger)

使用調(diào)試器跟蹤和分支檢測來揪出潛藏的錯誤

高級調(diào)試器(通常也是最昂貴的)配備 ETM 跟蹤連接器,可以獲得大量跟蹤數(shù)據(jù),這是使用 JTAG 或 SWD 的標準跟蹤無法實現(xiàn)的。

使用高級跟蹤功能,開發(fā)人員可以將調(diào)試器與商業(yè)工具鏈(如適用于 ARM 的 Keil MDK-PRO)連用,來監(jiān)視系統(tǒng)中的每一行代碼在測試期間是否得到執(zhí)行。如下例所示,針對 ARM 的 Keil MDK-PRO 與跟蹤調(diào)試器一并運行,檢測到了那些代碼行在測試期間得到執(zhí)行(圖 2)。這種跟蹤對于需要 100% 測試覆蓋的安全關(guān)鍵型系統(tǒng)非常有用。在未測試代碼之處,可能會潛藏錯誤并在以后導(dǎo)致問題。

在調(diào)試模式下運行的用于 ARM 的 Keil MDK-PRO 圖片

圖 2:在調(diào)試模式下運行并對軟件執(zhí)行分支分析的用于 ARM 的 Keil MDK-PRO。左側(cè)的綠色塊表示在測試期間得到執(zhí)行的代碼行。(圖片:Keil)

如果開發(fā)人員不想購買成熟的跟蹤工具,則可以使用 SWD 進行跟蹤。在這種情況下,開發(fā)人員可以選擇使用如 Segger 的 SystemView 或 Percepio 的 Tracelyzer 之類軟件工具將跟蹤信息流傳輸?shù)皆?PC 上執(zhí)行的應(yīng)用程序。這些跟蹤系統(tǒng)通常在 RTOS 中工作,并且需要幾行代碼來設(shè)置跟蹤任務(wù)、捕獲數(shù)據(jù)并將其發(fā)送到調(diào)試器,然后再發(fā)送到 PC 上。

顯示軟件跟蹤的輸出示例(圖 3)。開發(fā)人員可以使用這些工具來檢測諸如優(yōu)先級轉(zhuǎn)換、死鎖、線程饑餓以及許多在復(fù)雜系統(tǒng)中可能遇到的其他問題。每個任務(wù)都有一條生命線,顯示其何時就緒、何時執(zhí)行、何時完成,以及在此期間可能發(fā)生的任何事件,例如發(fā)出和接收信號。

專業(yè)開發(fā)人員需要這樣的細節(jié),同樣地,也要求他們使用的調(diào)試工具能夠檢索這類信息。

Percepio 的 Tracealyzer 圖片

圖 3:使用如 Percepio 的 Tracealyzer 之類工具檢查軟件操作,并查看執(zhí)行時間和時間長短。(圖片:Digi-Key)

最大限度利用調(diào)試器的技巧與竅門

調(diào)試工具有很多功能,但有時可能受限于為應(yīng)用選擇的微控制器。開發(fā)人員需要了解其調(diào)試器的功能,并要將其與微控制器正確配對?,F(xiàn)今的許多調(diào)試器都可與 ARM? Cortex?-M 微控制器配合使用,開發(fā)人員在調(diào)試這些系統(tǒng)時應(yīng)考慮以下幾個因素:

避免通過 UART 進行 printf。而應(yīng)使用 ITM 端口來獲得更好的性能

不要逐條查看代碼,使用高級斷點來提高調(diào)試效率

選擇一個通過服務(wù)器控制的調(diào)試器,以便為多個應(yīng)用提供調(diào)試數(shù)據(jù),即自定義分析儀、跟蹤、調(diào)試環(huán)境等等。

調(diào)整調(diào)試器使用的默認時鐘速率,因該速率通常比最大值慢得多

在開發(fā)周期的早期階段設(shè)置跟蹤,以建立比較基準

使 SWO 能夠從系統(tǒng)獲取更多信息

在硬件、軟件和閃存斷點之間進行選擇性選擇,以最小化實時性能影響

使用這些技巧可以幫助開發(fā)人員從調(diào)試器及其調(diào)試會話中獲取更多信息。

使用商業(yè)編譯器降低成本

GCC 是一款極受歡迎且大獲成功的編譯器。它與商業(yè)工具相比有一個優(yōu)點就是免費!免費并不意味著編譯器的質(zhì)量和輸出將產(chǎn)生與商業(yè)工具同等的可執(zhí)行代碼。事實上,在許多情況下,將 GCC 與商業(yè)編譯器(如用于 ARM 的 Keil MDK-PRO 或 IAR Embedded Workbench)進行比較,得出的結(jié)果是,GCC 使用的代碼規(guī)模更大,占用的 RAM 空間更多。Renesas 甚至在他們的 Synergy 平臺規(guī)格書中顯示了這一點(圖 4)。

在圖中,Renesas 使用 EEMBC CoreMark? 對其編譯器進行了基準測試,顯示了 IAR 編譯的代碼比 GCC 編譯的代碼更快。

基準測試還顯示,使用商業(yè)級編譯器可以顯著減少代碼規(guī)模。乍一看,開發(fā)人員可能會認為購買諸如用于 ARM 的 Keil MDK-PRO 之類工具不值得投資,而應(yīng)該使用 GCC。但是,當(dāng)開發(fā)人員使用包含 128 KB 代碼空間的微控制器(如 NXP MK20DX128)并發(fā)現(xiàn)使用 GCC 應(yīng)用程序需要 132 KB 時,會發(fā)生什么?

若發(fā)生這種情況,開發(fā)團隊就被迫要尋找一個具有足夠內(nèi)存但卻更為昂貴的引腳兼容器件,如 NXP MKD20DX256。如果該公司只能生產(chǎn)適量的產(chǎn)品,那么每年花在 MCU 上的成本可能會超過最初投資于商業(yè)編譯器上的成本。

使用商業(yè)編譯器也有其他優(yōu)勢,有助于降低成本,例如:

代碼分析功能,如分支檢測

軟件復(fù)雜性測量

高效生成代碼

卓越的調(diào)試工具和功能

技術(shù)支持

集成到驅(qū)動程序庫和框架

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉