痞子衡嵌入式:如果你嫌MCU板卡工厂验收测试麻烦,不妨试试FATestSuite
任何一个 MCU 板卡从工厂生产出来一定要过验收测试以确保板卡焊接以及所用元器件功能正常这就是所谓的 Factory Acceptance Test(工厂验收测试简称 FAT)。除了工厂自身的必要测试之外一般 MCU 原厂还需提供 MCU 端测试固件程序让工人在板卡上实际跑一遍功能来进一步确认板卡是否正常(不是 OOB 程序而是特意设计的能遍历主芯片外围器件功能的 FAT 程序)。今天痞子衡主要讲得就是这部分跟 MCU 原厂相关的验收测试工作。一、传统FAT方法MCU 原厂准备 FAT 程序传统的方式是基于 SDK 包将板卡涉及的外围器件功能测试全部集成在一个总工程里然后工人将这个单一程序下载到板卡上运行并在串口终端里进行手工交互获取测试结果。这种传统方式有两大弊端一、多个功能测试糅杂在一个总工程里导致这个工程维护比较麻烦并且多个测试对系统的配置之间可能互相影响会引入额外的调试工作二、测试过程在串口终端里交互对工人不太友好并且测试结果存档及与具体板卡对应关系需手工完成。二、全新FATestSuite方式FATestSuite 是一个为 i.MX RT 系列板卡全新设计的 FAT 方法其包含 MCU 端测试固件模板(fat-template-fw)和 PC 端 GUI 工具(MCU-FATestSuite)两部分。我们先来看一下它的测试原理你就能明白它为什么能解决传统 FAT 的弊端。首先基本硬件依赖和传统 FAT 方式一样板卡调试器串口。所不同的是我们将原本一个包含全部测试功能的总工程变回各自独立的测试子工程(实际上 SDK 里本来就是这样的子工程)这样就省去了额外集成与调试维护工作。现在我们有了多个测试程序这时候再设计一个上位机软件让它去逐一加载运行这些测试程序。为了能够让上位机识别单个测试程序运行情况我们在每个程序里额外加上统一的串口打印内容(如下图代码里标黄部分)上位机获取串口打印结果并识别即可。一轮测试结束上位机可以自动生成完整的报告。2.1 特性概述MCU-FATestSuite 工具实际上痞子衡已经维护了近 3 年了第一版 V1.0 于2024年1月份正式发布当前已经是 V3.x 版本功能已经比较成熟了01. 支持i.MXRT5xx/7xx/105x/106x/118x 02. 支持J-LINK方式下载程序 03. 支持调试器类型以及SN号选项 04. 支持多测试用例程序的自动检测、下载和执行 05. 支持串口方式交互程序执行结果 06. 支持若干用户配置选项(jlink设置、串口交互字符、程序加载等待时间、执行结果等待时间) 07. 支持用户芯片与板卡选项 08. 支持板卡序列号文本框输入(被用于测试结果文件名) 09. 支持用户自定义板卡文件夹(放置测试用例程序) 10. 对于测试用例程序需要人工判定结果的情况弹框交互确定结果 11. 一轮测试结束自动保存测试结果进EXCEL/TEXT文件(./report目录下)2.2 MCU端测试固件模板测试用例可以基于 SDK 里的现有例程仅需小小代码改动然后工程换成在内部 SRAM 执行的链接文件生成 .srec 文件(注意无需任何 boot header就是裸 CM 程序镜像内容一开始应该是 ARM 中断向量表)并将该镜像文件放到上位机工具 \MCU-FATestSuite\src\targets\对应芯片以及板卡的文件夹目录下即可。测试固件模板地址 https://github.com/JayHeng/imxrt-fat-template-fw IDE版本IAR EWARM v9.70.3固件模板主要就 \imxrt-fat-template-fw\templates\fat_src 里两个源文件将其添加进 SDK 里例程工程里并在适当地方调用如下接口// 对于例程自身能直接判断结果的情况delay_Time_s 参数设 0 // 对于例程需要人工来判断结果的情况delay_Time_s 参数设非 0 // - 上位机 V2.x 以下真实延时以便人工观察结果也由人工额外记录 // - 上位机 V3.x 开始弹窗让用户反馈结果此时延时时间不重要由弹窗反馈交互决定 void FAT_MagicStart(uint32_t delayTime_s); // 放到代码里最后判定运行正常的地方如果结果需要人工判定则无所谓 void FAT_MagicPass(void); // 放到代码里所有出现异常结果的地方 void FAT_MagicFail(void);2.3 PC端GUI工具整个设计里 PC 端工具是核心这里主要介绍一下上位机工具的使用。工具本身是基于 Python 3.11 开发的但是最终用了 PyInstaller 打包成了 EXE运行时并不依赖 Python 环境。代码也是开源的大家可以二次开发。工具地址 https://github.com/JayHeng/MCU-FATestSuite2.3.1 基本使用步骤当前上位机版本 V3.x 主要支持 J-Link 调试器在使用工具前需要确保安装了 J-Link 驱动以及芯片支持包(Device Patch)确保能够使用 J-Link Commander 连接上主芯片。 上位机工具使用起来步骤很简单便于普通工人操作没有学习成本。1. 双击 \bin\MCU-FATestSuite.exe 打开软件 2. 假定加载方式选J-Link点击 Browse 设置正确的 JLINK.exe 路径 3. 假定测试得 MIMXRT700-EVK(MCU Device、MCU Board作相应设置) 将所有测试程序(.srec格式)放置在 \src\targets\MIMXRT700\FRDM_Rev.A_SCH-96317\ 目录下 4. 在 Board SN 里写入当前板卡唯一识别号 板卡上电 / 换新一块板卡 5. 点击 Reset Test Result 按钮 6. 点击 Open 按钮打开串口(确保串口号与板卡对应)确保状态变为 Close 7. 点击 Detect Test Cases 按钮扫描测试程序 8. 点击 Run Test Cases 按钮开始跑按钮黄色说明正在跑 重复 5、6、7、8 9. 每一轮测试均会在 \report\ 下生成 .text 和 .excel 测试结果报告2.3.2 用户配置项上位机同时也提供了一些用户配置项在 \MCU-FATestSuite\src\targets\xxDevice\fattargetconfig.py 文件中配置是动态加载的无需重新编 EXE。这里最需要特别关注的是 waitAppTimeout 配置如果测试用例是一个能够自我判定结果的情况但是需要很长时间才能返回结果那么就需要调整这里的设置值。# 连接 J-Link 时的配置 jlinkDevice MIMXRT798S_M33_0 jlinkInterface SWD jlinkSpeedInkHz 4000 # 程序中串口数据刷新间隔(thread进程重入时间) uartRecvInterval 0.5 # seconds # 测试程序APP与工具接头字符 fatLogStart FAT FW Start fatLogPass FAT FW Pass fatLogFail FAT FW Fail fatLogDelay DelayTime # 从调用 J-Link 加载程序开始到接收到 fatLogStart 的最大等待时间 loadAppTimeout 5.0 # seconds # loadAppTimeout 时间内未收到 fatLogStart重复调用 J-Link 加载程序次数失败返回 LOAD-FAIL 测试结果 loadAppRetryCount 3 # 从接收到 fatLogStart 开始到接收到 fatLogPass/fatLogFail 的最大等待时间超时可返回 RUN-TIMEOUT 测试结果 waitAppTimeout 10.0 # seconds

