Hi3516 单sensor IPC 解决方案 Hi3516 双sensor IPC 解决方案
海思芯片方案在国内很受监控厂家的青睐,Hi3516芯片广泛被应用在网络摄像机上,比如乔安科技NO.1-732CRC-T产品。 型号 NO.1-732CRC-T 感光元器件 Hi3516+IMXI22 像素 200w 日夜功能 支持 双码流 支持 最低照度 彩色0.1LUX/F1.2;黑白0.001LUX/F1.2 视频压缩格式 H.264MP 图像分辨率 1920*1080 视频帧率 25FPS 视频码率 64KBPS-8MBPS 支持协议 TCP/IP,HTTP,DHCP,DNS,DDNS,PPPOE,SMP,NTP等 后端接入 支持后端接HVR/NVR 产品兼容 Onvif协议,全球通用协议标准 镜头 4/6/8/12/16MM,标配8MM 网络接口 1个10/100M以太网接口 防水等级 IP66 无线接口 无线WIFI(-W型支持) 电源功耗 5WMAX 运行环境 温度-10~+50℃,湿20~80%
姓名:张猛
【嵌牛导读】:在海思+ov9712相机调试完成之后,便更改了比亚迪的相机BYD2013进行调试,在调试这个相机简单的更改了相机配置寄存器之后图像很容易的出来了,但是图像有很大的噪点,失真,这个问题一直在研究搞不定(感觉自己在硬件软件配置是对的),便想到用海思的Hi_ISP实现图像的在线调试,看能不能达到一些意外的收货,但是在用海思ISp工具时便遇到了问题,搞了两天终于才把这个问题解决,在这里记录一下。
【嵌牛鼻子】:ISP HiPQtools stream
【嵌牛提问】:对于海思在线调试工具,如何进行加载,加载的流程是什么,以及要要注意这里面的坑。
【嵌牛正文】:
1.首先加载设备驱动及进行系统配置
在ko目录下,执行./load3518e -i 系统便会进行加载
2.sensor库文件的生成(.ko)
sensor的库文件需要在linux服务器中的sdk包中编译得到,将生成的.so文件放到Sdk的stream软件包的libs/目录下。
这样就在上一层目录的lib/目录下生成了.so文件
3.修改stream软件包的.ini文件
sc3035_3m_4lan.ini文件在Hi3516A_Stream_xxx/configs目录下,改文件主要指定.so文件的位置、输入视频的接口(LVDS/MIPI/DVP)、视频格式(分辨率、同步方式、目标帧率等)等系统配置。
[sensor]
Sensor_type =sc3035 sensor name
Mode =0 WDR_MODE_NONE = 0
WDR_MODE_BUILT_IN = 1
WDR_MODE_2To1_LINE = 2
WDR_MODE_2To1_FRAME = 3
WDR_MODE_2To1_FRAME_FULL_RATE =4 ...etc
DllFile =libs/libsns_sc3035_4lan.so sensor lib path
[mode]
input_mode =0 INPUT_MODE_MIPI = 0
INPUT_MODE_SUBLVDS = 1
INPUT_MODE_LVDS = 2 ...etc
dev_attr = 0 mipi_dev_attr_t = 0
lvds_dev_attr_t = 1
NULL =2
[mipi]
----------onlyformipi_dev---------
data_type = 1 raw datatype: 8/10/12/14bit
RAW_DATA_8BIT = 0
RAW_DATA_10BIT = 1
RAW_DATA_12BIT = 2
RAW_DATA_14BIT = 3
lane_id = 0| 1 | 2 | 3 |-1|-1|-1|-1| lane_id: -1 - disable
[isp_image]
Isp_x =0
Isp_y =0
Isp_W =2304
Isp_H =1536
Isp_FrameRate=30
Isp_Bayer =3 BAYER_RGGB=0, BAYER_GRBG=1, BAYER_GBRG=2, BAYER_BGGR=3
4. 运行stream软件
运行stream软件包中的HiIspTool.sh脚本,通过以太网卡与上位机的PQTools建立通信
./HiIspTools.sh -a -p ov9712_720p_line.ini
遇到的问题就出在这一块,报错是
研究其脚本文件HiIsptool.sh ,发现ISP的安装是分为板端工具和PC端安装,而板端安装是根据这个脚本进行配置的,具体分两个部分:
(1)killall ittb_control#杀死ittb_control进程
DLL_PATH=${LD_LIBRARY_PATH}:${PWD}/libs#指定库路径
export LD_LIBRARY_PATH=${DLL_PATH}#export 库
LD_LIBRARY_PATH即Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接
库)时除了默认路径之外的其他路径(该路径在默认路径之前查找)。
工具里使用了自己编译好的动态库,而这些动态库放在发布包的libs文件夹下。当执行函数动态
链接时,如果此文件不再缺省目录下’/lib’ and ‘/usr/lib’,那么就需要指定环境变量
LD_LIBRARY_PATH
(2)运行可执行程序
./ittb_control&
总结:
ittb_control进程是基于TCP的服务端,负责控制信号的传输,也就是负责将海思板子和PC端的工具连接起来
ittb_stream进程也是基于TCP的服务端,负责播放H.265或YUV视频流。,也就是负责将板端的数据进行传输处理
小插曲:
理论上上直接运行上面的Hi脚本就可以了,但是我在具体的 *** 作过程中是报错的,ps一下发现并没有ittb_controls 和ittb_stream两个进程,单独运行./ittb_controls报错没有权限,运行chmod 777 ittb_controls获得权限,此时运行却发生缺少so文件,但是libs目录下是有这个文件的,仔细查看脚本文件,
这里面设计到了Makefile的一些知识,这里面的路径并不是指软件目录下的lib目录,而是指的海思板系统根目录下的lib目录,复制报错的.so到系统根目录下报错就换了一个.so 报错,这验证了我的想法
执行命令cp * /usr/lib/ 将软件路径lib下的所有.so复制到系统根目录下的.lib/目录下,此时,发现没有报错。ps查看linux进程中也有了control和stream两个进程
这个时候打开window系统的pqtools,选择sdk版本,填写海思板子的IP,port默认就可以连接上板子了
系统原来用的是BOSCH_BMA222的gsensor, 现在要求换成使用MMA7660,怎样增加驱动和调试过程。
1. 修改Makefie
首先,修改放置驱动的目录里的Makefile(kernel/driver/misc),添置如下语句:
obj-$(CONFIG_SENSORS_MMA7660) += mma7660.o
2. 增加驱动文件
把驱动文件mma7660.c添加到kernel/driver/misc下。
3. 修改.config文件,把下面两行注释掉
# CONFIG_BOSCH_SENSOR=y
# CONFIG_BOSCH_BMA222=y
再增加下面这项
CONFIG_SENSORS_MMA7660=y
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)