关于原板摄像头的使用问题

由于例程rza2m_drp_simple_isp_sample1_freerots_gcc中摄像头的视野过小,我们计划将其调至最大,将r_bcd_camera.h中的R_BCD_CAMERA_SIZE修改为1M,将camera_imx219_b.h中的CAM_VIN_PRECLIP_START_Y和X修改为0u,CAM_VIN_PERCLIP_WIDTH_Y和X修改为800u和1280u,但是make过程中出现了make:*** [all]error 2的编译错误并提示我们CACHED_RAM变量overflow(溢出),请问该怎么解决这个问题呢?

  • 将摄像头分辨率和LCD屏幕分辨率增大后,超出了片上4MB buffer,因此编译出现这个错误。
    方法1:
    将r_bcd_camera.h中的R_BCD_CAMERA_FRAME_BUF_NUM从2改成1,采用单mipi缓冲,通常应用可以,但如果需要捕捉高动态,高精度的图像会有问题
    将r_bcd_lcd.c中的VIDEO_BUFFER_NUM和GRAPHICS2_BUFFER_NUM从2改成1,都采用单buffer
    另外ld脚本可做如下修改:
    UNCACHED_RAM可以减小,从0x10000 减小到0x1000, 多出的空间加到CACHED_RAM里

    方法2:
    使能HyperRAM或SDRAM,想部分bss段,heap放入外部内存,保留MIPI camera的双buffer,但还是需要将video和graphic改成单buffer。
    如果你定义了比较大的缓冲区buffer,也可以放到外部SDRAM,但是不能将720P以上的MIPI buffer或720P以上的video/graphic buffer放到外部SDRAM,带宽会有问题。
  • 采用上述方法1设置之后,缓冲区大小不够的问题确实得到了解决,但是摄像头传送的图像色彩成块并且闪烁不清,我们认为是数据传输速度过快,另一方面可能我们其它地区修改不当,仍然没有达到我们想要的目标(),由于我们并不做高速摄像(每秒10帧左右即可),所以并不需要考虑速度的问题,希望能给出一个比较完整的修改方案。然后就是通过查看例程文档,里面关于摄像头分辨率设置以及数据路径的文档并不详细,对我们而言开发有点困难,所以希望获得一点建议,谢谢
  • 参考这个工程,里面摄像头配置是1280x720输出
    www.renesas.com/.../D6004379.html
  • 我用这个例程将DRP库改成了彩色(YCbCr),同时将LCD显示也改成了彩色(YCbCr),但是不知道为什么一直有分屏的问题,屏幕显示不正常
  • 可能是r_bcd_lcd.c或r_bcd_lcd.h中某些设定修改有问题,着重看一下