MCU原厂是如何对例程进行自动化测试的

这篇具有很好参考价值的文章主要介绍了MCU原厂是如何对例程进行自动化测试的。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SDK的自动化测试离不开CICD,简单来说,测试人员手动/定时通过Jenkins向服务器发送请求,服务器通过openocd服务将编译完的程序下载到待测板和辅助板中,然后通过辅助板/待测板的打印来断言测试的结果

CICD部分的框架搭建可以参考以下文章

在一家初创企业如何快速搭建自动化测试流程(CI/CD, 测试管理系统,分布式自动化测试) - 知乎

mcu 堆例程,单片机,嵌入式硬件

而SDK的例程运行在开发板中,因此相较于普通的软件测试,SDK的自动化又离不开硬件的实现

SDK例程的手工测试中,我们需要将代码编译后烧录至芯片中,然后通过芯片引脚信号、打印等信息来判断例程的正确性;同一份代码往往支持多种编译方式,同一块MCU也许也支持不同的代码存放路径(flash,sdram),公司也往往是多种型号的MCU支持同一份代码,因此一份sample的代码往往会被测试N次,自动化的性价比也就变得非常高了

对于简单的代码,例如烧录后仅会打印“hello,world”至串口,那对于自动化来说也非常简单,你只需要去串口中捕获这个字符串

对于复杂的功能,譬如从引脚输出一个PWM波的例程,在手工测试中,需要外接示波器进行测试,而在自动化测试中,也就必须要通过另外一块板卡,将输出的信号通过输入捕获后计算得出周期和占空比,然后去判断是否通过

需要使用两块板卡(DUT)的自动化例程,必然面临如何区分这两块DUT的问题

这里给出两种方案:

  1. 将两块DUT接在不同的test executor下,通过软件去实现区分
  2. 如果DUT支持SN号,那么在你开启openocd服务时,指定SN号

这就是对于非回环的输入输出自动化的核心思路,往待测板内烧录待测的程序,再往辅助板内烧录辅助程序

举一个更具体的例子,HPM6200evk的GPTMR的输出比较例程,将PC08引脚初始化为GPTMR2的CMP1,例程开始后,通过PC08输出周期为1S,占空比为30%的方波;为了验证程序的有效性,在辅助板中运行的程序是对PWM周期和占空比的测量,然后在串口中打印捕获到的信息;然后,将辅助板的输入捕获和测试版的输出比较引脚(PC08)连接起来,就完成了硬件环境的构建

如果拥有足够的硬件资源,那么你可以搭建N套这样的环境,对于辅助板和待测板之间的接线,可以设计一款转接小板,两块板子插在一起即可,也没有接线的烦恼

mcu 堆例程,单片机,嵌入式硬件

当硬件资源受限,需要辅助板一对多的时候,又该怎么办呢

还是大体有两种方案

  1. 假设你的开发板有非常丰富的外设,且这些外设都通过引脚接了出来;根据最受限的资源(譬如你的开发本只有两个DAC输出)的数量,决定了你这块板卡可以一对N的能力;本质上还是之前一对一的方案,只不过用不同的外设分配给不同的待测板
  2. 利用模拟开关实现同一外设测试多块不同的测试板

接下来具体讲讲这第二种方案

模拟开关根据型号的不同,往往有不同的功能,例如CD4067,支持4个控制信号(ABCD),一个使能信号(INMIBIT),通过4个控制信号决定主路和0-15路支路哪一路导通;以此为基础,就可以实现1:16的测试环境搭建

mcu 堆例程,单片机,嵌入式硬件

在测试开始的时候,辅助板通过4个引脚控制ABCD这4个控制信号,决定COMMON IO与哪一个支路导通;这时其他支路截止,不会对测试造成干扰

对于稳定环境的搭建,也可以通过PCB的方式去固化环境,避免环境的维护性较差

可以画一块大板,满足所有需要用到的测试信号,然后待测板再接到这块大板上,这样的环境也是稳定的

也可以画几块小板,小板之间通过级联的方式传递控制信号

假设一块板上只测三个信号,不同的待测DUT接到对应的引脚上,当辅助板与DUT1导通时,三个模拟开关同时导通(因为ABCD这四个信号在不同模拟开关上是串联的);通过这种方式就可以实现,辅助板即和DUT1直连,又和DUT2直连的这种假象了

