环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產品分類

當前位置: 首頁 > 工業電子產品 > 半導體產品 > 微控制器MCU

類型分類:
科普知識
數據分類:
微控制器MCU

為微控制器軟件構建有效的測試工具

發布日期:2022-04-22 點擊率:62

嵌入式系統現在變得更加智能,互連程度更高,當然也比以前要復雜。要讓嵌入式系統保持穩健并盡可能接近無錯誤,開發團隊需要有效的方法來進行測試,驗證系統能否按預期的方式工作。測試工作中最關鍵,通常也是難度最高的方面,就是在微控制器上運行軟件。

由于在資源受限的器件上使用最新測試技術存在困難,微控制器軟件測試通常落后于在基于應用處理器的器件上執行的測試。但是,由于我們在與傳統測試工具設計技術配合使用的調試技術方面取得了新進展,嵌入式系統開發人員現在能夠更加有效地測試系統軟件。

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

嵌入式測試的要求變化

現代嵌入式系統測試工具要求開發人員采用以下四種主要組件,才能完全測試他們的系統(圖 1):

  • 支持跟蹤功能的調試器

  • 通信適配器/嗅探器

  • 邏輯分析儀

  • 模數轉換器 (ADC)

測試嵌入式系統所需的各種接口和工具的框圖

圖 1: 測試嵌入式系統所需的各種接口和工具,包括調試器、通信轉換器、邏輯分析儀和模數轉換器。(圖片來源:Beningo Embedded Group)

使用這四個組件,開發人員能夠在系統級別和微控制器級別上測試嵌入式軟件,還可向下深入到由微處理器執行的指令。在當今的開發環境中,這一點非常關鍵,旨在確保構建的系統不僅能夠滿足需求,還能夠可靠地運行。

初看起來,圖 1 可能類似于非常傳統的嵌入式系統測試工具,但它的進步和新功能真正源于一種分析微控制器中運行情況的全新方式,稱為“深入洞察分析”(Deep Insight Analysis)。

利用深入洞察分析來測試軟件

深入洞察分析讓開發人員能夠在運行時分析系統。深入洞察分析有三個關鍵組成部分:

  • RTOS 感知的調試

  • 運行時分析

  • 剖析和代碼覆蓋分析

開發人員通常在設計應用之后,使用基本調試技術(例如斷點調試)嘗試了解系統的工作情況,隨后立即開始測試。在存在斷點的情況下進行測試只流于表面,無法讓開發人員真正了解微控制器中的運行情況。使用深入洞察分析,開發人員能夠在基本測試和調試之外更深入地挖掘 RTOS、運行時行為、執行分析和覆蓋(圖 2)。

深入洞察分析不僅限于基本測試和調試的圖片

圖 2: 深入洞察分析能夠在基本測試和調試之外更深入地挖掘 RTOS、運行時行為、執行分析和覆蓋。(圖片來源: Beningo Embedded Group)

要為測試工具添加深入洞察分析功能,開發人員必須使用專業調試工具,例如 Segger Microcontroller Systems、J-Trace 或 J-link Ultra+(圖 3)。J-link Ultra+ 使用標準的 JTAG 或 SWD 接口,從板載調試模塊提取跟蹤數據。這些信息可用于執行多種不同分析,例如 RTOS 感知的調試。

Segger 的 J-l<em></em>ink Ultra+ 的圖片

圖 3: Segger 的 J-link Ultra+ 使用標準的 JTAG 或 SWD 接口,從板載調試模塊提取跟蹤數據。(圖片來源: Segger Microcontroller Systems)

使用 RTOS 感知的調試,開發人員能夠在執行測試案例時監控任務的執行情況。例如開發人員能夠深入了解以下情況:

  • 最大堆棧使用

  • 任務運行計數

  • 任務狀態

圖 4 顯示了結合使用 Segger 的 embOS RTOS 和 Embedded Studio 的測試會話示例。此視圖可以讓開發人員深入了解 RTOS 的運行情況,但無法提供應用運行情況的完整信息。

Segger 的 embOS RTOS 和 Embedded Studio IDE 的圖片

圖 4: 使用 Segger 的 embOS RTOS 和 Embedded Studio IDE 的 RTOS 感知調試的示例(圖片來源:Beningo Embedded Group)

開發人員可以使用 Segger 的免費 SystemView 實用工具或 Percepio 的 Tracealyzer 工具,進一步增強測試工具。這些工具為開發人員提供運行時分析,以便他們在運行測試套件時,直觀地查看和分析應用的執行情況。為了采集這些跟蹤數據,開發人員需要配置他們的應用,以便在 IDE 內部進行跟蹤,或者使用配置工具進行跟蹤。如果沒有使用工具,他們可以手動集成低級別庫。

運行時分析可為開發人員提供有關應用運行情況的豐富信息(圖 5)。例如,開發人員能夠:

  • 跟蹤事件的時間和順序

  • 獲取最大、最小和平均的執行時間

  • 直觀地查看任務執行,以及任務何時切換

  • 監控 CPU 負載

  • 分析任務統計數據

  • 識別潛在問題,例如優先級反轉、任務抖動和死鎖

使用跟蹤工具 SystemView 進行的運行時分析的圖片

圖 5: 使用跟蹤工具 SystemView 進行的運行時分析。(圖片來源:Beningo Embedded Group)

雖然為測試工具添加了 RTOS 感知的調試和運行時分析功能,但這可能還不足夠。在很多實例中,錯誤可能隱藏在測試過程中從不執行的代碼中。對于開發人員而言,了解哪些代碼行已經執行過可能非常困難。在這一方面,J-Trace 等工具為我們帶來了很多便利。

如何跟蹤已執行代碼

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

在測試工具中使用這種分析,開發人員能夠確定測試案例是否達到了 80%、90% 或 100% 的代碼覆蓋率。如果測試覆蓋率只有 95%,但又必須達到 100% 的覆蓋率才能交付產品,他們可以使用類似于 Ozone 的免費實用工具,查看哪些代碼行已經執行,更重要的是查看哪些代碼行尚未執行(圖 6)。然后可以添加新的測試案例,確保這些遺漏的代碼行在測試中得到執行。

使用 Ozone 執行代碼分析的圖片

圖 6: 使用 Ozone 執行代碼分析。(圖片來源:Beningo Embedded Group)

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

命令和控制嵌入式系統

對于如何與外界進行交互,每個嵌入式都有不同的需求。有些器件可能通過簡單的 UART 進行通信,而其他器件則可能使用 CAN 或 TCP/IP。為了成功地構建能夠與系統進行通信并讓其執行命令的測試工具,開發人員必須在測試工具中增加通信硬件和軟件。

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

  • 為了調試信息,例如打印消息(雖然這些信息應該通過調試器發送)

  • 設備發出命令

  • 監控多個器件之間的內部通信

  • 易于使用

每個開發人員都應在實驗室常備的一種通用 UART 工具是由 SparkFun Electronics 提供的 BOB-12731 FT232R, USB-to-UART 評估板(圖 7)。

來自 SparkFun 的 BOB-12731 FT232R, USB-to-UART 評估板的圖片

圖 7: 來自 SparkFun Electronics 的 BOB-12731 FT232R, USB-to-UART 評估板在任何實驗室中都非常實用,因為它可以輕松連接到任何嵌入式系統。(圖片來源: SparkFun Electronics)

這些價格低廉的評估板可以輕松連接到任何嵌入式系統,并在 PC 上作為簡單的通信端口。它不需要任何特殊驅動程序或軟件就能與嵌入式系統進行通信。開發人員只需打開 COM 端口即可開始發送和接收測試消息。

驗證每個邏輯狀態

要對嵌入式系統進行完全測試,就需要開發人員驗證微控制器的內部工作情況,以及它產生的外部邏輯。這種邏輯可能是簡單的輸入和輸出狀態,以及低級別通信,例如 I2C 或 SPI。

但是,如果開發人員使用模數轉換器 (ADC) 和數模轉換器 (DAC) 板,則監控輸入/輸出狀態和低級別通信可能成本高昂。開發人員可以利用一些技巧來降低成本,以便監控這些信號和改進測試功能。

第一個技巧是使用來自系統上的微控制器的開發板,來監控微控制器引腳。例如,如果開發人員使用 STMicroelectronics STM32F767 或 STM32L4 微控制器,則他們應該首先購買 STM32F767 Nucleo 板 或 STM32L476RGT6 Nucleo 板(圖 8)。

STMicroelectro<em></em>nics STM32L476RGT6 Nucleo <a title=開發板的圖片" src="http://www.digikey.com.cn/-/media/Images/Article Library/TechZone Articles/2017/November/Build an Effective Test Harness for Microcontroller Software/article-2017november-build-an-effective-fig8.jpg?ts=0f2b1369-b501-4247-8bfe-f1849faea505&la=zh-CN-RMB" title="STMicroelectro<em></em>nics STM32L476RGT6 Nucleo board" height="299" width="400"/>

圖 8: STM32L476RGT6 Nucleo 板可用于監控 STM32L4 微控制器上的引腳。(圖片來源:STMicroelectronics)

然后,他們應該使用板上的針座,直接將每個 I/O 引腳跳轉到系統上的相應引腳。由于他們已經為微控制器開發了低級別驅動程序,因此可以輕松地調節這些驅動程序,以便監控微控制器的輸入和輸出狀態。

開發人員還可以添加少量額外代碼,例如 USB 驅動程序,這樣開發板就能夠直接插入到測試主機。USB 可用于接收輸入/輸出樣本狀態數據,隨后這些數據可以關聯至從系統發出和接收命令,以確定工作情況是否完全符合預期。

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

來自 SparkFun Electro<em></em>nics 的 Logic Pro 8 多功能邏輯探頭的圖片

圖 9: Logic Pro 8 是來自 SparkFun Electronics 的多功能邏輯探頭,讓開發人員能夠針對要監控的對象,對每個輸入進行編程。(圖片來源: SparkFun Electronics)

這些邏輯分析儀具有多功能性,在要監控的對象方面,可通過軟件對每個輸入進行修改。例如,開發人員可設置前兩個輸入來監控開關輸入,同時使用接著的兩個輸入來監控 I2C 通信,并使用剩余的輸入來監控 SPI。數據可以輕松采集,然后與測試工具的剩余組件進行同步,從而讓我們全面了解嵌入式系統的工作情況。

構建測試工具的技巧和訣竅

顯而易見,測試工具對于很多現代嵌入式系統是必不可少的。獲得認證有時可能非常困難,但認證產生的回報和帶來的系統穩健性提升的價值會數倍于投資成本。在首次構建測試工具時,甚至在升級測試工具時,開發人員可以利用多種技巧,確保構建最有效的測試工具。其中包括:

  • 使用與主要目標相同的處理器的開發套件,來監控微控制器的數字輸入和輸出

  • 在支持跟蹤功能的調試器上進行投資,并利用免費的軟件包,以最深入地了解系統運行情況

  • 運行軟件跟蹤時,請務必使用最壞情況測試,以確保您能夠獲取最壞情況場景

  • 如果沒有足夠的資金來構建完善的測試工具,首先構建較小的測試工具,然后隨著時間推移加以完善。哪怕只進行一部分測試,也強于沒有進行測試。

  • 花費必要的時間掌握要在測試工具中使用的不同工具和組件

  • 不要害怕構建您自己的接口,要充分利用現有軟件來監控系統運行情況

  • 不要做出任何假設!如果您沒有監控輸出或觸發輸入,則很可能讓錯誤乘虛而入。

總結

為嵌入式系統開發測試工具,是一種改進嵌入式系統可靠性的低成本方法。精心選擇測試工具的組件,可以讓開發人員輕松監控軟件的外部行為。測試的最關鍵而又經常易于忽略的環節是檢查跟蹤數據,現在這些數據可從微控制器輕松訪問。使用這些跟蹤數據,開發人員能夠執行深入洞察分析,同時執行他們的測試案例,以確保其軟件即使針對個別指令也能按預期工作。

下一篇: 斷路器、隔離開關、接

上一篇: 索爾維全系列Solef?PV

推薦產品

更多
主站蜘蛛池模板: 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 北京租车牌|京牌指标租赁|小客车指标出租 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 加热制冷恒温循环器-加热制冷循环油浴-杭州庚雨仪器有限公司 | 石牌坊价格石牌坊雕刻制作_石雕牌坊牌楼石栏杆厂家_山东嘉祥石雕有限公司 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 散热器-电子散热器-型材散热器-电源散热片-镇江新区宏图电子散热片厂家 | 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 工业CT-无锡璟能智能仪器有限公司| 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 西门子气候补偿器,锅炉气候补偿器-陕西沃信机电工程有限公司 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 医养体检包_公卫随访箱_慢病随访包_家签随访包_随访一体机-济南易享医疗科技有限公司 | 光泽度计_测量显微镜_苏州压力仪_苏州扭力板手维修-苏州日升精密仪器有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 | 湖南长沙商标注册专利申请,长沙公司注册代理记账首选美创! | 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | 江西自考网-江西自学考试网| 首页-瓜尔胶系列-化工单体系列-油田压裂助剂-瓜尔胶厂家-山东广浦生物科技有限公司 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 1000帧高速摄像机|工业高速相机厂家|科天健光电技术 | 电主轴,车床电磨头,变频制动电机-博山鸿达特种电机 | 小型玉石雕刻机_家用玉雕机_小型万能雕刻机_凡刻雕刻机官网 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 |