時(shí)間:2018-08-17 10:50:30來源:網(wǎng)絡(luò)轉(zhuǎn)載
嵌入式系統(tǒng)現(xiàn)在變得更加智能,互連程度更高,當(dāng)然也比以前要復(fù)雜。要讓嵌入式系統(tǒng)保持穩(wěn)健并盡可能接近無錯(cuò)誤,開發(fā)團(tuán)隊(duì)需要有效的方法來進(jìn)行測試,驗(yàn)證系統(tǒng)能否按預(yù)期的方式工作。測試工作中最關(guān)鍵,通常也是難度最高的方面,就是在微控制器上運(yùn)行軟件。
本文將向開發(fā)人員介紹如何使用這些新技術(shù),以及新技術(shù)實(shí)施所需的設(shè)備和工具。
嵌入式測試的要求變化
現(xiàn)代嵌入式系統(tǒng)測試工具要求開發(fā)人員采用以下四種主要組件,才能完全測試他們的系統(tǒng):
支持跟蹤功能的調(diào)試器
通信適配器/嗅探器
邏輯分析儀
模數(shù)轉(zhuǎn)換器(ADC)
使用這四個(gè)組件,開發(fā)人員能夠在系統(tǒng)級別和微控制器級別上測試嵌入式軟件,還可向下深入到由微處理器執(zhí)行的指令。
在當(dāng)今的開發(fā)環(huán)境中,這一點(diǎn)非常關(guān)鍵,旨在確保構(gòu)建的系統(tǒng)不僅能夠滿足需求,還能夠可靠地運(yùn)行。
初看起來,可能類似于非常傳統(tǒng)的嵌入式系統(tǒng)測試工具,但它的進(jìn)步和新功能真正源于一種分析微控制器中運(yùn)行情況的全新方式,稱為“深入洞察分析”。
利用深入洞察分析來測試軟件
深入洞察分析讓開發(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)的工作情況,隨后立即開始測試。在存在斷點(diǎn)的情況下進(jìn)行測試只流于表面,無法讓開發(fā)人員真正了解微控制器中的運(yùn)行情況。
使用深入洞察分析,開發(fā)人員能夠在基本測試和調(diào)試之外更深入地挖掘RTOS、運(yùn)行時(shí)行為、執(zhí)行分析和覆蓋。
要為測試工具添加深入洞察分析功能,開發(fā)人員必須使用專業(yè)調(diào)試工具,例如SeggerMicrocontrollerSystems、J-Trace或J-LinkUltra+。
J-LinkUltra+使用標(biāo)準(zhǔn)的JTAG或SWD接口,從板載調(diào)試模塊提取跟蹤數(shù)據(jù)。這些信息可用于執(zhí)行多種不同分析,例如RTOS感知的調(diào)試。
使用RTOS感知的調(diào)試,開發(fā)人員能夠在執(zhí)行測試案例時(shí)監(jiān)控任務(wù)的執(zhí)行情況。例如開發(fā)人員能夠深入了解以下情況:
最大堆棧使用
任務(wù)運(yùn)行計(jì)數(shù)
任務(wù)狀態(tài)
顯示了結(jié)合使用Segger的embOSRTOS和EmbeddedStudio的測試會話示例。此視圖可以讓開發(fā)人員深入了解RTOS的運(yùn)行情況,但無法提供應(yīng)用運(yùn)行情況的完整信息。
開發(fā)人員可以使用Segger的免費(fèi)SystemView實(shí)用工具或Percepio的Tracealyzer工具,進(jìn)一步增強(qiáng)測試工具。這些工具為開發(fā)人員提供運(yùn)行時(shí)分析,以便他們在運(yùn)行測試套件時(shí),直觀地查看和分析應(yīng)用的執(zhí)行情況。
為了采集這些跟蹤數(shù)據(jù),開發(fā)人員需要配置他們的應(yīng)用,以便在IDE內(nèi)部進(jìn)行跟蹤,或者使用配置工具進(jìn)行跟蹤。如果沒有使用工具,他們可以手動集成低級別庫。
運(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ù)
識別潛在問題,例如優(yōu)先級反轉(zhuǎn)、任務(wù)抖動和死鎖
雖然為測試工具添加了RTOS感知的調(diào)試和運(yùn)行時(shí)分析功能,但這可能還不足夠。在很多實(shí)例中,錯(cuò)誤可能隱藏在測試過程中從不執(zhí)行的代碼中。對于開發(fā)人員而言,了解哪些代碼行已經(jīng)執(zhí)行過可能非常困難。在這一方面,J-Trace等工具為我們帶來了很多便利。
如何跟蹤已執(zhí)行代碼
J-Trace使用微控制器中的嵌入式跟蹤宏單元(ETM)端口來執(zhí)行指令跟蹤。通過指令跟蹤,J-Trace能夠“看到”在處理器上執(zhí)行的每一個(gè)CPU指令,以及代碼的準(zhǔn)確路徑。
在測試工具中使用這種分析,開發(fā)人員能夠確定測試案例是否達(dá)到了80%、90%或100%的代碼覆蓋率。
如果測試覆蓋率只有95%,但又必須達(dá)到100%的覆蓋率才能交付產(chǎn)品,他們可以使用類似于Ozone的免費(fèi)實(shí)用工具,查看哪些代碼行已經(jīng)執(zhí)行,更重要的是查看哪些代碼行尚未執(zhí)行。
然后可以添加新的測試案例,確保這些遺漏的代碼行在測試中得到執(zhí)行。
借助深入洞察分析提供的強(qiáng)大工具,開發(fā)人員現(xiàn)在能夠自由專注于構(gòu)建有效測試工具所必需的其他組件。測試工具的另一個(gè)至關(guān)重要的組件是在測試過程中用于與微控制器通信并控制其行為的工具。
命令和控制嵌入式系統(tǒng)
對于如何與外界進(jìn)行交互,每個(gè)嵌入式都有不同的需求。有些器件可能通過簡單的UART進(jìn)行通信,而其他器件則可能使用CAN或TCP/IP。
為了成功地構(gòu)建能夠與系統(tǒng)進(jìn)行通信并讓其執(zhí)行命令的測試工具,開發(fā)人員必須在測試工具中增加通信硬件和軟件。
雖然嵌入式系統(tǒng)使用了大量不同的通信接口,但其中一種接口比其他任何接口都更加常用,那就是UART。嵌入式軟件開發(fā)人員習(xí)慣使用UART,將這種接口包括在測試工具中很重要,原因有幾個(gè),其中包括:
為了調(diào)試信息,例如打印消息(雖然這些信息應(yīng)該通過調(diào)試器發(fā)送)
設(shè)備發(fā)出命令
監(jiān)控多個(gè)器件之間的內(nèi)部通信
易于使用
每個(gè)開發(fā)人員都應(yīng)在實(shí)驗(yàn)室常備的一種通用UART工具是由SparkFunElectronics提供的BOB-12731FT232R,USB-to-UART評估板。
這些價(jià)格低廉的評估板可以輕松連接到任何嵌入式系統(tǒng),并在PC上作為簡單的通信端口。它不需要任何特殊驅(qū)動程序或軟件就能與嵌入式系統(tǒng)進(jìn)行通信。開發(fā)人員只需打開COM端口即可開始發(fā)送和接收測試消息。
驗(yàn)證每個(gè)邏輯狀態(tài)
要對嵌入式系統(tǒng)進(jìn)行完全測試,就需要開發(fā)人員驗(yàn)證微控制器的內(nèi)部工作情況,以及它產(chǎn)生的外部邏輯。這種邏輯可能是簡單的輸入和輸出狀態(tài),以及低級別通信,例如I2C或SPI。
但是,如果開發(fā)人員使用模數(shù)轉(zhuǎn)換器(ADC)和數(shù)模轉(zhuǎn)換器(DAC)板,則監(jiān)控輸入/輸出狀態(tài)和低級別通信可能成本高昂。開發(fā)人員可以利用一些技巧來降低成本,以便監(jiān)控這些信號和改進(jìn)測試功能。
第一個(gè)技巧是使用來自系統(tǒng)上的微控制器的開發(fā)板,來監(jiān)控微控制器引腳。例如,如果開發(fā)人員使用STMicroelectronicsSTM32F767或STM32L4微控制器,則他們應(yīng)該首先購買STM32F767Nucleo板或STM32L476RGT6Nucleo板。
然后,他們應(yīng)該使用板上的針座,直接將每個(gè)I/O引腳跳轉(zhuǎn)到系統(tǒng)上的相應(yīng)引腳。由于他們已經(jīng)為微控制器開發(fā)了低級別驅(qū)動程序,因此可以輕松地調(diào)節(jié)這些驅(qū)動程序,以便監(jiān)控微控制器的輸入和輸出狀態(tài)。
開發(fā)人員還可以添加少量額外代碼,例如USB驅(qū)動程序,這樣開發(fā)板就能夠直接插入到測試主機(jī)。
USB可用于接收輸入/輸出樣本狀態(tài)數(shù)據(jù),隨后這些數(shù)據(jù)可以關(guān)聯(lián)至從系統(tǒng)發(fā)出和接收命令,以確定工作情況是否完全符合預(yù)期。
除了使用開發(fā)板之外,測試工具也可以使用邏輯探頭,例如同樣來自SparkFun的LogicPro8。
這些邏輯分析儀具有多功能性,在要監(jiān)控的對象方面,可通過軟件對每個(gè)輸入進(jìn)行修改。
例如,開發(fā)人員可設(shè)置前兩個(gè)輸入來監(jiān)控開關(guān)輸入,同時(shí)使用接著的兩個(gè)輸入來監(jiān)控I2C通信,并使用剩余的輸入來監(jiān)控SPI。數(shù)據(jù)可以輕松采集,然后與測試工具的剩余組件進(jìn)行同步,從而讓我們?nèi)媪私馇度胧较到y(tǒng)的工作情況。
構(gòu)建測試工具的技巧和訣竅
顯而易見,測試工具對于很多現(xiàn)代嵌入式系統(tǒng)是必不可少的。獲得認(rèn)證有時(shí)可能非常困難,但認(rèn)證產(chǎn)生的回報(bào)和帶來的系統(tǒng)穩(wěn)健性提升的價(jià)值會數(shù)倍于投資成本。
在首次構(gòu)建測試工具時(shí),甚至在升級測試工具時(shí),開發(fā)人員可以利用多種技巧,確保構(gòu)建最有效的測試工具。其中包括:
使用與主要目標(biāo)相同的處理器的開發(fā)套件,來監(jiān)控微控制器的數(shù)字輸入和輸出
在支持跟蹤功能的調(diào)試器上進(jìn)行投資,并利用免費(fèi)的軟件包,以最深入地了解系統(tǒng)運(yùn)行情況
運(yùn)行軟件跟蹤時(shí),請務(wù)必使用最壞情況測試,以確保您能夠獲取最壞情況場景
如果沒有足夠的資金來構(gòu)建完善的測試工具,首先構(gòu)建較小的測試工具,然后隨著時(shí)間推移加以完善。哪怕只進(jìn)行一部分測試,也強(qiáng)于沒有進(jìn)行測試。
花費(fèi)必要的時(shí)間掌握要在測試工具中使用的不同工具和組件
不要害怕構(gòu)建您自己的接口,要充分利用現(xiàn)有軟件來監(jiān)控系統(tǒng)運(yùn)行情況
不要做出任何假設(shè)!如果您沒有監(jiān)控輸出或觸發(fā)輸入,則很可能讓錯(cuò)誤乘虛而入。
總結(jié)
為嵌入式系統(tǒng)開發(fā)測試工具,是一種改進(jìn)嵌入式系統(tǒng)可靠性的低成本方法。精心選擇測試工具的組件,可以讓開發(fā)人員輕松監(jiān)控軟件的外部行為。
測試的最關(guān)鍵而又經(jīng)常易于忽略的環(huán)節(jié)是檢查跟蹤數(shù)據(jù),現(xiàn)在這些數(shù)據(jù)可從微控制器輕松訪問。
使用這些跟蹤數(shù)據(jù),開發(fā)人員能夠執(zhí)行深入洞察分析,同時(shí)執(zhí)行他們的測試案例,以確保其軟件即使針對個(gè)別指令也能按預(yù)期工作。
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>以簡驅(qū)繁,精準(zhǔn)智控 | 維智S1系列新一代...
2024-11-01
2024-10-31
2024-10-31
2024-10-31
2024-10-31
2024-10-29
推薦專題
更多>