一個(gè)典型的開發(fā)人員平均花費(fèi)大約 40% 的時(shí)間來調(diào)試軟件。隨著嵌入式開發(fā)人員努力應(yīng)對(duì)系統(tǒng)復(fù)雜性并試圖了解各種軟件組件在其系統(tǒng)中的交互方式,這可能會(huì)導(dǎo)致成本和上市時(shí)間增加。這里介紹幾種工具,它們不僅有助于了解軟件,還有助于降低成本和上市時(shí)間,讓我們來看看其中的幾個(gè)工具:
工具 #1 — 啟用跟蹤的調(diào)試器
無論是 ARM Keil ULINKplus 還是 j-Trace,這些工具都為開發(fā)人員提供了訪問流跟蹤功能和嵌入式目標(biāo)內(nèi)存的能力。這些高端調(diào)試器可以連接到幾種不同的可視化工具,這些工具可以讓開發(fā)人員深入了解他們的系統(tǒng)是如何運(yùn)行的。雖然使用這些可視化工具可能并不總是需要高端工具,但它們的次要功能(例如無限斷點(diǎn)、備用 GPIO 引腳,甚至能量監(jiān)控)可能是必不可少的。
工具 #2 – Micrium μC 探針
Micrium 的 μC Probe 可用于嵌入式應(yīng)用程序中變量和數(shù)據(jù)的實(shí)時(shí)可視化。開發(fā)人員能夠自定義構(gòu)建最適合他們需要的用戶界面,以監(jiān)控系統(tǒng)的運(yùn)行情況。μC Probe 幾乎可以在調(diào)試器能夠同時(shí)訪問微控制器內(nèi)存的任何嵌入式系統(tǒng)上使用。如果開發(fā)人員使用 J-Link 或 j-Trace,此功能使該工具能夠以非侵入方式讀取內(nèi)存,幾乎沒有開銷。
工具 #3 – Percepio Tracealyzer
使用 Percepio Tracealyzer 可以跟蹤嵌入式應(yīng)用程序并可視化它的行為方式。Tracealyzer 可以集成到基于 RTOS 的應(yīng)用程序中,以記錄應(yīng)用程序中發(fā)生的事件,例如任務(wù)上下文切換、中斷、互斥鎖和解鎖,以及發(fā)生的許多其他事件。這些事件可以在代碼中圍繞特定問題區(qū)域以單次方式記錄,也可以實(shí)時(shí)流式傳輸并查看到主機(jī)。跟蹤記錄后,嵌入式開發(fā)人員可以使用 30 多個(gè)視圖來查看程序執(zhí)行、任務(wù)和事件時(shí)間、通信流以及應(yīng)用程序的許多其他方面。
工具 #4 – SEGGER 系統(tǒng)視圖
SEGGER System View 是另一個(gè)跟蹤可視化工具,可用于查看應(yīng)用程序在做什么。System View 記錄 RTOS 事件并顯示一些有用的信息,例如任務(wù)時(shí)序、任務(wù)執(zhí)行可視化和 CPU 負(fù)載。該工具僅包含四個(gè)視圖,但仍足以獲取有關(guān)應(yīng)用程序行為方式的有用信息,這對(duì)于免費(fèi)工具來說非常有用。
工具 #5 – SEGGER Ozone
對(duì)于有興趣確保他們的測(cè)試用例在其代碼庫(kù)中獲得 100% 覆蓋率的嵌入式軟件開發(fā)人員來說,指令跟蹤可能是一個(gè)重要的工具。開發(fā)人員可以與 J-Trace 結(jié)合使用的免費(fèi)工具是 SEGGERs Ozone。Ozone 讓開發(fā)人員可以看到他們的代碼覆蓋率有多好,同時(shí)讓他們監(jiān)控函數(shù)執(zhí)行并查看代碼中已執(zhí)行的每條指令。開發(fā)人員可以使用此工具從他們的應(yīng)用程序中收集到許多細(xì)節(jié)。
結(jié)論
如果你看不到系統(tǒng)在做什么,則很難調(diào)試和驗(yàn)證軟件。如果你能看到正在發(fā)生的事情,嵌入式開發(fā)人員可以更快地找到解決方案,最終節(jié)省時(shí)間和金錢。