Linux kernel Linux在哪里调用摄像头驱动程序来进行图像传输
OV5640摄像头的功能有限Linux kernel Linux在哪里调用摄像头驱动程序来进行图像传输,linux-kernel,camera,driver,imx6,Linux Kernel,Camera,Driver,Imx6,OV5640摄像头的功能有限 静态结构i2c_驱动程序ov5640_i2c_驱动程序={ .司机={ .name=“ov5640”, .of_match_table=ov5640_dt_id, }, .id_table=ov5640_id, .probe=ov5640_探头, .移除=ov5640_移除, }; 这些功能包括名称、探测和删除 我不太熟悉驱动程序,但我找不到驱动程序中渲染像素的任何部分,因此我可以将它们存储到阵列中。我也找不到任何用于读取像素的虚拟内存地址 捕获的图像数据传输发生
静态结构i2c_驱动程序ov5640_i2c_驱动程序={
.司机={
.name=“ov5640”,
.of_match_table=ov5640_dt_id,
},
.id_table=ov5640_id,
.probe=ov5640_探头,
.移除=ov5640_移除,
};
这些功能包括名称
、探测
和删除
我不太熟悉驱动程序,但我找不到驱动程序中渲染像素的任何部分,因此我可以将它们存储到阵列中。我也找不到任何用于读取像素的虚拟内存地址
捕获的图像数据传输发生在代码的哪一部分?
我在找两个位置:一个在驾驶员位置,另一个在呼叫驾驶员的更高级别。简短回答
您可以从以下位置捕获视频帧:
示例:
“ovti,ov5640”
示例:
“fsl,imx6-mipi-csi2”
示例:
“fsl,imx6q ipu”
- 捕获子系统驱动程序可以与IPU驱动程序分离
示例:“fsl,imx捕获子系统”
drivers/media/platform/
的内部,在drivers/staging/media/
中,它应该在那里的某个地方。另外,浏览您的设备树文件,ov5640
节点应该引用port
节点中的CSI/IPU驱动程序$grep-lIr V4L2\u BUF\u TYPE\u VIDEO\u捕获驱动程序/媒体/平台/*驱动程序/登台/媒体/*
或者尝试从设备树文件中查找。例如,在iMX6平台上,所有相关节点如下所示:
ov5640:camera@3c {
compatible=“ovti,ov5640”;
港口{
ov5640_to_mipi_csi2:endpoint{remote endpoint=;};
};
};
mipi_csi:mipi@21e0000 {
compatible=“fsl,imx6-mipi-csi2”;
port@0 {
mipi_csi2_in:endpoint{remoteendpoint=;};
};
};
ipu1:ipu@2800000 {
compatible=“fsl,imx6q ipu”;
ipu1\U csi0:port@0 { };
};
捕获子系统{
compatible=“fsl,imx捕获子系统”;
端口=;
};
但我建议您尝试从用户空间应用程序捕获视频帧,就像这样,因为在内核驱动程序中这样做可能是一项困难的任务。此外,在用户空间应用程序中,将捕获的帧保存到jpg文件会更容易,就像这样
iMX6资源
有很多关于iMX6 w.r.t.摄像头的文档:
- 内核iMX6 V4L2文档:
- iMX6 TRM(技术参考手册):
- iMX Linux参考手册:
- 申请须知如
- 像这样的幻灯片: