淺析v4l2架構


V4l2架構

sensor

通過下面設備樹我可以看到ov13850出圖需要的硬件支撐sensor,mipi,isp,數據流從下至上

sensor作為i2c1的子節點,向上綁定mipi接口

 

通過kernel\drivers\media\i2c\ov13850.c注冊驅動

 

ov13850_probe通過v4l2_i2c_subdev_init(sd, client, &ov13850_subdev_ops)賦值操作函數;

再通過v4l2_async_register_subdev_sensor_commonv4l2框架注冊一個struct v4l2_subdev

mipi

mipi主要向下連接傳感器,向上連接isp

 

kernel\drivers\phy\rockchip\phy-rockchip-mipi-rx.c主要是配置mipi的寄存器

 

先是通過v4l2_subdev_init(sd, &mipidphy_subdev_ops)初始化操作函數

再通過v4l2_async_notifier_parse_fwnode_endpoints_by_portsensorisp綁定到對應的mipi接口上

最后通過v4l2_async_register_subdev注冊到v4l2框架

isp

isp向下綁定mipi接口

 

kernel\drivers\media\platform\rockchip\isp1\dev.cisp驅動

 

probe最終通過調用v4l2_subdev_init初始化操作函數

通過v4l2_device_register_subdev注冊到v4l2框架

v4l2

v4l2在應用層使用VIDIOC_STREAMON命令開啟流,在

kernel\drivers\media\v4l2-core\v4l2-ioctl.c會調用v4l_streamon來開流

 

下面我們就通過tracefunction_graph,set_ftrace_filter,set_ftrace_notrace功能,然后運行取圖程序;再通過cat trace查看函數調用關系;再去看源碼,可謂是一目了然

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM