當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]嵌入式系統(tǒng)在現(xiàn)代科技領(lǐng)域中無處不在,從智能家居到工業(yè)控制,從醫(yī)療設(shè)備到航空航天,嵌入式系統(tǒng)都扮演著至關(guān)重要的角色。然而,由于其高度集成、定制化以及運(yùn)行環(huán)境的復(fù)雜性,嵌入式系統(tǒng)的可靠性問題一直是開發(fā)者關(guān)注的焦點(diǎn)。

嵌入式系統(tǒng)在現(xiàn)代科技領(lǐng)域中無處不在,從智能家居到工業(yè)控制,從醫(yī)療設(shè)備到航空航天,嵌入式系統(tǒng)都扮演著至關(guān)重要的角色。然而,由于其高度集成、定制化以及運(yùn)行環(huán)境的復(fù)雜性,嵌入式系統(tǒng)的可靠性問題一直是開發(fā)者關(guān)注的焦點(diǎn)。本文將介紹一些提高嵌入式系統(tǒng)開發(fā)可靠性的小技巧,幫助開發(fā)者在開發(fā)過程中避免潛在的問題,提升系統(tǒng)的穩(wěn)定性和可靠性。

嵌入式系統(tǒng)現(xiàn)在變得更加智能,互連程度更高,當(dāng)然也比以前要復(fù)雜。要讓嵌入式系統(tǒng)保持穩(wěn)健并盡可能接近無錯(cuò)誤,開發(fā)團(tuán)隊(duì)需要有效的方法來進(jìn)行測(cè)試,驗(yàn)證系統(tǒng)能否按預(yù)期的方式工作。測(cè)試工作中最關(guān)鍵,通常也是難度最高的方面,就是在微控制器上運(yùn)行軟件。

本文將向開發(fā)人員介紹如何使用這些新技術(shù),以及新技術(shù)實(shí)施所需的設(shè)備和工具。

嵌入式測(cè)試的要求變化

現(xiàn)代嵌入式系統(tǒng)測(cè)試工具要求開發(fā)人員采用以下四種主要組件,才能完全測(cè)試他們的系統(tǒng):

支持跟蹤功能的調(diào)試器

通信適配器/嗅探器

邏輯分析儀

模數(shù)轉(zhuǎn)換器 (ADC)

使用這四個(gè)組件,開發(fā)人員能夠在系統(tǒng)級(jí)別和微控制器級(jí)別上測(cè)試嵌入式軟件,還可向下深入到由微處理器執(zhí)行的指令。

在當(dāng)今的開發(fā)環(huán)境中,這一點(diǎn)非常關(guān)鍵,旨在確保構(gòu)建的系統(tǒng)不僅能夠滿足需求,還能夠可靠地運(yùn)行。

初看起來,可能類似于非常傳統(tǒng)的嵌入式系統(tǒng)測(cè)試工具,但它的進(jìn)步和新功能真正源于一種分析微控制器中運(yùn)行情況的全新方式,稱為“深入洞察分析”。

利用深入洞察分析來測(cè)試軟件

深入洞察分析讓開發(fā)人員能夠在運(yùn)行時(shí)分析系統(tǒng)。深入洞察分析有三個(gè)關(guān)鍵組成部分:

RTOS 感知的調(diào)試

運(yùn)行時(shí)分析

剖析和代碼覆蓋分析

開發(fā)人員通常在設(shè)計(jì)應(yīng)用之后,使用基本調(diào)試技術(shù)(例如斷點(diǎn)調(diào)試)嘗試了解系統(tǒng)的工作情況,隨后立即開始測(cè)試。在存在斷點(diǎn)的情況下進(jìn)行測(cè)試只流于表面,無法讓開發(fā)人員真正了解微控制器中的運(yùn)行情況。

使用深入洞察分析,開發(fā)人員能夠在基本測(cè)試和調(diào)試之外更深入地挖掘 RTOS、運(yùn)行時(shí)行為、執(zhí)行分析和覆蓋。

