學習除錯實時嵌入式軟體
原文:Learn to debug real-time embedded software
作者:Jacob Beningo
譯者:劉翔宇 審校:劉帝偉
責編:周建丁(zhoujd@csdn.net)
嵌入式軟體開發人員面臨的最大的挑戰就是除錯軟體。嵌入式系統現在變得非常複雜,上面執行著實時作業系統、連線棧、USB,以及在涉及到應用軟體之前的各種系統安全程式碼。然而我碰到的許多工程師仍然使用斷點來除錯軟體,而沒有使用現在許多現代化和先進的技術。出於這個原因,我提供了一個學習現代化除錯技術的機會。
我在DesignNews Continuing Education Center(CEC)上開設了一門學習除錯實時嵌入式軟體的課程。7月11日至15日課程免費開放,將會通過實用的方法來教開發者如何除錯實時嵌入式軟體。
為什麼要參加課程呢?閱讀除錯技術是一種體驗,但是實際運用這些技術又是一種完全不同的經歷。為了體驗這些技術可以如何被運用,課程裡將會使用一塊NXP K64F Freedom電路板,上面有一個120MHz、1MB快閃記憶體、256KB RAM的ARM Cortex-M4處理器。這塊K64F板帶有Arduino R3接頭,有著許多功能,比如乙太網、加速感測器、SB卡插槽、攝像頭擴充套件頭、板載偵錯程式、LED等。只需35美元,非常廉價,但它卻是用於除錯的利器。
這門課程開始會教學生如何設定開發包和工具鏈。因為開發包有強大的ARM M4板載處理器,課程也會快速向學生介紹FreeRTOS,以及如何快速地將它部署到嵌入式系統中。這些設定將作為各種開發技術的基礎和基本框架。
在進入高階主題之前,我們將測驗傳統的技術,比如使用printf和assert。開發者通常會將printf運用到MCU外圍裝置UART上,如果不小心處理的話,系統的實時效能可能會受到影響。我們將研究如何減少printf對實時效能的影響,以及使用內建核心功能來將此影響降至最低。
除錯嵌入式系統有時需要你非常瞭解處理器,尤其是晶片中的故障。我們將會深入瞭解ARM Cortex-My的異常以及除錯軟體時可用的除錯模組及硬體。這些硬體包括序列線除錯(SWD)和序列線輸出(SWO),它們已經是不可或缺的了。
這門課程最精彩的部分無疑是實時跟蹤工具的設定和實驗,比如System Viewer和Tracealyzer。它們這種能夠形象化展示嵌入式系統如何工作,以及獲取資訊的能力,比如任務執行時間最小值、平均值、最大值,是前所未有的。我們將會探索這些工具如何工作,以及開發人員如何使用這些技術獲得最大效益。
除錯嵌入式系統是設計週期中不可或缺的環節,即使有細心的設計和實現。瞭解如何快速高效地除錯系統,可以節省開發成本,縮短產品上市時間。你使用什麼技術來除錯嵌入式系統呢?
在DesignNews.com上註冊Jacob的“除錯實時嵌入式系統”DesignNews CEC 課程,包括向作者提問。如果你不能參加線上課程,你可以在後期的引用中進行學習。
相關文章
- 嵌入式軟體除錯常用知識點除錯
- 軟體除錯 (轉)除錯
- 除錯:案例學習除錯
- 筆記|軟體除錯的技巧筆記除錯
- Mac色彩除錯濾鏡軟體Mac除錯
- GitHub學習除錯記錄Github除錯
- 【CUDA學習】核心程式除錯除錯
- 開始學習除錯MySQL除錯MySql
- 惡搞:實時除錯JavaScript除錯JavaScript
- 對新手學習嵌入式軟體開發的基本建議薦
- 嵌入式系統除錯Uboot串列埠互動除錯除錯boot串列埠
- MacOS 下的 Laravel 除錯軟體 - TinkerwellMacLaravel除錯
- 軟體除錯斷點之小記除錯斷點
- Python 學習除錯記錄Python除錯
- 嵌入式Linux的除錯方案Linux除錯
- 軟體工程學習軟體工程
- 痞子衡嵌入式:串列埠除錯工具Jays-PyCOM誕生記(5)- 軟體優化串列埠除錯優化
- (學習)godot4.2 Android除錯GoAndroid除錯
- Android之記憶體洩漏除錯學習與總結Android記憶體除錯
- 嵌入式程式除錯與opencv影像庫除錯OpenCV
- 嵌入式Linux的除錯技術Linux除錯
- 嵌入式系統除錯診斷方法除錯
- Python學習之錯誤除錯和測試Python除錯
- 嵌入式介面學習
- 實時深度學習深度學習
- 【PWA學習與實踐】(6) 在Chrome中除錯你的PWAChrome除錯
- 【ASM學習】手工刪除ASM磁碟組時提示錯誤ORA-15039ASM
- Go Web學習(2)——實現中介軟體(middleware)GoWeb
- 學習旅途(軟體測試)
- 軟體測試整理學習
- 軟體學習之路總結
- 嵌入式軟體開發中必備軟體工具
- 學習嵌入式的開發線路,新手怎麼學習嵌入式?
- gdb除錯學習與實踐記錄 -- 常用命令解析1除錯
- PID除錯軟體(C#、模擬、模擬)除錯C#
- 物聯網學習教程—常見錯誤和程式除錯除錯
- 嵌入式軟體開發的特點、設計流程、嵌入式軟體的結構
- 【linux學習--工具篇】串列埠除錯工具Linux串列埠除錯