当然,模拟开关对于高频信号没有直连那么优秀,如果是10MHZ以上的信号,就要考虑别的方案了

mcu 堆例程,单片机,嵌入式硬件

mcu 堆例程,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-830360.html

到了这里,关于MCU原厂是如何对例程进行自动化测试的的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CRM系统如何进行公海池线索分配自动化?

      在销售过程中,线索分配是一个非常重要的环节。传统的线索分配方式往往是由销售主管手动进行,不仅效率低下,还存在着不公平、不灵活的问题。因此,许多企业通过CRM来实现 公海池线索分配自动化 。 CRM可以让用户设置一系列的分配规则,来实现自动化的线索分配给

    2024年02月14日
    浏览(37)
  • 什么是Selenium?如何使用Selenium进行自动化测试?

      Selenium 是一种开源工具,用于在 Web 浏览器上执行自动化测试(使用任何 Web 浏览器进行 Web 应用程序测试)。   等等,先别激动,让我再次重申一下,Selenium 仅可以测试Web应用程序。我们既不能使用 Selenium 测试任何桌面(软件)应用程序,也不能测试任何移动应用程

    2024年02月02日
    浏览(46)
  • chatgpt赋能python:如何利用Python进行自动化办公

    在现代办公环境中,自动化成为了一种趋势。利用计算机程序自动处理重复性劳动,可以提高生产效率和工作质量,同时也能够让工作更加轻松。Python作为一种常用的编程语言,在自动化办公中发挥了重要作用。 自动化办公是指利用计算机程序自动完成办公工作的一种方式。

    2024年02月11日
    浏览(53)
  • 新时代高效记账:自动化智能如何进行财务管理

    随着科技的不断发展,自动化智能已经逐渐渗透到我们生活的各个领域。在财务管理中,自动化智能的应用显得尤为重要。它不仅可以提高财务管理的效率和精度,还能帮助我们更好地规划和掌控公司的财务状况 晨曦记账本提供了多种高效财务管理工具。通过简单的界面,你

    2024年02月07日
    浏览(42)
  • 从零开始学习:如何使用Selenium和Python进行自动化测试?

    安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开

    2024年04月23日
    浏览(77)
  • 如何使用Selenium进行Web自动化测试?一文6个步骤轻松玩转!

    Web自动化测试是现代软件开发过程中至关重要的一环。Selenium是一个强大的自动化测试工具,可以模拟用户在Web浏览器中的操作,实现自动化的测试流程。本文将介绍如何使用Selenium进行Web自动化测试,并附带代码示例,帮助读者快速上手。 环境准备 在开始之前,需要安装

    2024年02月05日
    浏览(46)
  • 如何在 Java 中使用JUnit5进行单元测试和自动化测试

    单元测试和自动化测试是现代软件开发过程中必不可少的环节,可以提高代码质量和开发效率。JUnit5是Java中流行的单元测试框架,本文将介绍如何在Java中使用JUnit5进行单元测试和自动化测试。 单元测试是一种测试方法,用于对软件系统中的最小可测试单元进行测试。这些单

    2024年02月05日
    浏览(53)
  • 教你如何使用自定义测试(Minium)进行微信小程序自动化测试

    目录 前言: 一、 编写用例 基本操作 处理小程序API 处理小程序原生控件 数据驱动 二、 执行用例 本地执行 云测服务测试 三、 最佳实践 四、总结 前言: 微信小程序自动化测试是保障小程序质量的重要手段,Minium是一个可为微信小程序编写自定义测试的自动化测试框架。它

    2024年02月09日
    浏览(53)
  • Web自动化测试-如何进行Selenium页面数据及元素交互?教你一步不漏。

      目录 前言: 一、Selenium简介 二、安装Selenium 1.Windows用户安装Selenium 2.安装Chrome浏览器驱动 三、使用Selenium进行页面数据及元素交互 1.启动浏览器

    2024年02月07日
    浏览(47)
  • 如何通过python写接口自动化脚本对一个需要调用第三方支付的报名流程进行测试?

    对于需要调用第三方支付的报名流程进行接口自动化测试,可以通过以下步骤来编写Python代码: 1. 确认API需求 首先,需要确认报名流程的API需求和预期功能。这涉及到对业务需求的理解和API设计的分析。 2. 安装依赖库 在Python程序中,需要安装requests库(用于发送HTTP请求)和

    2024年02月10日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包