當(dāng)前位置:首頁 > 嵌入式 > 嵌入式分享
[導(dǎo)讀]儀器不僅應(yīng)視為調(diào)試工具,還應(yīng)將儀器視為驗證和優(yōu)化嵌入式系統(tǒng)及其環(huán)境的一種手段(例如,其內(nèi)置的設(shè)備)。它確保系統(tǒng)按預(yù)期工作。就像將測試點添加到硬件一樣,儀器應(yīng)嵌入固件中。項目越復(fù)雜,專注于測試的需求就越大。開發(fā)人員應(yīng)確保日志捕獲相關(guān)數(shù)據(jù),例如可變值,狀態(tài)和錯誤消息,以快速識別問題。解決癥狀而不了解根本原因可能導(dǎo)致反復(fù)出現(xiàn)的問題。固件模塊的儀器可以是多個項目的寶貴長期投資,因為它可以加快調(diào)試和測試。

如何以及何時添加代碼儀器

成功代碼儀器的關(guān)鍵是找到適當(dāng)?shù)钠胶?。有必要收集足夠的信息以有效,而不會顯著影響性能或代碼復(fù)雜性。

儀器不僅應(yīng)視為調(diào)試工具,還應(yīng)將儀器視為驗證和優(yōu)化嵌入式系統(tǒng)及其環(huán)境的一種手段(例如,其內(nèi)置的設(shè)備)。它確保系統(tǒng)按預(yù)期工作。就像將測試點添加到硬件一樣,儀器應(yīng)嵌入固件中。項目越復(fù)雜,專注于測試的需求就越大。開發(fā)人員應(yīng)確保日志捕獲相關(guān)數(shù)據(jù),例如可變值,狀態(tài)和錯誤消息,以快速識別問題。解決癥狀而不了解根本原因可能導(dǎo)致反復(fù)出現(xiàn)的問題。固件模塊的儀器可以是多個項目的寶貴長期投資,因為它可以加快調(diào)試和測試。

通常,代碼應(yīng)不遲于集成階段的儀器,以盡早發(fā)現(xiàn)錯誤或效率低下,并減少在最后階段的嚴(yán)重問題,重新設(shè)計和延遲的風(fēng)險。在計劃儀器時,必須確定以下內(nèi)容。

1。應(yīng)該儀器進(jìn)行儀器的哪些部分(任務(wù)/應(yīng)用程序代碼,RTO,驅(qū)動程序,異常處理程序等)以及應(yīng)記錄哪些數(shù)據(jù)和事件?在代碼部分中包括儀器可能會引起問題,因此當(dāng)問題以后發(fā)生時,當(dāng)我們不再使用調(diào)試探測器訪問嵌入式系統(tǒng)時,它將存在。

2。圓形緩沖區(qū)對記錄數(shù)據(jù)的大小(歷史的長度取決于我們可以專用于其的內(nèi)存量)?

3。應(yīng)該包裝數(shù)據(jù)以在相同數(shù)量的內(nèi)存中獲得更長或更詳細(xì)的歷史記錄嗎?

4。減少數(shù)據(jù)泛濫:實時系統(tǒng)生成大量數(shù)據(jù)。僅能激活那些對于特定類型的測試很重要的數(shù)據(jù)集很重要。否則,要么歷史記錄太短,要么由于主機帶寬不足而導(dǎo)致數(shù)據(jù)丟失。

5。如何記錄致命錯誤和系統(tǒng)異常,重置/重新啟動原因以及其他與系統(tǒng)相關(guān)的信息?

6。應(yīng)該支持哪些記錄方法?流媒體模式,將數(shù)據(jù)連續(xù)傳輸?shù)街鳈C;驗尸模式,數(shù)據(jù)覆蓋圓形緩沖區(qū)中最古老的條目;單桿模式,緩沖區(qū)線性填充直到完整為止;還是以上所有?

7。當(dāng)調(diào)試探針斷開連接時,如何將記錄的數(shù)據(jù)傳輸?shù)街鳈C?

8。開發(fā)人員是否應(yīng)該能夠通過確定捕獲哪些數(shù)據(jù)以及何時捕獲數(shù)據(jù)來控制數(shù)據(jù)記錄?鑒于圓形緩沖區(qū)的大小有限,并且數(shù)據(jù)傳輸速度有限,因此使用過濾器和觸發(fā)器捕獲特定數(shù)據(jù)是非常有益的。

9.應(yīng)該監(jiān)視哪些資源(例如,內(nèi)存池)?

結(jié)論

代碼儀器對于復(fù)雜的嵌入式系統(tǒng)非常重要,應(yīng)成為固件可靠性和可檢驗性策略設(shè)計的一部分。正確測試和有效調(diào)試的關(guān)鍵是可觀察性,系統(tǒng)影響最小。儀器的目的不僅應(yīng)該是查找錯誤,而且主要是要驗證代碼應(yīng)盡其所能,包括實時正時約束。我們必須衡量想要改進(jìn)的東西。代碼質(zhì)量和可靠性對于所有嵌入式系統(tǒng),而不僅僅是高融合系統(tǒng)都很重要。由于不經(jīng)常發(fā)生和缺乏歷史數(shù)據(jù),因此在測試或現(xiàn)場試驗期間可能會隨機駁斥難以釋放的問題,但它們經(jīng)常浮出水面,尤其是隨著系統(tǒng)部署的增加。所以,在實驗室測試期間,一旦產(chǎn)品進(jìn)入現(xiàn)場,必須提供性能歷史記錄。

該軟件生成的跟蹤不需要任何特殊的硬件,可以在實驗室和部署的產(chǎn)品中使用,例如在航空中的黑匣子。它捕獲任何數(shù)據(jù),例如本地變量,功能參數(shù)或異常轉(zhuǎn)儲,而硬件跟蹤通常僅限于控制流和全局?jǐn)?shù)據(jù),需要高速跟蹤端口和專門的調(diào)試探測器。儀器可以通過對導(dǎo)致斷點或系統(tǒng)例外的歷史的細(xì)粒度看待傳統(tǒng)調(diào)試來補充傳統(tǒng)調(diào)試。

以下文章將介紹一個新的最小侵入性和高度靈活的開源工具包,用于從資源受限到大型RTO的所有類型項目的儀器。

附錄1:當(dāng)前代碼儀器解決方案的缺點

不同的項目有不同的儀器需求。例如,由于執(zhí)行緩慢,對于一個項目而言,對另一個項目的執(zhí)行緩慢可能完全適合另一個項目,而并非所有嵌入式系統(tǒng)都具有嚴(yán)重的內(nèi)存限制。使用最簡單的方法獲得所需的測試結(jié)果很重要。隨著項目變得更加復(fù)雜和實時要求,測試問題和工具要求也會增加。

這篇評論是針對對現(xiàn)有解決方案局限性感興趣的人。儀器方法在功能和資源使用方面差異很大,每種方法都有不同程度的缺點。此說明適用于在將其發(fā)送到主機之前在RAM中緩沖數(shù)據(jù)的解決方案。 printf()方法很簡單,但通常非誘因,緩慢且內(nèi)存密集型(使用大量程序內(nèi)存和堆??臻g)。即使是有限的功能版本的printf()也需要字符串和高帶寬的內(nèi)存,以將數(shù)據(jù)傳輸?shù)街鳈C。更好的解決方案與printf字符串記錄應(yīng)用程序數(shù)據(jù),并脫機地將它們解碼。但是,將字符串復(fù)制到圓形緩沖區(qū)會添加CPU開銷,并消耗RAM和程序內(nèi)存。單個數(shù)據(jù)記錄解決方案具有或多或少的以下缺點。

?日志記錄功能的緩慢執(zhí)行 - 例如,日志記錄一次一次處理數(shù)據(jù)8位,對于現(xiàn)代32位嵌入式系統(tǒng)而言,這很慢。

?非倫敦記錄功能,無法記錄多任務(wù)或中斷/異常。

?阻止功能 - 例如,如果在較低的優(yōu)先級功能將數(shù)據(jù)寫入緩沖區(qū)時發(fā)生中斷,則中斷程序無法捕獲數(shù)據(jù),因為捕獲被阻止,直到較低的優(yōu)先級功能完成編寫事件數(shù)據(jù)。

?記錄RTOS事件很快,但是記錄應(yīng)用程序特定的事件和數(shù)據(jù)很慢,因為它依賴于printf樣功能。這種方法要求將printf字符串復(fù)制到圓形緩沖區(qū)中,該緩沖區(qū)消耗了寶貴的空間,并限制了可以存儲的歷史數(shù)據(jù)量。

?必須手動分配特定于應(yīng)用程序的事件代碼。

?過度使用程序內(nèi)存通常是由嵌入式系統(tǒng)中printf字符串的相對較大的數(shù)據(jù)記錄功能和/或存儲引起的。

?對于基于RTOS的應(yīng)用程序,過多的堆棧使用尤其有問題。這是因為必須為調(diào)用記錄功能的每個任務(wù)分配其他堆??臻g。此外,現(xiàn)有項目的儀器可能導(dǎo)致堆棧溢出。

?某些解決方案需要在數(shù)據(jù)寫入圓形緩沖區(qū)期間被禁用。在受MPU保護的RTO中,任務(wù)不能禁用中斷,從而使高融合應(yīng)用程序不可能進(jìn)行數(shù)據(jù)記錄。

?數(shù)據(jù)不能導(dǎo)出或只能手動導(dǎo)出。數(shù)據(jù)解碼不能輕易自定義,并且輸出以多種格式分類為多種格式,以使用最合適的工具進(jìn)行有效分析。更好地了解大量未排序數(shù)據(jù)需要復(fù)雜的自定義工具。

?無法記錄所有類型的數(shù)據(jù)。但是,重要的是記錄任何可以幫助識別或診斷問題的數(shù)據(jù)。

?使用動態(tài)分配的緩沖區(qū)和/或不一致的邊界檢查,這不適用于高融合系統(tǒng)。

?數(shù)據(jù)沒有時間戳(無法定時分析)。

?缺少或有限的過濾功能:通常僅在編譯時間而不是在系統(tǒng)操作期間進(jìn)行消息過濾(如果主機的帶寬不足或需要更長或更詳細(xì)的歷史記錄)。

?所有數(shù)據(jù)都寫入單個日志文件,由于數(shù)據(jù)泛濫,該文件對于手動檢查變得太大。

?可移植性差(不可攜帶的記錄庫代碼或缺乏對特定CPU核心或硬件的支持),因此不能用于所有系統(tǒng)。

?解決方案不適合高融合項目(例如功能安全)。

?有限的范圍:某些儀器解決方案可能會集中在特定方面,例如性能或調(diào)試,而無需提供系統(tǒng)的整體視圖。

?高許可成本或?qū)⒔鉀Q方案與特定的調(diào)試探針,IDE或工具鏈聯(lián)系起來。

?具有大量數(shù)據(jù)記錄功能/宏和陡峭學(xué)習(xí)曲線的復(fù)雜解決方案。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