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