相关新闻

互联网高薪加班现象与核心技术人才市场分析

互联网高薪加班现象与核心技术人才市场分析

1. 互联网行业高薪加班现象深度解析最近一则关于某电商平台以三倍薪资征集春节加班员工的消息引发广泛讨论,其中研发岗位日薪高达1.5万元的数字尤其引人注目。作为在互联网行业深耕多年的技术人,我想从行业现状、薪酬结构和职业发展等角度,聊…

2026/8/9 18:58:40 阅读更多 →
VisualCppRedist AIO:一站式解决Windows C++运行时依赖的终极方案

VisualCppRedist AIO:一站式解决Windows C++运行时依赖的终极方案

VisualCppRedist AIO:一站式解决Windows C运行时依赖的终极方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist VisualCppRedist AIO是一个开源项目&…

2026/8/9 18:58:40 阅读更多 →
CreuSAT开发者教程:用Rust实现高效验证的SAT求解算法

CreuSAT开发者教程:用Rust实现高效验证的SAT求解算法

CreuSAT开发者教程:用Rust实现高效验证的SAT求解算法 【免费下载链接】CreuSAT CreuSAT - A formally verified SAT solver written in Rust and verified with Creusot. 项目地址: https://gitcode.com/gh_mirrors/cr/CreuSAT CreuSAT是一个用Rust编写并通过…

