Edit online

烤机测试

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);

视频文件的循环播放

  1. burn_in_player 配置
    1. Luban-Lite 根目录下执行 scons --menuconfigme 命令,打开配置菜单。在配置菜单中,依次选择以下选项,打开 player。
      local packages options--->
          ArtInChip packages options--->
              aic-mpp--->
                  [*]   Enable player interface and demo
    2. Luban-Lite 根目录下执行 scons --menuconfigme命令。在配置菜单中,依次选择以下选项配置循环次数和打印输出:
      • 默认循环次数: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
  2. 准备视频文件
    1. 需要准备一个 U 盘、或者 SD 卡

    2. 在 U 盘或 SD 卡的根目录中创建一个aic_test文件夹。

    3. aic_test 文件夹中创建一个video 子文件夹。

    4. 将需要测试的视频文件拷贝进 video 子文件夹中。
      注: 确保视频文件格式支持播放。
  3. 执行测试
    1. 将准备好的 U 盘或者 SD 卡插到板子上。
    2. 重启板子,确保板子能够识别到 U 盘或 SD 卡。
    3. 等待板子自动进入烤机测试,并开始持续的循环执行包括播放视频的所有测试项。
      注: 观察串口输出或日志文件,查看测试结果。

    根据测试结果进行相应的处理和分析。

增加其他测试项

由于不同测试项的测试内容不同,后续如需添加新的测试项,需要自行添加测试步骤。参考 burn_in_player.c 文件,可了解已有测试项的实现方式和调用方式。

提示: 对于每个测试项调用的测试命令,确保有返回值或状态码来表示测试结果,以便后续判断测试是否成功。比如 burn_in_player 调用了 player_demo 命令,player_demo 要能返回测试的结果。