烤机测试
4 Dec 2024
Read time: 2 minute(s)
烤机测试是一种长时间的老化测试,用于确保硬件在持续运行的情况下的稳定性和可靠性。 烤机测试具有以下特性:
-
不需要重新烧写镜像,省去量产环境的镜像文件管理麻烦。
-
只需准备一个存有测试数据的 SD 卡、或者 U 盘,即插即测。
目前已支持的测试项:
源码结构说明
烤机测试的源码位于 packages/artinchip/burn-in 目录,结构如下:
packages
|--artinchip
|-burn-in
| |-burn_in.h
| |-burn_in.c //主程序
| |-burn_in_player.c //视频文件测试程序
| |-burn_in_xxx.c //后续增加的烤机测试程序
burn_in.c 负责启动已经配置好的测试项。如需增加新的测试项,需要将其添加到
auto_burn_in_test
函数中。
static void auto_burn_in_test(void *arg)
{
// wait some time for resource
usleep(5*1000*1000);
#ifdef LPKG_BURN_IN_PLAYER_ENABLE
burn_in_player_test(NULL);
#endif
}
int auto_burn_in(void)
{
aicos_thread_t thid = NULL;
thid = aicos_thread_create("auto_burn_in_test", 8192, 2, auto_burn_in_test, NULL);
if (thid == NULL) {
BURN_PRINT_ERR("Failed to create thread\n");
return -1;
}
return 0;
}
INIT_APP_EXPORT(auto_burn_in);
视频文件的循环播放
- burn_in_player 配置
-
在 Baremetal 根目录下执行 scons --menuconfig 或 me 命令,打开配置菜单。在配置菜单中,依次选择以下选项,打开 player。
local packages options---> ArtInChip packages options---> aic-mpp---> [*] Enable player interface and demo
-
在 Baremetal 根目录下执行 scons --menuconfig 或 me命令。在配置菜单中,依次选择以下选项配置循环次数和打印输出:
- 默认循环次数:10000000
- log 输出目录:测试文件
- log 名字:以测试时间命名,例如 yyyy-mm-dd-hh-mm-ss.log
local packages options---> ArtInChip packages options---> burn_in test---> [*] test player [*] set play file/dir loop num [*] output log to serial interface
-
-
准备视频文件
-
需要准备一个 U 盘、或者 SD 卡
-
在 U 盘或 SD 卡的根目录中创建一个aic_test文件夹。
-
在aic_test 文件夹中创建一个video 子文件夹。
-
将需要测试的视频文件拷贝进 video 子文件夹中。注: 确保视频文件格式支持播放。
-
-
执行测试
- 将准备好的 U 盘或者 SD 卡插到板子上。
- 重启板子,确保板子能够识别到 U 盘或 SD 卡。
- 等待板子自动进入烤机测试,并开始持续的循环执行包括播放视频的所有测试项。注: 观察串口输出或日志文件,查看测试结果。
根据测试结果进行相应的处理和分析。
增加其他测试项
由于不同测试项的测试内容不同,后续如需添加新的测试项,需要自行添加测试步骤。参考 burn_in_player.c 文件,可了解已有测试项的实现方式和调用方式。
提示: 对于每个测试项调用的测试命令,确保有返回值或状态码来表示测试结果,以便后续判断测试是否成功。比如
burn_in_player 调用了 player_demo 命令,player_demo 要能返回测试的结果。