學習除錯實時嵌入式軟體

周建丁發表於2016-07-11

原文: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,以及如何快速地將它部署到嵌入式系統中。這些設定將作為各種開發技術的基礎和基本框架。

在進入高階主題之前,我們將測驗傳統的技術,比如使用printfassert。開發者通常會將printf運用到MCU外圍裝置UART上,如果不小心處理的話,系統的實時效能可能會受到影響。我們將研究如何減少printf對實時效能的影響,以及使用內建核心功能來將此影響降至最低。

除錯嵌入式系統有時需要你非常瞭解處理器,尤其是晶片中的故障。我們將會深入瞭解ARM Cortex-My的異常以及除錯軟體時可用的除錯模組及硬體。這些硬體包括序列線除錯(SWD)和序列線輸出(SWO),它們已經是不可或缺的了。

這門課程最精彩的部分無疑是實時跟蹤工具的設定和實驗,比如System Viewer和Tracealyzer。它們這種能夠形象化展示嵌入式系統如何工作,以及獲取資訊的能力,比如任務執行時間最小值、平均值、最大值,是前所未有的。我們將會探索這些工具如何工作,以及開發人員如何使用這些技術獲得最大效益。

除錯嵌入式系統是設計週期中不可或缺的環節,即使有細心的設計和實現。瞭解如何快速高效地除錯系統,可以節省開發成本,縮短產品上市時間。你使用什麼技術來除錯嵌入式系統呢?

在DesignNews.com上註冊Jacob的“除錯實時嵌入式系統”DesignNews CEC 課程,包括向作者提問。如果你不能參加線上課程,你可以在後期的引用中進行學習。

相關文章