Difference between revisions of "FAQ on RK35xx Platform/zh"

From wiki_veye
Jump to navigation Jump to search
(Created page with "RK35xx平台的板卡多元化,因此常常需要进行驱动移植。驱动移植的方法参考github上驱动源码的说明。此处,我们列出客户在将我们的...")
 
 
(One intermediate revision by the same user not shown)
Line 17: Line 17:
 
文件中,增加对MEDIA_BUS_FMT_Y8_1X8、MEDIA_BUS_FMT_Y10_1X10、MEDIA_BUS_FMT_Y12_1X12三种数据格式的支持。
 
文件中,增加对MEDIA_BUS_FMT_Y8_1X8、MEDIA_BUS_FMT_Y10_1X10、MEDIA_BUS_FMT_Y12_1X12三种数据格式的支持。
  
主要涉及到的函数如下:
+
可以从这个[https://wiki.veye.cc/images/6/65/Capture.7z 链接]下载。
  
<code>static unsigned char get_data_type(u32 pixelformat, u8 cmd_mode_en)</code>
+
=== v4l2-ctl命令保存图片大小为0 ===
 +
使用<code>v4l2-ctl -d /dev/video0 --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY --stream-mmap --stream-count=20 --stream-to=y8-${WIDTH}x${HEIGHT}.raw</code>命令抓取图片,没有任何报错,但是图片大小为0。
  
<code>{</code>
+
*常见平台:
  
<code>switch (pixelformat) {</code>
+
飞凌OK3588-C、临滴LKD3588 平台。
  
<code>/* csi raw8 */</code>
+
* 解决方案:
  
<code>case MEDIA_BUS_FMT_SBGGR8_1X8:</code>
+
建议先使用yavta 命令替代v4l2-ctl实现抓取图片并保存的功能。
  
<code>case MEDIA_BUS_FMT_SGBRG8_1X8:</code>
+
<br />
 
 
<code>case MEDIA_BUS_FMT_SGRBG8_1X8:</code>
 
 
 
<code>case MEDIA_BUS_FMT_SRGGB8_1X8:</code>
 
 
 
<code>case MEDIA_BUS_FMT_Y8_1X8:</code>
 
 
 
<code>return 0x2a;</code>
 
 
 
<code>/* csi raw10 */</code>
 
 
 
<code>case MEDIA_BUS_FMT_SBGGR10_1X10:</code>
 
 
 
<code>case MEDIA_BUS_FMT_SGBRG10_1X10:</code>
 
 
 
<code>case MEDIA_BUS_FMT_SGRBG10_1X10:</code>
 
 
 
<code>case MEDIA_BUS_FMT_SRGGB10_1X10:</code>
 
 
 
<code>case MEDIA_BUS_FMT_Y10_1X10:</code>
 
 
 
<code>return 0x2b;</code>
 
 
 
<code>/* csi raw12 */</code>
 
 
 
<code>case MEDIA_BUS_FMT_SBGGR12_1X12:</code>
 
 
 
<code>case MEDIA_BUS_FMT_SGBRG12_1X12:</code>
 
 
 
<code>case MEDIA_BUS_FMT_SGRBG12_1X12:</code>
 
 
 
<code>case MEDIA_BUS_FMT_SRGGB12_1X12:</code>
 
 
 
<code>case MEDIA_BUS_FMT_Y12_1X12:</code>
 
 
 
<code>return 0x2c;</code>
 
 
 
<code>/* csi uyvy 422 */</code>
 
 
 
<code>case MEDIA_BUS_FMT_UYVY8_2X8:</code>
 
 
 
<code>case MEDIA_BUS_FMT_VYUY8_2X8:</code>
 
 
 
<code>case MEDIA_BUS_FMT_YUYV8_2X8:</code>
 
 
 
<code>case MEDIA_BUS_FMT_YVYU8_2X8:</code>
 
 
 
<code>return 0x1e;</code>
 
 
 
<code>case MEDIA_BUS_FMT_RGB888_1X24: {</code>
 
 
 
<code>if (cmd_mode_en) /* dsi command mode*/</code>
 
 
 
<code>return 0x39;</code>
 
 
 
<code>else /* dsi video mode */</code>
 
 
 
<code>return 0x3e;</code>
 
 
 
<code>}</code>
 
 
 
<code>case MEDIA_BUS_FMT_EBD_1X8:</code>
 
 
 
<code>return 0x12;</code>
 
 
 
<code>case MEDIA_BUS_FMT_SPD_2X8:</code>
 
 
 
<code>return 0x2f;</code>
 
 
 
<code>default:</code>
 
 
 
<code>return 0x2b;</code>
 
 
 
<code>}</code>
 
 
 
<code>}</code>
 

Latest revision as of 14:34, 21 March 2024

RK35xx平台的板卡多元化,因此常常需要进行驱动移植。驱动移植的方法参考github上驱动源码的说明。此处,我们列出客户在将我们的驱动移植到不同的板卡时经常遇到的问题和解决方法。

1 rkcif-mipi-lvds2: ERROR: csi size err, intstat:0x1000000, lastline:0!!

  • 常见平台:

飞凌OK3588-C、临滴LKD3588 平台,使用MV和RAW系列相机时遇到。

  • 问题原因:

kernel的rkcif驱动中缺少MV系列相机所支持的数据格式。

  • 解决方案:

kernel\drivers\media\platform\rockchip\cif\capture.c

文件中,增加对MEDIA_BUS_FMT_Y8_1X8、MEDIA_BUS_FMT_Y10_1X10、MEDIA_BUS_FMT_Y12_1X12三种数据格式的支持。

可以从这个链接下载。

2 v4l2-ctl命令保存图片大小为0

使用v4l2-ctl -d /dev/video0 --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=GREY --stream-mmap --stream-count=20 --stream-to=y8-${WIDTH}x${HEIGHT}.raw命令抓取图片,没有任何报错,但是图片大小为0。

  • 常见平台:

飞凌OK3588-C、临滴LKD3588 平台。

  • 解决方案:

建议先使用yavta 命令替代v4l2-ctl实现抓取图片并保存的功能。