1# RGA模块SLT测试工具 2 3 4 5## 概述 6 7该工具用于芯片SLT阶段使用,可以通过配置实现对RGA模块硬件进行测验。 8 9 10 11## 使用说明 12 13### 前置条件 14 15#### 图像准备 16 17由于RGA硬件执行需要外部输入图像进行处理,所以需要提前准备对应的图片并确保将图像存入设备指定目录。 18 19图像存储的目录可以在slt_config.h中进行配置,文件命名规则如下: 20 21- Raster mode 22 23``` 24in%dw%d-h%d-%s.bin 25out%dw%d-h%d-%s.bin 26 27示例: 281280×720 RGBA8888的输入图像: in0w1280-h720-rgba8888.bin 291280×720 RGBA8888的输出图像: out0w1280-h720-rgba8888.bin 30``` 31 32- FBC mode 33 34``` 35in%dw%d-h%d-%s-afbc.bin 36out%dw%d-h%d-%s-afbc.bin 37 38示例: 391280×720 RGBA8888的输入图像: in0w1280-h720-rgba8888-afbc.bin 401280×720 RGBA8888的输出图像: out0w1280-h720-rgba8888-afbc.bin 41``` 42 43> 参数解释如下: 44> 45> 输入文件为 in , 输出文件为 out 46> --->第一个%d 是文件的索引, 一般为 0, 用于区别格式及宽高完全相同的文件 47> --->第二个%d 是宽的意思, 这里的宽一般指虚宽 48> --->第三个%d 是高的意思, 这里的高一般指虚高 49> --->第四个%s 是格式的名字。 50 51 52 53#### 内存限制 54 55由于RGA2硬件不支持大于32位的物理地址,所以建议测试环境保证地址映射在0~4G地址空间以内。 56 57 58 59#### 编译配置 60 61在工具编译前,可以通过修改 slt_config.h 配置测试工具,该文件配置可以参考chip_config中的template进行替换使用。 62 63| 配置 | 说明 | 64| :--------------------------- | :----------------------------------------------------------- | 65| IM2D_SLT_THREAD_EN | 使能该配置后,将使能多线程模式,每个case都单独在一个线程运行。 | 66| IM2D_SLT_THREAD_MAX | 多线程模式有效,配置最大的线程数量。 | 67| IM2D_SLT_WHILE_EN | 使能该配置后,将使能测试case循环模式。 | 68| IM2D_SLT_WHILE_NUM | 循环模式有效,测试case循环次数。 | 69| IM2D_SLT_DRM_BUFFER_EN | 使能该配置后,测试工具的内存分配器将选择DRM。 | 70| IM2D_SLT_GRAPHICBUFFER_EN | 使能该配置后,测试工具的内存分配器将选择Gralloc。 | 71| IM2D_SLT_RK_DMA_HEAP_EN | 使能该配置后,测试工具的内存分配器将选择rk_dma_deap。 | 72| IM2D_SLT_BUFFER_CACHEABLE | 使能该配置后,测试工具将申请cacheable的内存。 | 73| IM2D_SLT_BUFFER_PHY_EN | 使能该配置后,测试工具将申请使用物理地址。 | 74| IM2D_SLT_TEST_RGA2_EN | 使能该配置后,将使能RGA2 拷贝测试case。 | 75| IM2D_SLT_TEST_RGA3_0_EN | 使能该配置后,将使能RGA3 core0 拷贝测试case。 | 76| IM2D_SLT_TEST_RGA3_1_EN | 使能该配置后,将使能RGA3 core1 拷贝测试case。 | 77| IM2D_SLT_TEST_RGA3_0_FBC_EN | 使能该配置后,将使能RGA3 core0 FBC模式 拷贝测试case。 | 78| IM2D_SLT_TEST_RGA3_1_FBC_EN | 使能该配置后,将使能RGA3 core1 FBC模式 拷贝测试case。 | 79| IM2D_SLT_DEFAULT_WIDTH | 默认的图像宽。 | 80| IM2D_SLT_DEFAULT_HWIGHT | 默认的图像高。 | 81| IM2D_SLT_DEFAULT_FORMAT | 默认的图像格式。 | 82| IM2D_SLT_DEFAULT_INPUT_PATH | 默认的输入图像路径 | 83| IM2D_SLT_DEFAULT_OUTPUT_PATH | 默认的输出图像路径 | 84 85 86 87### 编译 88 89#### Android 90 91在配置好Android SDK编译环境后,在源码目录下使用如下命令编译即可。 92 93``` 94mm 95``` 96 97 98 99#### Linux 100 101- cmake 102 103 - 修改librga源码根目录下的**/cmake/buildroot.cmake**文件。执行以下脚本完成编译: 104 105 ``` 106 $ chmod +x ./cmake-linux.sh 107 $ ./cmake-linux.sh 108 ``` 109 110 **[编译选项]** 111 112 1. 指定TOOLCHAIN_HOME为交叉编译工具的路径 113 2. 指定CMAKE_C_COMPILER为gcc编译命令的路径 114 3. 指定CMAKE_CXX_COMPILER为g++编译命令的路径 115 116 - 前级librga目录未编译时,需要修改librga.so的链接路径: 117 118 ``` 119 vim CmakeList.txt +82 120 修改 target_link_libraries(im2d_slt librga.so)路径 121 ``` 122 123 124 125### 工具运行 126 127将编译生成的im2d_slt 推入设备后,直接运行即可。 128 129 130 131## 结果说明 132 133如果出现以下日志,则说明测试成功。 134 135``` 136:/ # im2d_slt 137------------------------------------------------- 138ID[1]: RGA3_core0 imcopy 1 time success! 139ID[1]: RGA3_core0 check buffer 1 time success! 140ID[1]: RGA3_core0 imcopy 2 time success! 141ID[1]: RGA3_core0 check buffer 2 time success! 142ID[1]: RGA3_core0 imcopy 3 time success! 143ID[1]: RGA3_core0 check buffer 3 time success! 144ID[1] RGA3_core0 run end! 145------------------------------------------------- 146im2d api slt success! 147``` 148 149