調(diào)試器可以說是嵌入式軟件工程師最重要的工具之一。調(diào)試器不僅能夠在微控制器上加載固件,還可以窺探內(nèi)存和寄存器的深度,揭示其內(nèi)部工作原理。盡管調(diào)試器很重要,但許多嵌入式開發(fā)人員忽略了調(diào)試器的一些最有用的功能,而只是簡單地了解調(diào)試器可以真正完成什么。
許多開發(fā)人員認(rèn)為所有調(diào)試器都是平等的,這導(dǎo)致許多開發(fā)人員選擇了金錢可以買到的最便宜的調(diào)試器。工程師會在示波器和其他工具上花費(fèi)數(shù)千美元,但一旦出現(xiàn)調(diào)試器,一百美元就太高了。選擇的調(diào)試器是免費(fèi)的、功能受限的版本,附帶低成本的開發(fā)工具包。專業(yè)的調(diào)試器可以為開發(fā)人員做更多的事情,而不僅僅是加載代碼。
首先,一個好的調(diào)試器可以減少開發(fā)時間。考慮到許多低成本調(diào)試器對可用于與目標(biāo)處理器通信的時鐘頻率進(jìn)行限制的事實(shí)。時鐘速度似乎是一個小細(xì)節(jié),但要考慮在開發(fā)周期中固件被修改和重新加載到系統(tǒng)的次數(shù)。總時間加起來可能不會達(dá)到一個可能認(rèn)為重要的數(shù)字,但還要考慮應(yīng)用程序運(yùn)行時系統(tǒng)的響應(yīng)能力。寶貴的時間一去不復(fù)返。
調(diào)試器的另一個未被充分利用的特性是具有兩個以上斷點(diǎn)的能力。許多使用低級工具的嵌入式開發(fā)人員花費(fèi)了太多時間來啟用和禁用斷點(diǎn)。調(diào)試一個普通的錯誤通常感覺至少需要五個斷點(diǎn),但工程師必須設(shè)置它們,啟用兩個斷點(diǎn),然后禁用一個斷點(diǎn),而不是設(shè)置這些斷點(diǎn)并深入研究問題。被啟用。在一個項(xiàng)目的過程中,人們可能想知道為了節(jié)省 500 美元而浪費(fèi)了多少美元和分鐘。
許多現(xiàn)代調(diào)試器開始添加到他們的工具庫中的最酷的功能之一是能夠監(jiān)控微控制器或嵌入式系統(tǒng)的能源使用情況。制造商正在添加工具,通過包括可以對外部分流器進(jìn)行采樣的模擬到數(shù)字通道來幫助最大限度地減少能源使用。在記錄應(yīng)用程序計數(shù)器的同時執(zhí)行分流器的測量,從而為開發(fā)人員提供與當(dāng)時正在執(zhí)行的功能或程序語句相關(guān)的能量曲線。然后,開發(fā)人員可以專注于固件中的這些區(qū)域以進(jìn)行能源優(yōu)化。
調(diào)試器還可用于在應(yīng)用程序代碼執(zhí)行時記錄和導(dǎo)出應(yīng)用程序符號。調(diào)試器能夠記錄存儲在內(nèi)存中的值以供以后檢查,如果需要,它們可以實(shí)時繪制。結(jié)果是嵌入式開發(fā)人員可以創(chuàng)建系統(tǒng)響應(yīng)和行為方式的可視化表示。繪制應(yīng)用程序內(nèi)部行為的能力對于發(fā)現(xiàn)錯誤或簡單地驗(yàn)證系統(tǒng)操作至關(guān)重要。
一些調(diào)試器甚至可以執(zhí)行其標(biāo)準(zhǔn)調(diào)試功能,同時為第三方軟件提供一個接口來嗅探或控制調(diào)試器。開發(fā)人員可能有他們感興趣的特定信息,他們有興趣觀察或監(jiān)視這些信息,但 IDE 與調(diào)試器的接口不支持這些信息。軟件開發(fā)工具包 (SDK) 適用于許多專業(yè)調(diào)試器,允許工程師定制和開發(fā)他們自己的軟件工具,然后可用于自動化和/或測試他們的嵌入式系統(tǒng)。
不幸的是,許多開發(fā)人員從未體驗(yàn)過這些功能可以幫助他們開發(fā)嵌入式系統(tǒng)的速度和便利性。嵌入式開發(fā)人員陷入了與兩個斷點(diǎn)和最少功能的斗爭中。最強(qiáng)大和最昂貴的調(diào)試器所花費(fèi)的費(fèi)用不會超過一名高級工程師一天的開銷。那么,當(dāng)強(qiáng)大的工具如此近在咫尺時,工程師為什么要用最少的功能來折磨自己呢?