2026/8/9 18:58:40 阅读更多 →

最新新闻

Python+MySQL数据分析实战:从数据库设计到可视化全流程解析

Python+MySQL数据分析实战:从数据库设计到可视化全流程解析

这次我们来看一个能直接写到简历里的实战项目:基于 Python MySQL 的霸王茶姬数据分析与销量可视化。对于想找数据分析、后端开发或商业智能相关工作的同学来说,一个结构完整、技术栈清晰、有实际业务场景的项目经验至关重要。这个项目就提供了一个从数据…

2026/8/9 22:58:36 阅读更多 →
基于Python和TensorFlow架构的高校手写数字识别系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于Python和TensorFlow架构的高校手写数字识别系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于Python和TensorFlow架构的高校手写数字识别系统(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ (包含设计思路和实验报告) 一、功能介绍 高精度手写数字识别: 利用卷积神经网络(CNN&#xff…

2026/8/9 22:58:36 阅读更多 →
【报告+源码+数据集】基于YOLO11+Flask的玉米病害检测系统2(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

【报告+源码+数据集】基于YOLO11+Flask的玉米病害检测系统2(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

【报告源码数据集】基于YOLO11Flask的玉米病害检测系统2(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 下单后可得到:数据集(下面有数据集信息的详细介绍)项目(包括项目UI界面源码详细的环境配置文档训练好的模型,运行…

2026/8/9 22:58:36 阅读更多 →
基于YOLOv8的校园安全隐患识别系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于YOLOv8的校园安全隐患识别系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于YOLOv8的校园安全隐患识别系统(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 内容包括代码、报告、数据、演示视频。 本研究以校园安全智能监测为应用场景,基于包含2266张图像的6类校园安全隐患数据集(人员摔倒、交…

2026/8/9 22:58:36 阅读更多 →
本地AI视频生成实战:用Bernini+LTX2.3+ComfyUI打造可控创作流

本地AI视频生成实战:用Bernini+LTX2.3+ComfyUI打造可控创作流

最近几个月,很多尝试AI视频的朋友都陷入了一种“平台依赖症”:想做个创意短片,第一反应是去某个在线平台排队,忍受漫长的等待和时好时坏的效果,最后可能因为积分、时长或网络问题而中断。整个过程充满了不确定性&#…

2026/8/9 22:58:36 阅读更多 →
为什么选择EFCore.Visualizer?对比其他EF Core调试工具的优势分析

为什么选择EFCore.Visualizer?对比其他EF Core调试工具的优势分析

为什么选择EFCore.Visualizer?对比其他EF Core调试工具的优势分析 【免费下载链接】EFCore.Visualizer Entity Framework Core queries debugger visualizer. 项目地址: https://gitcode.com/gh_mirrors/ef/EFCore.Visualizer EFCore.Visualizer是一款专为En…

2026/8/9 22:57:36 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →