Platform: RK3288
OS: Android 6.0
Kernel: 3.10.92
虽然是Android6.0, 但是rockchip用的是Camera HAL 1.0的架构,没有更新到3.x.
开机:(MediaServer会调用)
camera_get_number_of_cameras -> CameraHal_Module.cpp
camera_board_profiles::getInstance ->
createInstance ->
new camera_board_profiles
fopen //打开/etc/cam_board.xml
XML_ParserCreate
fread
XML_ParseBuffer //解析文件
LoadSensor ->
OpenAndRegistALLSensor //第一次会去尝试注册所有cam_board.xml里的sensor.
OpenAndRegistOneSensor ->
RegisterSensorDevice //通过ioctl来执行sensor的初始化过程。
ReadDevNameFromXML -> //如果已经初始化过,那么直接读取/data/camera/media_profiles.xml里被第一次初始化添加进去的sensor.
OpenAndRegistOneSensor //注册只在cam_board.xml中存在的sensor,uvc camera除外。
open //打开/dev/