- 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
推薦閱讀
- GitLab Cookbook
- Getting Started with CreateJS
- UML+OOPC嵌入式C語言開發精講
- Quarkus實踐指南:構建新一代的Kubernetes原生Java微服務
- Access 2016數據庫管
- 深入理解Android:Wi-Fi、NFC和GPS卷
- 微服務架構深度解析:原理、實踐與進階
- Babylon.js Essentials
- Learning Apache Cassandra
- Java零基礎實戰
- JBoss:Developer's Guide
- 算法設計與分析:基于C++編程語言的描述
- Python Web自動化測試設計與實現
- 嵌入式Linux C語言程序設計基礎教程
- 從零開始構建深度前饋神經網絡:Python+TensorFlow 2.x