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