Decompress
该示例演示IMDC的解压缩功能。
环境需求
该示例支持以下开发套件:
硬件平台 |
设备名称 |
---|---|
RTL87x2G HDK |
RTL87x2G EVB |
更多信息请参考快速入门。
硬件连线
无
配置选项
无
编译和下载
该示例的工程路径如下:
Project file: samples\peripheral\imdc\decompress\proj\rtl87x2g\mdk
Project file: samples\peripheral\imdc\decompress\proj\rtl87x2g\gcc
请按照以下步骤操作构建并运行该示例:
打开工程文件。
按照 快速入门 中 编译APP Image 给出的步骤构建目标文件。
编译成功后,在路径
mdk\bin
下会生成 app binapp_MP_xxx.bin
文件。按下复位按键,开始运行。
测试验证
运行代码后在DebugAnalyzer工具内观察log即为解压成功。
decompress procedure succeeded
代码介绍
该章节分为以下几个部分:
源码路径
工程路径:
sdk\samples\peripheral\imdc\decompress\proj
源码路径:
sdk\samples\peripheral\imdc\decompress\src
该工程的工程文件代码结构如下:
└── Project: decompress
└── imdc
├── config includes project construct configuration
├── display includes the peripheral drivers related with display
└── Device includes startup code
├── startup_rtl.c
└── system_rtl.c
├── CMSIS includes CMSIS header files
├── CMSE Library non-secure callable lib
├── Lib includes all binary symbol files that user application is built on
└── rtl87x2g_io.lib
├── Peripheral includes all peripheral drivers and module code used by the application
├── rtl_rcc.c
├── rtl_pinmux.c
└── APP source code of IMDC sample
├── main_ns.c
└── imdc_test.c
初始化
初始化流程包含在 IMDC_test()
中。
解析压缩图片的信息。
小技巧
对于图片格式的选择,详见 常见问题 。
配置需要解压的图片范围。
IMDC_decode_range range;
range.start_column = 0;
range.end_column = header->raw_pic_width - 1;
range.start_line = 0;
range.end_line = header->raw_pic_height - 1;
指定需要使用的DMA通道和存储解压后数据的位置。
IMDC_DMA_config dma_cfg;
dma_cfg.output_buf = (uint32_t *)buf;
dma_cfg.RX_DMA_channel_num = 0;
dma_cfg.TX_DMA_channel_num = 1;
功能实现
执行 IMDC_Decode()
后,解压完成的数据会与标准数据进行比对。如果产生错误,能够观察到产生错误的地址和数据。
常见问题
选取待解压图片
在文件 imdc_test_source.h
中找到需要解压的格式,并将该格式前的宏定义改写为1,同时确保该文件中其他宏定义全部为0。