- Android系統級深入開發
- 韓超 梁泉
- 336字
- 2018-12-29 13:39:38
5.4.5 攝像頭的驅動程序
MSM的攝像頭系統構成的方式為經典的Camera驅動+Sensor驅動方式。其驅動程序是基于Video for Linux2的攝像頭驅動程序。
除了v4l2的共用部分以外,msm的主要文件是在drivers/media/video/msm/目錄中。包含了msm_v4l2.c,msm_camera.c,s5k3e2fx.c,msm_vfe8x_proc.c等文件。
msm_camera.c是公用的庫函數,創建出/dev/msm_camera中的各個設備文件:
# ls -l /dev/msm_camera crw-rw---- system system 249, 2 2010-01-13 18:39 frame0 crw-rw---- system system 249, 1 2010-01-13 18:39 config0 crw-rw---- system system 249, 0 2010-01-13 18:39 control0
這里包含了3個自定義的字符設備:frame0為幀數據設備,config0為配置設備,control0為控制設備。
include/media目錄中的msm_camera.h,是MSM攝像頭相關的頭文件,其中定義了各種額外的ioctl命令。
msm_v4l2.c是v4l2驅動程序的實現文件,實現了標準的Video for Linux 2的驅動程序,它實際上是在調用msm_camera.c中內容的基礎上實現的。
s5k3e2fx是攝像頭傳感器的驅動程序,platform_driver的名稱為msm_camera_s5k3e2fx,這個名稱和board-mahimahi.c中定義的platform_device相匹配。
s5k3e2fx是連接在i2c總線上的,其地址為0-0010,在sys文件系統中,可以看到如下信息:
# cat /sys/bus/i2c/devices/0-0010/name s5k3e2fx
推薦閱讀
- 基于粒計算模型的圖像處理
- 跟“龍哥”學C語言編程
- JavaFX Essentials
- Python爬蟲開發與項目實戰
- Scratch 3.0少兒編程與邏輯思維訓練
- Microsoft System Center Orchestrator 2012 R2 Essentials
- 零基礎趣學C語言
- 微服務從小白到專家:Spring Cloud和Kubernetes實戰
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- Application Development with Swift
- 青少年學Python(第2冊)
- Node.js實戰:分布式系統中的后端服務開發
- Mastering JavaScript Promises
- Building Web and Mobile ArcGIS Server Applications with JavaScript(Second Edition)
- 區塊鏈:技術與場景