預(yù)期行為和實(shí)際行為可能以多種方式不同,這些方式在源代碼中并不明顯,并且難以通過功能測試來檢測。當(dāng)應(yīng)用程序變得越來越復(fù)雜時,這對于運(yùn)行 RTOS
或 Linux 內(nèi)核的多線程嵌入式軟件的嵌入式開發(fā)人員來說是一個越來越大的挑戰(zhàn)。
遵循這五個最佳實(shí)踐,以獲得系統(tǒng)級別的實(shí)時行為所需的可見性,以提高產(chǎn)品質(zhì)量并加快開發(fā)速度。
1. 通過可視化時間線減少猜測。
運(yùn)行完整的多線程系統(tǒng)時檢測到的問題通常難以解決。幸運(yùn)的是,調(diào)試過程中更好的洞察力可以減少猜測。這樣可以更容易地找到根本原因,從而正確修復(fù)錯誤并減少調(diào)試時間??吹杰浖?zhí)行的可視化時間線的能力在許多情況下都很重要,例如當(dāng)錯誤的位置從最初的癥狀中不明顯時,當(dāng)問題難以重現(xiàn)時,以及當(dāng)傳統(tǒng)的調(diào)試工具(停止執(zhí)行)時不能使用。
printf
調(diào)試呢?在應(yīng)用程序代碼中添加調(diào)試打印的舊做法是有風(fēng)險的、侵入性的,并且無法擴(kuò)展到更復(fù)雜的應(yīng)用程序和更快的處理器。 printf
函數(shù)不是為此目的而設(shè)計(jì)的,而且通常很慢——每條消息需要幾毫秒。相比之下,視覺跟蹤診斷依賴于軟件跟蹤的優(yōu)化解決方案,并且比 printf 調(diào)用快約 100
倍,因此你可以收集更多信息而不會產(chǎn)生明顯影響。此外,數(shù)據(jù)可視化技術(shù)可以輕松地將軟件跟蹤轉(zhuǎn)化為可操作的見解。
2. 監(jiān)控系統(tǒng)測試以發(fā)現(xiàn)難以捉摸的問題。
跟蹤數(shù)據(jù)的持續(xù)實(shí)時流式傳輸使嵌入式開發(fā)人員能夠長時間記錄和可視化軟件的完整圖片,以捕捉難以重現(xiàn)和調(diào)試的難以捉摸的軟件問題。捕獲跟蹤記錄中的任何“故障”并了解導(dǎo)致它們的原因?;蛘咴诮?jīng)過數(shù)小時的壓力測試后找出系統(tǒng)崩潰的原因。
Percepio? Tracealyzer?
的可視化跟蹤診斷使你能夠查看運(yùn)行時系統(tǒng)的實(shí)時動畫視圖,在高級可視化概覽和統(tǒng)計(jì)中發(fā)現(xiàn)異常,并深入了解特定事件以準(zhǔn)確了解發(fā)生了什么。
3. 改進(jìn)軟件設(shè)計(jì)以獲得更好的產(chǎn)品和更低的成本。
一些開發(fā)項(xiàng)目會遇到“調(diào)試地獄”,這是一種常見的場景,大量的調(diào)試會阻礙項(xiàng)目。軟件設(shè)計(jì)和 RTOS
應(yīng)用程序開發(fā)中與最佳實(shí)踐的偏差通常是主要的促成因素。一些示例包括不合適的任務(wù)優(yōu)先級、軟件時序的巨大變化以及任務(wù)之間的過多依賴關(guān)系。此類問題可能會導(dǎo)致復(fù)雜和混亂的系統(tǒng)行為,可測試性差,這增加了難以捉摸的錯誤泄漏到生產(chǎn)設(shè)備中的風(fēng)險。
可視化跟蹤診斷幫助開發(fā)人員分析和改進(jìn)軟件設(shè)計(jì),確保系統(tǒng)行為穩(wěn)定可靠。當(dāng)你可以更早地發(fā)現(xiàn)軟件設(shè)計(jì)缺陷時,修復(fù)它們所需的更改更少,并且已交付產(chǎn)品中出現(xiàn)錯誤的風(fēng)險也會降低。軟件設(shè)計(jì)改進(jìn)還可以顯著提高系統(tǒng)性能和響應(yīng)能力。這可以允許嵌入式開發(fā)人員選擇更具成本效益的處理器來降低
BoM 成本,或者使用較低的時鐘頻率來延長電池壽命。
4. 驗(yàn)證整個項(xiàng)目的時間安排和產(chǎn)品性能。
盡早測量時間和性能指標(biāo),以便你可以在交付前解決任何問題。這對于具有明確時序要求的實(shí)時系統(tǒng)至關(guān)重要,對于其他應(yīng)用程序的用戶體驗(yàn)也很重要。沒有人喜歡緩慢的觸摸屏界面或緩慢的
Wi-Fi 路由器,但通常原因在源代碼中并不明顯,如果問題根源在于軟件設(shè)計(jì),更快的處理器可能無濟(jì)于事。
可視化跟蹤診斷可以輕松顯示異常原因并測量軟件時序?qū)傩?、?nèi)存使用情況和 CPU
負(fù)載。更容易滿足實(shí)時要求以及更好的應(yīng)用程序性能和客戶滿意度是眾多好處中的一部分。
5. 使診斷變得容易獲得并每天受益。
無需額外硬件,僅使用軟件集成和應(yīng)用程序的現(xiàn)有硬件即可提供可視跟蹤診斷。這樣,你可以默認(rèn)將其包含在軟件系統(tǒng)中,以便開發(fā)人員在整個開發(fā)、測試和發(fā)布過程中都可以訪問。
當(dāng)你在遇到問題時隨時提供診斷,所有嵌入式開發(fā)人員每天都可以從中受益。記錄與你的應(yīng)用程序相關(guān)的任何信息,包括運(yùn)行時未公開的內(nèi)部數(shù)據(jù)和狀態(tài)。與可視化執(zhí)行時間表并行查看所需的任何數(shù)據(jù)圖,并制作出擊敗競爭對手的出色產(chǎn)品。