我们进入 camera 调试部分
找了很久,终于在我朋友手上借来一块摄像头接口比较多的开发板,预留两路 mipi摄像头接口、一路 CIF 摄像头接口,当然对于 USB 摄像头就直接接Usb 即可!
直接看原理图相关接口
先来说下 RK3399 对摄像头支持力度,能够同时打开 两个1300万的摄像头,而且都可以是 raw sensor 或者 mipi yuv sensor,
默认代码里面就是支持两个 ov13850 的,那你直接买对pin脚的13850 模组,上电正常,就可以使用系统默认的相机打开摄像头!
但是我们来调试一款新的 sensor 就是 HM5532 一款 500万的 mipi raw sensor
直接从HM 原厂拿到 相关的初始化代码,很幸运,他们也在 RK3399上面调试成功了,我们要做的就是移植过来
将 我们网盘上的 HM5532.tar.gz 放到 hardware/rockchip/camera/SiliconImage/isi/drv/ 解压
tar -xvf HM5532.tar.gz
1.
然后准备好环境 使用 mm编译
发现编译不过
ninja: error: 'out/target/product/rk3399/obj/SHARED_LIBRARIES/libisp_silicomimageisp_api_intermediates/export_includes', needed by 'out/target/product/rk3399/obj/SHARED_LIBRARIES/libisp_isi_drv_HM5532_intermediates/import_includes', missing and no known rule to make it
发现是我们的 makefile 文件写的不对,要修改,直接参考 对比OV13850 的!
我为什么能一下知道是 makefile 问题呢? 因为报的是 没有编译规则来编译 ,所以可以知道是 makefile的地方
对比过去,使用 mm编译通过,产生
out/target/product/rk3399/obj_arm/SHARED_LIBRARIES/libisp_isi_drv_HM5532_intermediates/libisp_isi_drv_HM5532.so.toc
相关的库文件
./vendor/lib/hw/libisp_isi_drv_HM5532.so
./vendor/lib64/hw/libisp_isi_drv_HM5532.so
那我们可以直接push 进去相应的目录
(1)修改匹配的驱动名字 HM5532
(2)然后改一些io 脚
+
+
+
然后 push cam_board_rk3399.xml 进去
重启下
接上串口开信息
发现打开是没问题的,但是就是没图像,其实这里在 android7.1 的时候是会报出说你的相关的sensor效果的 配置没有找到,在 android8.1 上面可能屏蔽掉了,我们把sensor 的效果信息给 push 进去
NC 掉,再push 进去,可以!
./vendor/lib/hw/libisp_isi_drv_HM5532.so
./vendor/lib64/hw/libisp_isi_drv_HM5532.so
删掉,再整体编译看会不会 在相应的目录下产生这两个 so 文件,事实是不会的,大家可以做测试
我们就在 ------------------- hardware/rockchip/camera/Config/user.mk -------------------
index 09b90e7..f9db698 100755
@@ -12,6 +12,7 @@ PRODUCT_PACKAGES += \
libisp_isi_drv_IMX214 \
libisp_isi_drv_HM2057 \
libisp_isi_drv_HM5040 \
+ libisp_isi_drv_HM5532 \
libisp_isi_drv_SP2518 \
将我们的 so 给打包进去!
还有刚才我们使用到的 sensor 效果文件你发现在 vendor/etc 下也没有的,我们就要添加copy进去
hardware/rockchip/camera/Config/rk32xx_camera.mk ---------------
hardware/rockchip/camera/SiliconImage/isi/drv/OV13850/calib/OV13850.xml:$(TARGET_COPY_OUT_VENDOR)/etc/OV13850.xml \
+ hardware/rockchip/camera/SiliconImage/isi/drv/HM5532/calib/HM5532.xml:$(TARGET_COPY_OUT_VENDOR)/etc/HM5532.xml \
还有 cam_board_rk3399.xml 因为我们是直接push 进去的,就使用现在最新的配置即可,不要改了
最后整体编译,生成固件,大家先去 out 下检查相应的文件是否已经存在,并对比cam_board.xml 是否与 cam_board_rk3399.xml 一致
烧写固件!打开摄像头,可以了!
下章我们浅析下过程!