一、 概述
1、芯片性能介绍
S32V234是一款视觉处理MPU,由多个 ARM®Cortex®-A53、一个 Cortex- m4、专用的加速图像视觉处理任务的模块和处理器组成。设备架构的开发考虑了可伸缩性。它使用户能够利用领先的摄像头视觉模块,例如 APEX2,ISP,GPU 等。 它提供了一个全面支持的开发环境,包括从库到 OS 到全面应用程序的工具。
2、功能介绍
该芯片可以接入 MIPI 摄像头或者 MIPI 转接板来接入多个摄像头来输入图像,本文讲述使用 S32DS 开发环境创建一个可以在 S32V234 芯片上运行 SONY224 这款MIPI摄像头的工程,本文的前提是已经安装好 S32DS 工具。
二、使用 S32DS 开发环境创建工程
1、搭建一个 MIPI 摄像头最简单的 Graph
【MIPI Engine】 → 【SRAM】 → 【IPUS/IPUV 算子】 → 【SRAM】→【FDMA】→【DDR】
2、介绍各个模块的设置
(1)MIPI Engine 设置
注意:Camera 行数填错可能会导致滚屏
(2)MIPI 输出端口设置
(3)MIPI 的 SRAM Buffer 设置,[0][1] 通道没有需要设置的参数
(4)IPUS Kernel 算子设置
(5)IPUS Kernel 算子输入端口设置
注意:这里有两个输入端口,A[1] 的“Line Offset”应为1
(6)IPUS Kernel 算子输出端口设置
(7)Debayer 的 SRAM Buffer 设置,[0] 通道没有需要设置的参数
(8)FastDMA 的设置
(9)FastMDA 输出 DDRBuffer 设置
注意:总行数 (YSize) 必须 <= IPU 输出的总行数,否则程序无法运行。
3、建立 ISP Application 工程
(1)建立新的 ISP Application 工程
(2)Emmit 设置 ( 由自己绘制的 Graph 生成代码的相关设置 )
(3)有两个页面需要设置,第一个是 [Main]
(4)第二个需要设置的页面是 [Common]
4、修改代码
(1)确认 A53_gen 目录下产生了如下文件,并把其中如下的头文件添加到 main.cpp 中
(2)在 main.cpp 的 io_config 函数中添加如下代码:
sdi_FdmaIO *lpFdma = (sdi_FdmaIO*)lpGrabber->IoGet(SEQ_OTHRIX_FDMA); SDI_ImageDescriptor lFrmDesc = SDI_ImageDescriptor(WIDTH_DDR, HEIGHT_DDR, RGB888); lpFdma->DdrBufferDescSet(FDMA_IX_FDMA_0,lFrmDesc); lpFdma->DdrBuffersAlloc(DDR_OUT_BUFFER_CNT); |
(3)其中 FDMA_IX_FDMA_0 这里需要替换为 isp_vgt_test_graph_c.h 中的对应 FDMA 名称,即如下的 FDMA_IX_FDMA_Out, 这个名称来自于绘制 Graph 时给 FDMA 模块命的名称
(4)最终添加内容如下图 ( WIDTH 和 HEIGHT 要替换成 isp_user_define.h 中的WIDTH_DDR 和 HEIGHT_DDR, CNT 要使用 isp_user_define.h 中的 DDR_OUT_BUFFER_CNT )
(5)把 #define DCU_BPP DCU_BPP_YCbCr422 修改为 #define DCU_BPP DCU_BPP_24
(6)[ 保存 ] 之后,选择 [A53] 编译即可
(7)最终生成的 elf 文件放入 Demo 板即可运行。
参考资料
[1] S32V234RM_Rev2.1.pdf
评论