要為測(cè)試工具添加深入洞察分析功能,開發(fā)人員必須使用專業(yè)調(diào)試工具,例如 Segger Microcontroller Systems、J-Trace 或 J-Link Ultra+。

J-Link Ultra+ 使用標(biāo)準(zhǔn)的 JTAG 或 SWD 接口,從板載調(diào)試模塊提取跟蹤數(shù)據(jù)。這些信息可用于執(zhí)行多種不同分析,例如 RTOS 感知的調(diào)試。

使用 RTOS 感知的調(diào)試,開發(fā)人員能夠在執(zhí)行測(cè)試案例時(shí)監(jiān)控任務(wù)的執(zhí)行情況。例如開發(fā)人員能夠深入了解以下情況:

最大堆棧使用

任務(wù)運(yùn)行計(jì)數(shù)

任務(wù)狀態(tài)

顯示了結(jié)合使用 Segger 的 embOS RTOS 和 Embedded Studio 的測(cè)試會(huì)話示例。此視圖可以讓開發(fā)人員深入了解 RTOS 的運(yùn)行情況,但無法提供應(yīng)用運(yùn)行情況的完整信息。

開發(fā)人員可以使用 Segger 的免費(fèi) SystemView 實(shí)用工具或 Percepio 的 Tracealyzer 工具,進(jìn)一步增強(qiáng)測(cè)試工具。這些工具為開發(fā)人員提供運(yùn)行時(shí)分析,以便他們?cè)谶\(yùn)行測(cè)試套件時(shí),直觀地查看和分析應(yīng)用的執(zhí)行情況。

為了采集這些跟蹤數(shù)據(jù),開發(fā)人員需要配置他們的應(yīng)用,以便在 IDE 內(nèi)部進(jìn)行跟蹤,或者使用配置工具進(jìn)行跟蹤。如果沒有使用工具,他們可以手動(dòng)集成低級(jí)別庫。

運(yùn)行時(shí)分析可為開發(fā)人員提供有關(guān)應(yīng)用運(yùn)行情況的豐富信息。例如,開發(fā)人員能夠:

跟蹤事件的時(shí)間和順序

獲取最大、最小和平均的執(zhí)行時(shí)間

直觀地查看任務(wù)執(zhí)行,以及任務(wù)何時(shí)切換

監(jiān)控 CPU 負(fù)載

分析任務(wù)統(tǒng)計(jì)數(shù)據(jù)

識(shí)別潛在問題,例如優(yōu)先級(jí)反轉(zhuǎn)、任務(wù)抖動(dòng)和死鎖

雖然為測(cè)試工具添加了 RTOS 感知的調(diào)試和運(yùn)行時(shí)分析功能,但這可能還不足夠。在很多實(shí)例中,錯(cuò)誤可能隱藏在測(cè)試過程中從不執(zhí)行的代碼中。對(duì)于開發(fā)人員而言,了解哪些代碼行已經(jīng)執(zhí)行過可能非常困難。在這一方面,J-Trace 等工具為我們帶來了很多便利。

如何跟蹤已執(zhí)行代碼

J-Trace 使用微控制器中的嵌入式跟蹤宏單元 (ETM) 端口來執(zhí)行指令跟蹤。通過指令跟蹤,J-Trace 能夠“看到”在處理器上執(zhí)行的每一個(gè) CPU 指令,以及代碼的準(zhǔn)確路徑。

在測(cè)試工具中使用這種分析,開發(fā)人員能夠確定測(cè)試案例是否達(dá)到了 80%、90% 或 100% 的代碼覆蓋率。

如果測(cè)試覆蓋率只有 95%,但又必須達(dá)到 100% 的覆蓋率才能交付產(chǎn)品,他們可以使用類似于 Ozone 的免費(fèi)實(shí)用工具,查看哪些代碼行已經(jīng)執(zhí)行,更重要的是查看哪些代碼行尚未執(zhí)行。

