原文:learn to debug real-time embedded software嵌入式軟體開發人員面臨的最大的挑戰就是除錯軟體。嵌入式系統現在變得非常複雜,上面執行著實時作業系統、連線棧、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。它們這種能夠形象化展示嵌入式系統如何工作,以及獲取資訊的能力,比如任務執行時間最小值、平均值、最大值,是前所未有的。我們將會探索這些工具如何工作,以及開發人員如何使用這些技術獲得最大效益。
除錯嵌入式系統是設計週期中不可或缺的環節,即使有細心的設計和實現。了解如何快速高效地除錯系統,可以節省開發成本,縮短產品上市時間。你使用什麼技術來除錯嵌入式系統呢?
嵌入式軟體學習記錄
資料型別 int char short long float double x86編譯器中char 1個位元組 int 2個或4個位元組 long 4個或8個位元組 short 2個位元組 float 4個位元組 double 8個位元組 如 char為1byte 8bit,即28 256,儲存最大...
嵌入式gdb gdbserver除錯
在很多情況下,需要對應用程式進行除錯。在 linux 下除錯程式,常用的工具是 gdb。由於嵌入式單板的資源有限,一般不直接在目標機上執行 gdb 進行除錯,而是採取 gdb gdbserver 的方式。gdbserver 在目標機中執行,gdb 則在宿主機上執行。根檔案系 統中已經包含 gdbse...
嵌入式除錯技術
嵌入式除錯方法 1.模擬器。比如qtopia core可以用奇趣提供的frame buffer模擬工具qvfb,arm硬體模擬可以用skyeye開源專案。2.遠端除錯。偵錯程式還在pc上,偵錯程式與被除錯的程式通過網路通訊。3.通過log和core dump等檔案事後分析。stdprm標準印表機lp...