我们进入 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 进去相应的目录
配置配置文件 cam_board_rk3399.xml 因为我们一开始的 13850 摄像头都是可以使用的,所以修改的也不多
(1)修改匹配的驱动名字 HM5532
(2)然后改一些io 脚
![1.jpg](//file.elecfans.com/web2/M00/77/9A/pYYBAGNiM5qAV6hsAACK_zQv1fI109.jpg)
确认我们的 sensor 的供电是否一致,特别是 DVDD 的电
![1.jpg](//file.elecfans.com/web2/M00/77/08/poYBAGNiM6-AP7rGAACEM9bypYQ819.jpg)
然后 push cam_board_rk3399.xml 进去
重启下
接上串口开信息
发现打开是没问题的,但是就是没图像,其实这里在 android7.1 的时候是会报出说你的相关的sensor效果的 配置没有找到,在 android8.1 上面可能屏蔽掉了,我们把sensor 的效果信息给 push 进去
发现还是不行的! 再看我们的配置,发现我打开了 VCM 马达部分,事实上我的模组现在并没有装 马达和镜头的,他检测不到 VCM 也就打不开了,我们最好把没有或者就直接把其他的都关掉,先把sensor 调通先,再考虑马达、闪光灯这些!
NC 掉,再push 进去,可以!
添加到整体编译去,先把 out 目录下的
./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
[url=home.php?mod=space&uid=1999721]@@[/url] -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 一致
烧写固件!打开摄像头,可以了!
原作者:荣敢飞