然后可以添加新的測(cè)試案例,確保這些遺漏的代碼行在測(cè)試中得到執(zhí)行。

借助深入洞察分析提供的強(qiáng)大工具,開發(fā)人員現(xiàn)在能夠自由專注于構(gòu)建有效測(cè)試工具所必需的其他組件。測(cè)試工具的另一個(gè)至關(guān)重要的組件是在測(cè)試過程中用于與微控制器通信并控制其行為的工具。

命令和控制嵌入式系統(tǒng)

對(duì)于如何與外界進(jìn)行交互,每個(gè)嵌入式都有不同的需求。有些器件可能通過簡單的 UART 進(jìn)行通信,而其他器件則可能使用 CAN 或 TCP/IP。

為了成功地構(gòu)建能夠與系統(tǒng)進(jìn)行通信并讓其執(zhí)行命令的測(cè)試工具,開發(fā)人員必須在測(cè)試工具中增加通信硬件和軟件。

雖然嵌入式系統(tǒng)使用了大量不同的通信接口,但其中一種接口比其何接口都更加常用,那就是 UART。嵌入式軟件開發(fā)人員習(xí)慣使用 UART,將這種接口包括在測(cè)試工具中很重要,原因有幾個(gè),其中包括:

為了調(diào)試信息,例如打印消息(雖然這些信息應(yīng)該通過調(diào)試器發(fā)送)

設(shè)備發(fā)出命令

監(jiān)控多個(gè)器件之間的內(nèi)部通信

易于使用

每個(gè)開發(fā)人員都應(yīng)在實(shí)驗(yàn)室常備的一種通用 UART 工具是由 SparkFun Electronics 提供的 BOB-12731 FT232R, USB-to-UART 評(píng)估板。

這些價(jià)格低廉的評(píng)估板可以輕松連接到任何嵌入式系統(tǒng),并在 PC 上作為簡單的通信端口。它不需要任何特殊驅(qū)動(dòng)程序或軟件就能與嵌入式系統(tǒng)進(jìn)行通信。開發(fā)人員只需打開 COM 端口即可開始發(fā)送和接收測(cè)試消息。

驗(yàn)證每個(gè)邏輯狀態(tài)

要對(duì)嵌入式系統(tǒng)進(jìn)行完全測(cè)試,就需要開發(fā)人員驗(yàn)證微控制器的內(nèi)部工作情況,以及它產(chǎn)生的外部邏輯。這種邏輯可能是簡單的輸入和輸出狀態(tài),以及低級(jí)別通信,例如 I2C 或 SPI。

但是,如果開發(fā)人員使用模數(shù)轉(zhuǎn)換器 (ADC) 和數(shù)模轉(zhuǎn)換器 (DAC) 板,則監(jiān)控輸入/輸出態(tài)和低級(jí)別通信可能成本高昂。開發(fā)人員可以利用一些技巧來降低成本,以便監(jiān)控這些信號(hào)和改進(jìn)測(cè)試功能。

第一個(gè)技巧是使用來自系統(tǒng)上的微控制器的開發(fā)板,來監(jiān)控微控制器引腳。例如,如果開發(fā)人員使用 STMicroelectronics STM32F767 或 STM32L4微控制器,則他們應(yīng)該首先購買 STM32F767 Nucleo 板 或 STM32L476RGT6 Nucleo 板。

然后,他們應(yīng)該使用板上的針座,直接將每個(gè) I/O 引腳跳轉(zhuǎn)到系統(tǒng)上的相應(yīng)引腳。由于他們已經(jīng)為微控制器開發(fā)了低級(jí)別驅(qū)動(dòng)程序,因此可以輕松地調(diào)節(jié)這些驅(qū)動(dòng)程序,以便監(jiān)控微控制器的輸入和輸出狀態(tài)。

開發(fā)人員還可以添加少量額外代碼,例如 USB 驅(qū)動(dòng)程序,這樣開發(fā)板就能夠直接插入到測(cè)試主機(jī)。

USB 可用于接收輸入/輸出樣本狀態(tài)數(shù)據(jù),隨后這些數(shù)據(jù)可以關(guān)聯(lián)至從系統(tǒng)發(fā)出和接收命令,以確定工作情況是否完全符合預(yù)期。

除了使用開發(fā)板之外,測(cè)試工具也可以使用邏輯探頭,例如同樣來自 SparkFun 的 Logic Pro 8。

這些邏輯分析儀具有多功能性,在要監(jiān)控的對(duì)象方面,可通過軟件對(duì)每個(gè)輸入進(jìn)行修改。

例如,開發(fā)人員可設(shè)置前兩個(gè)輸入來監(jiān)控開關(guān)輸入,同時(shí)使用接著的兩個(gè)輸入來監(jiān)控 I2C 通信,并使用剩余的輸入來監(jiān)控 SPI。數(shù)據(jù)可以輕松采集,然后與測(cè)試工具的剩余組件進(jìn)行同步,從而讓我們?nèi)媪私馇度胧较到y(tǒng)的工作情況。

構(gòu)建測(cè)試工具的技巧和訣竅

顯而易見,測(cè)試工具對(duì)于很多現(xiàn)代嵌入式系統(tǒng)是必不可少的。獲得認(rèn)證有時(shí)可能非常困難,但認(rèn)證產(chǎn)生的回報(bào)和帶來的系統(tǒng)穩(wěn)健性提升的價(jià)值會(huì)數(shù)倍于投資成本。

在首次構(gòu)建測(cè)試工具時(shí),甚至在升級(jí)測(cè)試工具時(shí),開發(fā)人員可以利用多種技巧,確保構(gòu)建最有效的測(cè)試工具。其中包括:

使用與主要目標(biāo)相同的處理器的開發(fā)套件,來監(jiān)控微控制器的數(shù)字輸入和輸出

在支持跟蹤功能的調(diào)試器上進(jìn)行投資,并利用免費(fèi)的軟件包,以最深入地了解系統(tǒng)運(yùn)行情況

運(yùn)行軟件跟蹤時(shí),請(qǐng)務(wù)必使用最壞情況測(cè)試,以確保您能夠獲取最壞情況場(chǎng)景

如果沒有足夠的資金來構(gòu)建完善的測(cè)試工具,首先構(gòu)建較小的測(cè)試工具,然后隨著時(shí)間推移加以完善。哪怕只進(jìn)行一部分測(cè)試,也強(qiáng)于沒有進(jìn)行測(cè)試。

花費(fèi)必要的時(shí)間掌握要在測(cè)試工具中使用的不同工具和組件

不要害怕構(gòu)建您自己的接口,要充分利用現(xiàn)有軟件來監(jiān)控系統(tǒng)運(yùn)行情況

不要做出任何假設(shè)!如果您沒有監(jiān)控輸出或觸發(fā)輸入,則很可能讓錯(cuò)誤乘虛而入。

提高嵌入式系統(tǒng)的可靠性需要開發(fā)者在硬件設(shè)計(jì)、軟件編程、系統(tǒng)調(diào)試與優(yōu)化等方面付出努力。通過選用可靠的硬件組件、合理的硬件布局與布線、模塊化編程、靜態(tài)代碼分析、動(dòng)態(tài)內(nèi)存管理優(yōu)化、錯(cuò)誤處理和異常捕獲、單元測(cè)試與集成測(cè)試、實(shí)時(shí)調(diào)試與監(jiān)控、性能優(yōu)化以及可靠性測(cè)試等手段,可以顯著提高嵌入式系統(tǒng)的可靠性和穩(wěn)定性。同時(shí),開發(fā)者還應(yīng)不斷學(xué)習(xí)和探索新的技術(shù)和方法,不斷提高自己的技能水平,為嵌入式系統(tǒng)的可靠性保駕護(hù)航。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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