烤机测试
适用于长时间的老化测试场景。 支持特性:
- 不需要重新烧写镜像,省去量产环境的镜像文件管理麻烦
- 只需准备一个存有测试数据的SD卡、或者U盘,即插即测
目前已支持的测试项:
- 视频文件循环播放
源码结构说明
本模块源码位于 packages/artinchip/burn-in
目录结构如下
packages
|--artinchip
|-burn-in
| |-burn_in.h
| |-burn_in.c //主程序
| |-burn_in_player.c //视频文件测试程序
| |-burn_in_xxx.c //后续增加的烤机测试程序
1
2
3
4
5
6
7
2
3
4
5
6
7
burn_in.c 负责启动各测试项,后续增加测试项,需要添加到auto_burn_in_test函数中。
C
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);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
视频文件的循环播放步骤
burn_in_player 配置
在 Luban-Lite 根目录下执行 scons --menuconfig
或 me
,按如下方式配置打开player
local packages options--->
ArtInChip packages options--->
aic-mpp--->
[*] Enable player interface and demo
1
2
3
4
2
3
4
在 Luban-Lite 根目录下执行 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
1
2
3
4
5
6
2
3
4
5
6
准备视频文件
- 需要准备一个U盘、或者 SD卡
- 在根目录中创建文件夹:
aic_test/video
,并将要测试的视频文件拷贝进 video 目录
执行测试
将U盘、或者 SD卡 插到板子上,然后重启板子。重启后,板子会自动进入烤机测试,持续的循环执行包括播放视频的所有测试项。
测试结果
在测试串口或log文件看到如下格式的字符串
- play file_name ok 播放成功
- play file_name fail 播放失败
增加其他测试项
后续增加测试可以参考burn_in_player.c,由于每个测试项测试内容不同,后续添加的测试项需要自己添加测试步骤。
!小技巧
调用的测试命令,需要使用支持返回值,能判断测试结果是否正确,比如 burn_in_player 调用了 player_demo 命令,player_demo 要能返回测试的结果。