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

產品分類

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

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

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

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

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

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

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

嵌入式測試的要求變化

現代嵌入式系統測試工具要求開發人員采用以下四種主要組件,才能完全測試他們的系統(圖 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

推薦產品

更多
主站蜘蛛池模板: 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 高铝轻质保温砖_刚玉莫来石砖厂家_轻质耐火砖价格 | 飞象网 - 通信人每天必上的网站| 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 环氧树脂地坪_防静电地坪漆_环氧地坪漆涂料厂家-地壹涂料地坪漆 环球电气之家-中国专业电气电子产品行业服务网站! | 篮球架_乒乓球台_足球门_校园_竞技体育器材_厂家_价格-沧州浩然体育器材有限公司 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | VOC检测仪-甲醛检测仪-气体报警器-气体检测仪厂家-深恒安科技有限公司 | 洗地机_全自动洗地机_手推式洗地机【上海滢皓环保】 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 3D全息投影_地面互动投影_360度立体投影_水幕灯光秀 | 广东银虎 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 道康宁消泡剂-瓦克-大川进口消泡剂供应商 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 电动液压篮球架_圆管地埋式篮球架_移动平箱篮球架-强森体育 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 知网论文检测系统入口_论文查重免费查重_中国知网论文查询_学术不端检测系统 | 北京四合院出租,北京四合院出售,北京平房买卖 - 顺益兴四合院 | 泰国试管婴儿_泰国第三代试管婴儿_泰国试管婴儿费用/多少钱_孕泰来 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 影像测量仪_三坐标测量机_一键式二次元_全自动影像测量仪-广东妙机精密科技股份有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 磁力反应釜,高压釜,实验室反应釜,高温高压反应釜-威海自控反应釜有限公司 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 三氯异氰尿酸-二氯-三氯-二氯异氰尿酸钠-优氯净-强氯精-消毒片-济南中北_优氯净厂家 |