“EMB-7540”的版本间的差异

来自ARM Wiki
跳转至: 导航搜索
vpss_chn_dump(用户从通道获取FrmCnt帧处理完成的图像转储)
接口概览
 
(未显示4个用户的322个中间版本)
第1行: 第1行:
=='''介绍'''==
+
=='''资源特性'''==
 
 
 
[[File:EMB-7540概览.jpg|thumb|frameless|300px|概览]]
 
[[File:EMB-7540概览.jpg|thumb|frameless|300px|概览]]
 
[[File:EMB-7540正面.jpg|thumb|frameless|300px|正面]]
 
[[File:EMB-7540正面.jpg|thumb|frameless|300px|正面]]
 
+
[[File:EMB-7540背面.jpg|thumb|frameless|300px|背面]]
 
 
* EMB-7540(简称7540)是华北工控为网络IP视频监控系统量身打造,大小仅为120x80mm大小,可运行Linux操作系统。
 
 
 
* EMB-7540采用HiSilicon Hi3559A 2xA73 + 2xA53四核处理器,产品基于智能海思芯片组视觉平台,具有高品质超高清视频编解码能力、接口丰富、扩展性强等特点。
 
 
 
* EMB-7540拥有稳定可靠的工业级性能,可广泛应用网络视频监控系统、IP摄像头、网络监控摄像机、视频服务器等行业领域。
 
 
 
=='''资源特性'''==
 
 
* CPU:HiSilicon Hi3559A 2xA73 + 2xA53四核处理器
 
* CPU:HiSilicon Hi3559A 2xA73 + 2xA53四核处理器
 
* GPU:Mali 2*G71@900MHz GPU
 
* GPU:Mali 2*G71@900MHz GPU
第21行: 第12行:
 
:::2x4K60fps 输入;
 
:::2x4K60fps 输入;
 
:::或4x4K30fps 输入/6x1080P30fps输入
 
:::或4x4K30fps 输入/6x1080P30fps输入
*Display:1xHDMI,1xMIPI/LVDS
+
* Display:1xHDMI,1xMIPI/LVDS
*Touch:电容或电阻屏
+
* Encode/decode:视频支持H264/H.265/JPEG多种格式编解码。
 +
:::::音频支持G.711/G.726/AAC/等编解码
 +
* Algorithm:详见smaple说明。
 +
* Touch:电容或电阻屏
 
* USB Host: 1x USB3.0,1x Mini USB2.0   
 
* USB Host: 1x USB3.0,1x Mini USB2.0   
 
* COM: 1x COM232;1x COM485;1x debug
 
* COM: 1x COM232;1x COM485;1x debug
第34行: 第28行:
 
* Humidity:5% ~ 95%相对湿度,无冷凝
 
* Humidity:5% ~ 95%相对湿度,无冷凝
 
* Size: 120mm x 80 mm
 
* Size: 120mm x 80 mm
* OS: Linux
+
* OS: Linux-4.9
  
 +
=='''接口布局和尺寸'''==
  
=='''接口布局和尺寸'''==
 
 
===接口概览===
 
===接口概览===
[[File:EMB-7540接口布局.jpg |frameless|700px|EMB-7540 接口布局]]
+
[[File:EMB-7540 接口概览.JPG|frameless|700px|EMB-7540 接口概览]]
[[File:EMB-7540接口布局1.jpg |frameless|700px|EMB-7540 接口布局1]]
+
[[File:EMB-7540 接口概览1.JPG|frameless|700px|EMB-7540 接口概览1]]
  
 
===接口引脚定义===
 
===接口引脚定义===
第48行: 第42行:
 
:*[[EMB-7540-SPEAKER|音频接口(HP,MIC)]]  
 
:*[[EMB-7540-SPEAKER|音频接口(HP,MIC)]]  
 
:*[[EMB-7540-HDMI|HDMI接口]]
 
:*[[EMB-7540-HDMI|HDMI接口]]
:*[[EMB-7540-Sensor|传感器接口(J12,J13,J14)]]  
+
:*[[EMB-7540-Sensor|摄像头接口(J12,J13,J14)]]  
:*[[EMB-7540-J9&J10|传感器接口和LCD接口(J9,J10)]]  
+
:*[[EMB-7540-J9|传感器接口(J9)]]
 +
:*[[EMB-7540-J10|LCD接口(J10)]]  
 
:*[[EMB-7540-PWR&JFP|电源及指示灯]]  
 
:*[[EMB-7540-PWR&JFP|电源及指示灯]]  
 
:*[[EMB-7540-JTAG|JTAG接口]]  
 
:*[[EMB-7540-JTAG|JTAG接口]]  
第56行: 第51行:
 
:*[[EMB-7540-J8|DAMP接口(J8)]]
 
:*[[EMB-7540-J8|DAMP接口(J8)]]
 
:*[[EMB-7540-MFTS|MFTS接口(MFTS)]]
 
:*[[EMB-7540-MFTS|MFTS接口(MFTS)]]
:*[[EMB-7540-Other|TFcard&复位按钮]]
 
  
 
===传感器接口转接板定义===
 
===传感器接口转接板定义===
 +
[[File:EMB-7540转接板.jpg |thumb|frameless|300px|EMB-7540 转接板]]
 
:*[[EMB-7540-CAM|camera接口]]
 
:*[[EMB-7540-CAM|camera接口]]
  
 
===机械尺寸===
 
===机械尺寸===
  
[[File:EMB-7540尺寸.png|frameless|500px|]]
+
[[File:EMB-7540尺寸.jpg|frameless|500px|]]
 +
 
 +
=='''下载'''==
 +
:*系统镜像文件下载
 +
::*[http://norcord.com:8070/d/19fb41308eb44e2ebd26/ 系统镜像文件下载 下载]
 +
:*系统烧录工具下载
 +
::*[http://norcord.com:8070/f/457a3b58137b41e8b8dd/?dl=1 HiTool 下载]
 +
:*Sample源码下载(包括SDK库)
 +
::*[sample源码文件]
  
 
=='''烧录方法'''==
 
=='''烧录方法'''==
第78行: 第81行:
 
:*步骤 2. 把 HiTool-BVT-X.X.X.zip  拷贝到 PC 上(PC 要求安装 Win7、XP 操作系统)的某个本地硬盘。在 HiTool-XXX-4.0.15 及以后的版本已经集成了 jre,无需单独安装 JRE。如果是老版本工具,请预先安装的 32 位的 jre1.6(如 jre-6u1-windows-i586-p),否则HiTool 可能无法运行。
 
:*步骤 2. 把 HiTool-BVT-X.X.X.zip  拷贝到 PC 上(PC 要求安装 Win7、XP 操作系统)的某个本地硬盘。在 HiTool-XXX-4.0.15 及以后的版本已经集成了 jre,无需单独安装 JRE。如果是老版本工具,请预先安装的 32 位的 jre1.6(如 jre-6u1-windows-i586-p),否则HiTool 可能无法运行。
 
::链接如下:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html  
 
::链接如下:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html  
::查看当前 PC 安装的 JRE 版本号,可以通过在开始->运行->键入 cmd 中输入 java –version 查看当前已安装的 JRE 版本号,若当前版本为 1.6.0_xx 即可,若当前版本号高于 1.6,则请参考 FAQ 7.15。
+
::查看当前 PC 安装的 JRE 版本号,可以通过在开始->运行->键入 cmd 中输入 java –version 查看当前已安装的 JRE 版本号,若当前版本为 1.6.0_xx 即可,若当前版本号高于 1.6,则请打开 HiTool 目录下的 HiTool.ini,将其中-XX:MaxTenuringThreshold=31 参数值改为-XX:MaxTenuringThreshold=15,即可支持 1.7 及更高版本的 JRE。
  
 
:*步骤 3. 解压 HiTool-BVT-X.X.X.zip,双击工具目录下的 HiTool.exe,打开 HiTool 工具,如图 1-1 所示。
 
:*步骤 3. 解压 HiTool-BVT-X.X.X.zip,双击工具目录下的 HiTool.exe,打开 HiTool 工具,如图 1-1 所示。
第91行: 第94行:
 
:*步骤 6. 参数配置,选择连接单板所用的串口,选择 PC 端使用的网络 IP 地址,配置好单板的MAC 地址、IP 地址、子网掩码以及网关,配置如图 1-4 所示。
 
:*步骤 6. 参数配置,选择连接单板所用的串口,选择 PC 端使用的网络 IP 地址,配置好单板的MAC 地址、IP 地址、子网掩码以及网关,配置如图 1-4 所示。
 
::[[文件:EMB-7540-HiBurn1-4.jpg|500px| 图1-4 参数设置]]
 
::[[文件:EMB-7540-HiBurn1-4.jpg|500px| 图1-4 参数设置]]
 
+
<!--
 
:*步骤 7. 可选步骤,Hi3516CV300/Hi3559AV100 芯片支持 USB 裸烧,Hi3559V100/Hi3556V100 芯片支持 USB 非裸烧,需要提前在 Windows 平台的 PC 机上,安装好指定的驱动,安装方法如下:
 
:*步骤 7. 可选步骤,Hi3516CV300/Hi3559AV100 芯片支持 USB 裸烧,Hi3559V100/Hi3556V100 芯片支持 USB 非裸烧,需要提前在 Windows 平台的 PC 机上,安装好指定的驱动,安装方法如下:
 
::1.从 http://zadig.akeo.ie 上下载 zadig.exe 文件,请根据自己的操作系统下载相应的 exe 执行文件,当前最新版本如下(请以实际为准):  
 
::1.从 http://zadig.akeo.ie 上下载 zadig.exe 文件,请根据自己的操作系统下载相应的 exe 执行文件,当前最新版本如下(请以实际为准):  
第109行: 第112行:
 
::5.LibusbK 和 libusb-win32 安装完成之后,打开设备管理器,单板重新上电,查看驱动是否安装正确,如图 1-8 为正确安装后的状态。
 
::5.LibusbK 和 libusb-win32 安装完成之后,打开设备管理器,单板重新上电,查看驱动是否安装正确,如图 1-8 为正确安装后的状态。
 
::[[文件:EMB-7540-HiBurn1-8.jpg|500px| 图1-8 驱动正确安装后的设备管理器]]
 
::[[文件:EMB-7540-HiBurn1-8.jpg|500px| 图1-8 驱动正确安装后的设备管理器]]
 +
-->
  
 
====eMMC烧录====
 
====eMMC烧录====
第138行: 第142行:
 
:*步骤 6. 烧写完成,连接终端工具,重启单板。
 
:*步骤 6. 烧写完成,连接终端工具,重启单板。
  
=='''Demo演示'''==
+
==='''SD卡(U盘) 烧录方法'''===
====sample_venc(视频数据编码)====
+
====适用场景====
 +
:*sd卡烧录简单快速,可用于裸板烧录;U盘烧录必须在有uboot情况下。
 +
====烧写步骤====
 +
:具体烧写步骤如下:
 +
:*步骤 1. 格式化 SD卡(U盘)为 FAT32 格式,若 SD 卡有多个分区时,升级包必须放在第一个分区,否则扫描不到升级包。
 +
:*步骤 2. 从上面链接处下载系统烧录镜像,把各镜像文件名更改为:u-boot.bin,kernel,rootfs.ext4。
 +
:*步骤 3. 新建config文件(若下载镜像文件中有config则跳过该步骤),config文件内容如下:
 +
::setenv bootargs 'mem=512M console=ttyAMA0,115200n8 clk_ignore_unused root=/dev/mmcblk0p3 rootfstype=ext4 rw rootwait blkdevparts=mmcblk0:1M(u-boot.bin),10M(kernel),96M(rootfs.ext4),1024M(data),-'
 +
::setenv bootcmd 'mmc read 0 0x42000000 0x800 0x5000;bootm 0x42000000'
 +
:*步骤 4. 选择升级烧录模式,把JFP([[EMB-7540-PWR&JFP|JFP]])的3(UPDATE_MODE_N ),4(GND)脚用跳帽短接, 。
 +
:*步骤 5. 把u-boot.bin,kernel,rootfs.ext4,config文件拷贝到SD卡或U盘中(目标文件sample_app.tar.gz也可以拷贝进来),插入SD卡,上电启动,等待5-20秒即可烧录成功,可在串口中看到如下打印:
 +
::[[文件:sd_burn.PNG]]
 +
:*注意事项:
 +
::u-boot 镜像名称必须为 u-boot.bin。
 +
::裸烧会自动保存 config 中的 bootargs 和 bootcmd 环境变量,没有 config 文件时,仅会烧写 bootrom 读取的 u-boot 镜像。
 +
::烧录成功后记得把JFP的3,4引脚跳帽去掉,否则下次启动又会进入升级烧录模式。
 +
 
 +
=='''例程环境搭建'''==
 +
====工具链安装====
 +
 
 +
:*1) 将安装包aarch64-himix100-linux_v2.0.2.0.tgz和gcc-arm-none-eabi-4_9-2015q3.tgz拷贝到安装了ubuntu环境的PC机上,在PC机的shell中执行下面步骤进行安装:
 +
:<syntaxhighlight lang="bash" line>
 +
 
 +
$ tar -zxf aarch64-himix100-linux_v2.0.2.0.tgz
 +
$ chmod +x aarch64-himix100-linux.install
 +
$ sudo ./aarch64-himix100-linux.install
 +
$
 +
$ tar -zxf gcc-arm-none-eabi-4_9-2015q3.tgz
 +
$ cd gcc-arm-none-eabi-4_9-2015q3
 +
$ sudo ./gcc-arm-none-eabi-4_9-2015q3.install
 +
</syntaxhighlight>
 +
 
 +
<!--
 +
:*2) 安装 arm-none-eabi 交叉编译器:
 +
::解压 tar -zxf gcc-arm-none-eabi-4_9-2015q3.tgz,运行 chmod +x gcc-arm-none-eabi-4_9-2015q3.install,然后运行./gcc-arm-none-eabi-4_9-2015q3.install 即可。
 +
-->
 +
:*2) 执行 source /etc/profile 或者重启电脑让环境变量生效。注意,如果不重启电脑,仅仅source一下,环境变量只在当前shell里生效。
 +
 
 +
====sample环境搭建====
 +
:下载sample目标文件文件通过U盘拷贝或者nfs网络拷贝到设备中,在设备串口终端执行下列命令进行安装,然后按照[[#Demo使用 | Demo使用]]例程。
 +
:*1) U盘拷贝安装。
 +
:先将下载的文件sample_imx377.tar.bz2放在U盘根目录,U盘插上设备的USB口,在设备终端执行下面命令:
 +
:<syntaxhighlight lang="bash" line>
 +
 
 +
~# mount -t vfat /dev/sda1 /mnt/usb
 +
~# cd /root/
 +
~# tar -jxvf /mnt/usb/sample_imx377.tar.bz2
 +
</syntaxhighlight>
 +
:*2) nfs网络拷贝安装。
 +
:nfs搭建方式见[[#nfs配置和网络 | nfs配置和网络]],下载sample_imx377.tar.bz2文件放在PC机的/home/nfs目录,在设备终端执行下面命令(PC的IP是192.168.8.xx):
 +
:<syntaxhighlight lang="bash" line>
 +
~# ifconfig eth0 192.168.8.xxx #设备IP和下面电脑IP,192.168.8.xx在同一网段
 +
~# mount -t nfs -o nolock -o tcp 192.168.8.xx:/home/nfs /mnt/nfs
 +
~# cd /root/
 +
~# tar -jxvf /mnt/nfs/sample_imx377.tar.bz2
 +
</syntaxhighlight>
 +
 
 +
=='''Demo使用'''==
 +
:注意用户需要根据自己不同摄像头下载不同的例程。
 +
====sample_venc(视频数据编码)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
  
第153行: 第216行:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
:shell 说明:
 
:shell 说明:
::1. 运行sample_venc (录制) 视频编码样例
+
::1. 运行sample_venc (录制) 视频编码样例,需要接摄像头CAM1。
 
::2. 使用方法: ./sample_venc [index]  
 
::2. 使用方法: ./sample_venc [index]  
 
::3. 参数<索引>
 
::3. 参数<索引>
::4. 0) h265编码,4096×2160分辨率,每秒120帧 + h264编码,1920x1080分辨率,每秒30帧
+
::4.  0) h265编码,3840×2160分辨率,每秒120帧 + h264编码,1920x1080分辨率,每秒30帧
::5. 1) h265编码,4096×2160分辨率,每秒60帧 + h264编码,4096×2160分辨率,每秒60帧
+
::5.  1) h265编码,3840×2160分辨率,每秒60帧 + h264编码,3840×2160分辨率,每秒60帧
::6. 2) Lowdelay(低延时属性):h265编码,4096×2160分辨率,每秒30帧
+
::6.  2) Lowdelay(低延时属性):h265编码,3840×2160分辨率,每秒30帧
::7. 3) IntraRefresh(P 帧帧内刷新):h265编码,4096×2160分辨率,每秒60帧 + h264编码,4096×2160分辨率,每秒60帧
+
::7.  3) IntraRefresh(P 帧帧内刷新):h265编码,3840×2160分辨率,每秒60帧 + h264编码,3840×2160分辨率,每秒60帧
::8. 4) Qpmap(是一种码率控制模式):h265编码,4096×2160分辨率 + h264编码,4096×2160分辨率,每秒60帧
+
::8.  4) Qpmap(是一种码率控制模式):h265编码,3840×2160分辨率 + h264编码,3840×2160分辨率,每秒60帧
::9. 5) Mjpeg(Mjpeg协议编码方式)的4096×2160分辨率,每秒60帧 + Jpeg(Jpeg的编码)的4096×2160分辨率
+
::9.  5) Mjpeg(Mjpeg协议编码方式)的3840×2160分辨率,每秒60帧 + Jpeg(Jpeg的编码)的3840×2160分辨率
  
====sample_vdec(视频数据解码)====
+
====sample_vdec(视频数据解码)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
  
 
~ # ./sample_vdec
 
~ # ./sample_vdec
Usage : ./sample_vdec <index> <IntfSync >
+
Usage : ./sample_vdec <index> <IntfSync>
 
index:
 
index:
 
     0)  VDEC(H265)-VPSS-VO
 
     0)  VDEC(H265)-VPSS-VO
第180行: 第244行:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
:shell 说明:
 
:shell 说明:
::1. 运行sample_vdec (播放) 视频解码样例
+
::1. 运行sample_vdec 视频解码样例,解码目录下的视频和图片文件。
::2. 使用提示: ./sample_vdec <索引> <Vo接口时序类型 >
+
::2. 使用提示: ./sample_vdec <索引> <Vo接口时序类型>
 
::3. 参数<索引>:
 
::3. 参数<索引>:
::4. 0)  VDEC解码器输入(H265的编码格式图片/视频)--->VPSS(视频输入缓存块)--->VO(图片/视频输出)
+
::4.  0)  VDEC解码器输入(H265的编码格式视频)--->VPSS(视频处理)--->VO(视频输出)
::5. 1)  VDEC解码器输入(H264的编码格式图片/视频)--->VPSS(视频输入缓存块)--->VO(图片/视频输出)
+
::5.  1)  VDEC解码器输入(H264的编码格式视频)--->VPSS(视频处理)--->VO(视频输出)
::6. 2)  VDEC解码器输入(JPEG数据)--->VPSS(视频输入缓存块)--->VO(YUV图片/视频输出)
+
::6.  2)  VDEC解码器输入(JPEG格式图片)--->VPSS(视频处理)--->VO(视频输出)
::7. 3)  VDEC解码器输入JPEG解码成RGB数据
+
::7.  3)  VDEC解码器输入JPEG解码成RGB数据
 
::8. 参数<IntfSync>:
 
::8. 参数<IntfSync>:
::9. 0)  输出到HDMI 4096×2160分辨率,每秒30帧  
+
::9.  0)  输出到HDMI 3840×2160分辨率,每秒30帧  
::10. 1)  输出到HDMI 1920x1080分辨率,每秒30帧
+
::10.  1)  输出到HDMI 1920x1080分辨率,每秒30帧
  
====sample_audio(音频相关)====
+
====sample_audio(音频相关)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
  
 
~ # ./sample_audio
 
~ # ./sample_audio
/Usage:./sample_audio <index>/
+
Usage : ./sample_audio <index> <channel>
    index and its function list below
+
index:
 
     0)  start AI to AO loop
 
     0)  start AI to AO loop
 
     1)  send audio frame to AENC channel from AI, save them
 
     1)  send audio frame to AENC channel from AI, save them
第203行: 第267行:
 
     4)  start AI to AO(Hdmi) loop
 
     4)  start AI to AO(Hdmi) loop
 
     5)  start AI to AO(Syschn) loop
 
     5)  start AI to AO(Syschn) loop
 +
channel:
 +
    0) mic0 input.
 +
    1) mic1 input.
  
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
:shell 说明:
 
:shell 说明:
::1.  运行sample_audio  音频 (编码/解码)样例
+
::1.  运行sample_audio  音频 (输入/输出/编码/解码)样例
::2.  使用提示:./sample_audio <索引>
+
::2.  使用提示:./sample_audio <索引> <通道>
 
::3.  以下内容是索引对应的功能
 
::3.  以下内容是索引对应的功能
::4. 0循环音频从输入到输出 (话筒功能)
+
::4.  0音频从输入到输出 (话筒功能)
::5. 1通过音频输入发送音频帧到音频编码通道,保存起来  (录音功能)
+
::5.  1采集音频输入帧发送到编码通道,保存文件 (录音功能)
::6. 2)  从文件读取音频流,解码然后发送到输出 (播放功能)
+
::6.  2)  从文件读取音频流,解码然后发送到输出 (解码播放功能)
::7. 3)  通过音频输入声音质量增强处理,然后输出音频 (话筒功能)
+
::7.  3)  通过音频输入声音质量增强处理,然后输出音频 (声音质量增强处理功能)
::8. 4循环音频输入到HDMI通道音频输出 (话筒功能)
+
::8.  4采集音频输入到HDMI中音频输出 (HDMI设备播放音频功能)
::9. 5循环音频输入到系统音通道音频输出 (话筒功能)
+
::9.  5音频输入到系统音输出 (话筒功能)
 +
::10.音频输入通道
 +
::11.  0) mic0输入(HeadPhone)
 +
::12.  1) mic1输入(插针)
  
====sample_snap(拍照)====
+
====sample_snap(拍照)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
 
~ # ./sample_snap
 
~ # ./sample_snap
第230行: 第300行:
 
::2.  使用说明:./sample_snap <索引>  
 
::2.  使用说明:./sample_snap <索引>  
 
::3.  参数<索引>
 
::3.  参数<索引>
::4. 0)双 pipe 离线模式普通拍照
+
::4.  0)双 pipe 离线模式普通拍照
  
 
====sample_dpu_main(Depth Process Unit,深度图)====
 
====sample_dpu_main(Depth Process Unit,深度图)====
第246行: 第316行:
 
::2. 使用方法:./sample_dpu_main <索引>         
 
::2. 使用方法:./sample_dpu_main <索引>         
 
::3.  <索引>         
 
::3.  <索引>         
::4. 0) DPU(Depth Process Unit)对输入的左图像和右图像经过校正和匹配计算得出深度图
+
::4.  0) DPU(Depth Process Unit)对输入的左图像和右图像经过校正和匹配计算得出深度图
::5. 1) DPU(Depth Process Unit)对读取的文件的左图像和右图像经过校正和匹配计算得出深度图
+
::5.  1) DPU(Depth Process Unit)对读取的文件的左图像和右图像经过校正和匹配计算得出深度图
  
 
====sample_avs(Any View Stitching,全景拼接)====
 
====sample_avs(Any View Stitching,全景拼接)====
第267行: 第337行:
 
::2. 使用说明: ./sample_avs <index>
 
::2. 使用说明: ./sample_avs <index>
 
::3. <index>
 
::3. <index>
::4. 0) 2个CAM 鱼眼拼接正常显示模式
+
::4.  0) 2个鱼眼镜头拼接,等距柱面投影模式输出
::5. 1) 4个CAM 鱼眼拼接呈现立体显示效果
+
::5.  1) 4个鱼眼镜头拼接,正六面体投影模式输出
::6. 2) 4个CAM 图片无混合拼接
+
::6.  2) 4个摄像头非融合拼接(硬拼)
::7. 3)  
+
::7.  3) 目前暂不支持
::8. 4)
+
::8.  4) 目前暂不支持
::9. 5)
+
::9.  5)生成LUT表
  
 
====sample_fisheye(鱼眼模式)====
 
====sample_fisheye(鱼眼模式)====
第298行: 第368行:
 
::2. 使用说明 ./sample_fisheye <index> <vo intf> <venc type>
 
::2. 使用说明 ./sample_fisheye <index> <vo intf> <venc type>
 
::3. index:
 
::3. index:
::4. 0)  2个“半顶装模式”的鱼眼360°全景视频
+
::4.  0)  2个“半顶装模式”的鱼眼360°全景视频
::5. 1)  2个普通“地装的PTZ”鱼眼360°全景视频
+
::5.  1)  2个普通“地装的PTZ”鱼眼360°全景视频
::6. 2)  2个普通“壁装的PTZ”鱼眼180°全景视频
+
::6.  2)  2个普通“壁装的PTZ”鱼眼180°全景视频
::7. 3)  三个鱼眼原画的普通PTZ 壁装视频
+
::7.  3)  三个鱼眼原画的普通PTZ 壁装视频
::8. 4)  九格预览视频(仅支持大于或等于8m的图像)
+
::8.  4)  九格预览视频(仅支持大于或等于8m的图像)
 
::9. vo intf:
 
::9. vo intf:
::10. 0) 默认HDMI输出
+
::10.  0) 默认HDMI输出
::11. 1) BT1120输出
+
::11.  1) BT1120输出
 
::12. venc type:
 
::12. venc type:
::13. 0) 默认H265编码
+
::13.  0) 默认H265编码
::14. 1) H264编码
+
::14.  1) H264编码
  
 
====sample_vio(视频输入输出)====
 
====sample_vio(视频输入输出)====
第332行: 第402行:
 
::2. 使用方法:./sample_vio <index> <intf>
 
::2. 使用方法:./sample_vio <index> <intf>
 
::3. index:
 
::3. index:
::4. 0) 并行的八位数据视频宽度输入--> 视频处理 -->输出到HDMI.        嵌入式图像信号处理,物理通道预览
+
::4.  0) 并行八位标清输入--> 视频处理 -->输出到HDMI   嵌入式图像信号处理,物理通道预览
::5. 1) 在线八位数据视频宽度输入--> 视频处理 -->输出到HDMI.    2管道的嵌入式图像信号处理,物理通道预览
+
::5.  1) 在线八位标清输入--> 视频处理 -->输出到HDMI       2管道的嵌入式图像信号处理,物理通道预览
::6. 2) 离线八位数据视频宽度输入-->视频处理 -->输出到HDMI.            4管道的嵌入式图像信号处理,物理通道预览
+
::6.  2) 离线八位标清输入-->视频处理 -->输出到HDMI       4管道的嵌入式图像信号处理,物理通道预览
::7. 3) 在线十位数据和WDR视频输入-->视频处理 -->输出到HDMI. 嵌入式图像信号处理,物理通道预览
+
::7.  3) 在线十位高清+宽动态视频输入-->视频处理 -->输出到HDMI.   嵌入式图像信号处理,物理通道预览
::8. 4) 在线八位数据视频宽度输入 -->输出到HDMI.                         
+
::8.  4) 在线八位标清输入 -->输出到HDMI                           嵌入式图像信号处理,镜头畸变校正和旋转                   
::9. 5)  
+
::9.  5) 在线八位标清输入 -->输出到HDMI                            嵌入式图像信号处理,自由角度旋转
::10. 6)  
+
::10.  6) 在线八位标清输入 -->输出到HDMI         嵌入式图像信号处理,镜头畸变校正和展宽
::11. 7)  
+
::11.  7) 在线八位标清输入 --> 视频处理 -->输出到HDMI 
 
::12. intf:  
 
::12. intf:  
::13. 0) 默认HDMI输出
+
::13.  0) 默认HDMI输出
::14. 1)  BT1120输出
+
::14.  1)  BT1120输出
  
 
====sample_vgs(Video Graphics Sub-System,视频图形子系统)====
 
====sample_vgs(Video Graphics Sub-System,视频图形子系统)====
第360行: 第430行:
 
::2. 使用说明:./sample_vgs <index> <intf>
 
::2. 使用说明:./sample_vgs <index> <intf>
 
::3. index:
 
::3. index:
::4. 010比特位压缩,输入-->视频图像子系统-->HDMI输出
+
::4.  010比特位压缩格式,输入-->视频图像子系统-->HDMI输出
 
::5. intf:
 
::5. intf:
::6. 0) 默认HDMI输出
+
::6.  0) 默认HDMI输出
::7. 7) BT1120输出
+
::7.  1) BT1120输出
  
 
====sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)====
 
====sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)====
第378行: 第448行:
 
::2. 使用说明:./sample_tde <intf>
 
::2. 使用说明:./sample_tde <intf>
 
::3. intf:
 
::3. intf:
::4. 0) 默认VGA输出演示
+
::4.  0) 默认VGA输出演示
::5. 1) HDMI输出演示
+
::5.  1) HDMI输出演示
  
====sample_hifb(Hisilicon Framebuffer,基于Linux Framebuffer 基本功能扩展了一些图形层控制功能)====
+
====sample_hifb(Hisilicon Framebuffer,基于Linux FB 基本功能扩展了一些图形层控制功能)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
 
~ # ./sample_hifb
 
~ # ./sample_hifb
第411行: 第481行:
 
::5. <index>
 
::5. <index>
 
::6. 请选择一下您想运行的情况之一
 
::6. 请选择一下您想运行的情况之一
::7. 0: ARGB8888像素格式(标准模式)
+
::7.  0: ARGB8888像素格式(标准模式)
::8. 1: ARGB1555像素格式双缓存模式
+
::8.  1: ARGB1555像素格式双缓存模式
::9. 2: ARGB1555像素格式单缓存模式
+
::9.  2: ARGB1555像素格式单缓存模式
::10. 3: ARGB1555像素格式无缓存模式
+
::10.  3: ARGB1555像素格式无缓存模式
::11. 4: ARGB1555像素格式带压缩的单缓存模式
+
::11.  4: ARGB1555像素格式带压缩的单缓存模式
::12. 5: ARGB8888像素格式带压缩的单缓存模式  
+
::12.  5: ARGB8888像素格式带压缩的单缓存模式  
 
::14. <device>
 
::14. <device>
::15. 默认输出到超清显示设备DHD0 (能够支持到4K)
+
::15.  0) 默认输出到超清显示设备DHD0 (能够支持到4K)
::16. 输出到高清显示设备DHD1  
+
::16.  1) 输出到高清显示设备DHD1  
 
::18. <intf>
 
::18. <intf>
::19. 默认HDMI输出
+
::19.  0)  默认HDMI输出
::20. BT1120输出
+
::20.  1)  BT1120输出
  
 
====sample_awb_calibration(自动白光平衡测量)====
 
====sample_awb_calibration(自动白光平衡测量)====
第444行: 第514行:
 
::2. 使用方法:./sample_awb_calibration <mode> <intf1> <intf2> <intf3>
 
::2. 使用方法:./sample_awb_calibration <mode> <intf1> <intf2> <intf3>
 
::3. <mode>
 
::3. <mode>
::4. 0) 计算例子中的增益
+
::4.  0) 计算例子中的增益
::5. 1) 根据标准例子来校正例子中的增益
+
::5.  1) 根据标准例子来校正例子中的增益
 
::6. intf1:
 
::6. intf1:
::7. 标准例子中的深红色区域的锐化增益控制值
+
::7.  标准例子中的深红色区域的锐化增益控制值
 
::8. intf2:
 
::8. intf2:
::9. 标准例子中的深蓝色区域的锐化增益控制值
+
::9.  标准例子中的深蓝色区域的锐化增益控制值
 
::10. intf3:
 
::10. intf3:
::11. 0~1024范围的初始值(采样数据的增益强度会随着初始值的值增加而增加)
+
::11.  0~1024范围的初始值(采样数据的增益强度会随着初始值的值增加而增加)
  
 
====sample_modeswitch(模式切换)====
 
====sample_modeswitch(模式切换)====
第472行: 第542行:
 
::2. 使用说明: ./sample_modeswitch <index> <intf>
 
::2. 使用说明: ./sample_modeswitch <index> <intf>
 
::3. index:
 
::3. index:
::4. 0) imx290的wdr模式到linear模式切换 
+
::4.  0) imx290的wdr模式到linear模式切换 
::5. 1) imx290的linear模式到wdr模式切换 
+
::5.  1) imx290的linear模式到wdr模式切换 
::6. 2) imx477的分辨率9M50FPS切换至8M30FPS
+
::6.  2) imx477的分辨率9M50FPS切换至8M30FPS
::7. 3) imx477的分辨率8M30FPS切换至9M50FPS
+
::7.  3) imx477的分辨率8M30FPS切换至9M50FPS
 
::8. intf:
 
::8. intf:
::9. 0) 默认HDMI输出
+
::9. 0) 默认HDMI输出
 
::10. 1) BT1120输出
 
::10. 1) BT1120输出
  
第504行: 第574行:
 
::2. 使用说明:  ./sample_ive_main <index> [complete] [encode] [vo]
 
::2. 使用说明:  ./sample_ive_main <index> [complete] [encode] [vo]
 
::3. index:
 
::3. index:
::4. 0) 背景模型,<encode>:0-->不使能编码 1-->使能编码,<vo>: 0-->不调用输出 1-->调用输出
+
::4.  0) 背景模型
::5. 1) Gmm模型
+
::5.  1) 高斯模型Gmm
::6. 2) 遮挡检测
+
::6.  2) 遮挡检测
::7. 3) 移动侦测
+
::7.  3) 运动检测
::8. 4)  
+
::8.  4) 边缘检测
::9. 5)  
+
::9.  5) 高斯模型Gmm2
::10. 6) 内存测试
+
::10  6) 内存测试
::11. 7)  
+
::11  7) Sobel算子分割
::12. 8)  
+
::12   8) 图像检索Ann
::13. 9)  
+
::13  9) St和LK光流法
::14. a)  
+
::14  a) 分类器SVM
::15. b)  
+
::15   b) 神经网络Cnn
::16. 
 
::17. 
 
::18.
 
  
====sample_dis(Digital Image Stabilization,数字稳像)====
+
====sample_dis(Digital Image Stabilization,数字防抖)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
 
~ # ./sample_dis
 
~ # ./sample_dis
第537行: 第604行:
 
::2. 使用说明:  ./sample_dis <index> <intf>
 
::2. 使用说明:  ./sample_dis <index> <intf>
 
::3. index:
 
::3. index:
::4. 0) DIS-4DOF_GME(四自由度 GME 算法,不使用陀螺仪),输入-输出 视频解码
+
::4.  0) DIS-4DOF_GME(四自由度 GME 算法,不使用陀螺仪),输入-输出 同时H265格式录像(存储在当前)
::5. 1) DIS-6DOF_GME(六自由度 GME 算法,不使用陀螺仪),输入-输出 视频解码
+
::5.  1) DIS-6DOF_GME(六自由度 GME 算法,不使用陀螺仪),输入-输出 同时H265格式录像(存储在当前)
 
::6. intf:
 
::6. intf:
::7. 0) HDMI 输出
+
::7.  0) HDMI 输出
::8. 1) BT1120 输出
+
::8.  1) BT1120 输出
  
====sample_dsp_main====
+
====sample_dsp_main(DSP测试)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
 
+
~ # ./sample_dsp_main
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
:shell 说明:
 
:shell 说明:
::1.  
+
::1. 四个DSP之DSP0的出图测试。
::2.
+
 
::3.
+
====sample_nnie_main(神经网络硬件加速单元测试)====
::4.
 
::5.
 
::6.
 
  
====sample_nnie_main====
+
:1. 神经网络,特别是深度学习卷积神经网络进行加速处理的硬件单元测试。
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
 
~ # ./sample_nnie_main
 
~ # ./sample_nnie_main
第574行: 第638行:
  
 
:shell 说明:
 
:shell 说明:
::1.  
+
::1. 运行 sample_nnie_main
::2.  
+
::2. 使用说明: ./sample_nnie_main <index>
::3.  
+
::3. index:
::4.  
+
::4.   0) RFCN模型,从摄像头采集图像标定人形。
::5.  
+
::5.   1) 可训练的图像分割Segnet
::6.
+
::6.   2) 深度学习的目标检测Alexnet
 +
::7.   3) 深度学习的目标检测DoubleRoiPooling
 +
::8.   4) 神经网络Cnn
 +
::9.   5) 可训练的SSD模型处理
 +
::10.  6) 神经网格模型Yolov1
 +
::11.  7) 神经网格模型Yolov2
 +
::12.  8) LSTM模型
  
 
====vi_bayerdump(用来获取sensor原始图像的工具)====
 
====vi_bayerdump(用来获取sensor原始图像的工具)====
第615行: 第685行:
 
::5.   
 
::5.   
 
::6.
 
::6.
::7.  
+
::7. *************************************************
 
::8.  使用说明:./vi_bayerdump [ViPipe] [nbit] [Compress] [FrmCnt] [ByteAlign] [RatioShow]
 
::8.  使用说明:./vi_bayerdump [ViPipe] [nbit] [Compress] [FrmCnt] [ByteAlign] [RatioShow]
 
::9.  ViPipe:  
 
::9.  ViPipe:  
::10.  ViPipe号 0~7范围内
+
::10.  ''' '''ViPipe号 0~7范围内
 
::11.  nbit:  
 
::11.  nbit:  
::12.  原始数据的字节宽度 支持8/10/12/14/16bit  
+
::12.  ''' '''原始数据的字节宽度 支持8/10/12/14/16bit  
 
::13.  Compress:  
 
::13.  Compress:  
::14.  解码图像压缩模式: 是否转存原始图像压缩数据,默认是0  0代表不压缩
+
::14.  ''' '''解码图像压缩模式: 是否转存原始图像压缩数据,默认是0  0代表不压缩
 
::15.  FrmCnt:  
 
::15.  FrmCnt:  
::16.  获取VI 框架个数
+
::16.  ''' '''获取VI 框架个数
 
::17.  ByteAlign:  
 
::17.  ByteAlign:  
::18.  是否转换为字节对齐, 默认值为1
+
::18.  ''' '''是否转换为字节对齐, 默认值为1
 
::19.  RatioShow:  
 
::19.  RatioShow:  
::20.  文件名上是否对比率信息原始展现,默认为1
+
::20.  ''' '''文件名上是否对比率信息原始展现,默认为1
 
::21.   
 
::21.   
::22.
+
::22. *************************************************
  
====vi_chn_dump(输入通道视频帧保存)====
+
====vi_chn_dump(输入通道视频帧转储)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
 
~ # ./vi_chn_dump -h
 
~ # ./vi_chn_dump -h
第659行: 第729行:
 
:shell 说明:
 
:shell 说明:
 
::1. 运行  ./vi_chn_dump -h
 
::1. 运行  ./vi_chn_dump -h
::2.  
+
::2. ''' '''
 
::3. 注意:此工具仅用于测试!!!
 
::3. 注意:此工具仅用于测试!!!
 
::4.   获取更多信息请输入 ./vi_chn_dump -h
 
::4.   获取更多信息请输入 ./vi_chn_dump -h
 
::5.  
 
::5.  
 
::6.
 
::6.
::7.  
+
::7. **********************************************************
 
::8. 使用说明: ./vi_chn_dump [ViPipe] [ViChn] [FrmCnt] [ByteAlign]
 
::8. 使用说明: ./vi_chn_dump [ViPipe] [ViChn] [FrmCnt] [ByteAlign]
 
::9. 1)ViPipe:  
 
::9. 1)ViPipe:  
::10.   PIPE 号,范围0~7
+
::10.  PIPE 号,范围0~7
 
::11. 2)ViChn:  
 
::11. 2)ViChn:  
::12.   vi 通道号
+
::12.  vi 通道号
 
::13. 3)FrmCnt:  
 
::13. 3)FrmCnt:  
::14.   视频帧数
+
::14.  视频帧数
 
::15. 4)ByteAlign:  
 
::15. 4)ByteAlign:  
::16.   是否转换为字节对齐, 默认值为1
+
::16.  是否转换为字节对齐, 默认值为1
 
::17.
 
::17.
::18.
+
::18. **********************************************************
  
====vo_chn_dump(输出通道视频帧保存)====
+
====vo_chn_dump(输出通道视频帧转储)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
 
~ # ./vo_chn_dump -h
 
~ # ./vo_chn_dump -h
第709行: 第779行:
 
::5.  
 
::5.  
 
::6.
 
::6.
::7.  
+
::7. *************************************************
 
::8. 使用说明:./vo_chn_dump [VoLayer] [VoChn] [Frmcnt].
 
::8. 使用说明:./vo_chn_dump [VoLayer] [VoChn] [Frmcnt].
 
::9. 1)VoLayer:  
 
::9. 1)VoLayer:  
::10. 选择要转储的视频输出视频层号
+
::10.   选择要转储的视频输出视频层号
::11. 默认是0
+
::11.   默认是0
 
::12.2)VoChn:  
 
::12.2)VoChn:  
::13.选择要转储的视频输出通道
+
::13.  选择要转储的视频输出通道
::14. 默认是0
+
::14.   默认是0
 
::15. 3)FrmCnt:  
 
::15. 3)FrmCnt:  
::16. 需要转储的视频帧个数
+
::16.   需要转储的视频帧个数
::17. 默认1
+
::17.   默认1
::18.
+
::18.*************************************************
::19.
 
::20.
 
  
 
====vo_screen_dump(转储输出屏幕图像数据)====
 
====vo_screen_dump(转储输出屏幕图像数据)====
第753行: 第821行:
 
::5.  
 
::5.  
 
::6.
 
::6.
::7.  
+
::7. *************************************************
 
::8. 使用说明:./vo_screen_dump [VoLayer] [Frmcnt].
 
::8. 使用说明:./vo_screen_dump [VoLayer] [Frmcnt].
 
::9. 1)VoLayer:  
 
::9. 1)VoLayer:  
::10. 选择要转储的视频输出视频层号
+
::10.  选择要转储的视频输出视频层号
::11. 默认0
+
::11.  默认0
 
::12. 2)FrmCnt:  
 
::12. 2)FrmCnt:  
::13. 需要转储的视频帧个数
+
::13.  需要转储的视频帧个数
::14. 默认1
+
::14.  默认1
::15.  
+
::15. *************************************************
::16.
+
 
::17.
 
  
 
====vo_wbc_dump(回写设备的输出图像数据转储)====
 
====vo_wbc_dump(回写设备的输出图像数据转储)====
第815行: 第882行:
 
::5.  
 
::5.  
 
::6.
 
::6.
::7.  
+
::7. *************************************************
 
::8. 使用说明: ./vpss_chn_dump [VpssGrp] [VpssChn] [FrmCnt]
 
::8. 使用说明: ./vpss_chn_dump [VpssGrp] [VpssChn] [FrmCnt]
 
::9. 1)VpssGrp:  
 
::9. 1)VpssGrp:  
::10. VPSS GROUP 号
+
::10.  VPSS GROUP 号
 
::11. 2)VpssChn:  
 
::11. 2)VpssChn:  
::12. VPSS 通道号
+
::12.  VPSS 通道号
 
::13. 3)FrmCnt:  
 
::13. 3)FrmCnt:  
::14. 转储的视频帧个数
+
::14.  转储的视频帧个数
::15.  
+
::15.*************************************************
::16.
 
::17.
 
  
====vpss_src_dump====
+
====vpss_src_dump(转储视频缓存池帧数据)====
 
:<syntaxhighlight lang="bash" line>
 
:<syntaxhighlight lang="bash" line>
 
~ # ./vpss_src_dump -h
 
~ # ./vpss_src_dump -h
第849行: 第914行:
  
 
:shell 说明:
 
:shell 说明:
::1.  
+
::1. 运行 vpss_src_dump -h
 
::2.  
 
::2.  
::3.  
+
::3. 注意:此工具仅用于测试使用!!!
::4.  
+
::4. 获取更多信息请输入:./vpss_src_dump -h
 
::5.  
 
::5.  
 
::6.
 
::6.
 +
::7. *************************************************
 +
::8. 使用说明:./vpss_src_dump [Grp] [Pipe]
 +
::9. 1)VpssGrp:
 +
::10.  VPSS GROUP 号
 +
::11. 2)Pipe:
 +
::12.  VPSS 组的管道号
 +
::13. *************************************************
 +
 +
=='''其他功能说明'''==
 +
====nfs配置和网络====
 +
 +
:1,pc机安装nfs服务,安装前可以先学习下这个网站内容:https://blog.csdn.net/iamplane/article/details/53912176
 +
:pc机操作示例如下:
 +
:<syntaxhighlight lang="bash" line>
 +
 +
$ sudo apt-get install nfs-kernel-server
 +
$ sudo apt-get install nfs-common​
 +
$ sudo gedit /etc/exports #添加下面内容/home/nfs *(rw,sync,no_root_squash,no_subtree_check)
 +
$ sudo /etc/init.d/rpcbind restart #重启rpcbind
 +
$ sudo /etc/init.d/nfs-kernel-server restart #重启nfs服务
 +
$ showmount -e #使用此命令后有”/home/nfs“则安装成功
 +
 +
</syntaxhighlight>
 +
 +
:2,设备debug串口链接到PC机上,串口参数是115200 8N1(详细见[[#接口引脚定义 | 串口接口定义]])
 +
 +
:在设备串口终端上,通过下面命令配置IP eth0:
 +
:<syntaxhighlight lang="bash" line>
 +
~ # ifconfig eth0 192.168.8.189
 +
</syntaxhighlight>
 +
 +
:在设备串口终端,通过下面命令挂载PC机的/home/nfs目录到设备的/mnt/nfs目录(192.168.8.xx是PC机的IP,和设备eth0的IP处在同一网段即可):
 +
:<syntaxhighlight lang="bash" line>
 +
~ # mount -t nfs -o nolock -o tcp 192.168.8.xx:/home/nfs /mnt/nfs
 +
~ # cd /mnt/nfs
 +
~ # ls #查看PC机共享的内容
 +
</syntaxhighlight>
 +
 +
:这样PC机共享出/home/nfs目录后,在设备的/mnt/nfs目录就可以访问PC机/home/nfs目录的内容。
 +
 +
====视频网络直播====
 +
:1,这个demo不是sdk里面自带的,是后期移植的,解码后分辨率只有1920x1080,30帧每秒,如果需要高清直播,需要客户自行移植。
 +
::<syntaxhighlight lang="bash" line>
 +
~# ifconfig eth0 192.168.8.189
 +
~# cd /root/
 +
~# ./sample_rtsp
 +
</syntaxhighlight>
 +
 +
:2,然后在vlc视频播放器的URL的流媒体栏输入:rtsp://192.168.8.189/stream_chn0.h264既可进行实时视频播放,注意安装vlc的电脑IP和设备IP在同一网段。
 +
::[[文件:EMB-7540-rtsp8-1.jpg|500px| 图8-1 VLC输入URL ]]
 +
:3,在ubuntu系统里面,打开video播放器,添加rtsp://192.168.8.189/stream_chn0.h264 即可实时视频播放,ubuntu电脑IP和设备IP在同一网段。
 +
::[[文件:EMB-7540-rtsp8-2.png|500px| 图8-2 video输入URL ]]
 +
::[[文件:EMB-7540-rtsp8-3.png|500px| 图8-3 video直播视频 ]]
 +
 +
====继电器使用====
 +
:通过操作GPIO12_6可以控制继电器的常开和闭合,GPIO12_0负责给继电器5V供电。
 +
:<syntaxhighlight lang="bash" line>
 +
~# himm 0x1f001064 0x200                        #引脚复用为GPIO12_0模式,5V供电用
 +
~# himm 0x1f00107c 0x15f0                      #引脚复用为GPIO12_6模式,继电器开关用
 +
~# echo 96 > /sys/class/gpio/export            #导出GPIO12_0
 +
~# echo out > /sys/class/gpio/gpio96/direction  #设置GPIO12_0方向为输出
 +
~# echo 1 > /sys/class/gpio/gpio96/value        #给继电器5V供电开
 +
~#
 +
~# echo 102 > /sys/class/gpio/export            #导出GPIO12_6
 +
~# echo out > /sys/class/gpio/gpio102/direction #设置GPIO12_6方向为输出
 +
~# echo 1 > /sys/class/gpio/gpio102/value      #控制继电器常开
 +
~# echo 0 > /sys/class/gpio/gpio102/value      #控制继电器常闭
 +
~# echo 102 > /sys/class/gpio/unexport          #取消GPIO12_6的导出
 +
~# echo 96 > /sys/class/gpio/unexport          #取消GPIO12_0的导出
 +
</syntaxhighlight>
 +
 +
====USB口U盘挂载====
 +
:将U盘插入USB口,会有很多提示信息,其中比较有用的标识是sda: sda1信息(第一个U盘,后面以此是sdb1,sdc1...),然后通过下面命令进行U盘挂载,进入/mnt/usb目录可以看到U盘内容。
 +
:<syntaxhighlight lang="bash" line>
 +
 +
~ # mount -t vfat /dev/sda1 /mnt/usb #假设看到的提示信息是sda1
 +
~ # cd /mnt/usb
 +
~ # ls #查看U盘内容
 +
</syntaxhighlight>
 +
 +
====TF口使用====
 +
:将TF卡插入到设备TF卡槽内,重启系统,在终端会有mmc1: new high speed SD card at address 0001提示。使用下面命令进行挂载(mmcblk0是系统emmc使用,TF卡为mmcblk1),在 /mnt/mmc目录下可以看到TF卡里面的内容。
 +
 +
:<syntaxhighlight lang="bash" line>
 +
 +
~ # mount -t vfat /dev/mmcblk1p1 /mnt/mmc
 +
~ # cd /mnt/mmc
 +
~ # ls #查看TF卡内容
 +
</syntaxhighlight>
 +
 +
====COM口使用====
 +
:一个COM232,一个COM485,一个debug调试串口,引脚定义详见串口[http://android1.norco.com.cn:7070/index.php/EMB-7540-COM 接口定义]。
 +
:软件上COM232口对应的设备是/dev/ttyAMA3,COM485对应的设备是/dev/ttyAMA4,debug串口对应的设备是/dev/ttyS000。
 +
:调试串口默认参数是115200 8 N 1。
 +
 +
=='''拼接及NNIE开发说明'''==
 +
====拼接====
 +
:*[http://norcord.com:8070/d/004f983ec2bd4498a863/ 拼接工具和文档 下载]
 +
:下载包中Hi3559AV100_PQ_V2.0.2.0.zip是板端运行的程序,拷贝到板端后解压,执行脚本./HiIspTool.sh -a  sensortype (sensortype为configs目录下的文件名,例如:./HiIspTool.sh -a imx377avs);只有先运行板端程序后才可在PC端运行工具。
 +
:下载包中HiPQTools_V5.13.6.zip是运行在PC上工具,用来调试图像质量,拼接时需要使用该工具采集图像和标定。
 +
:下载包中ITTP_Stream_V5.0.18.zip是PC端点播工具,用来远程观看板端采集视频。
 +
:拼接标定步骤请详细参考《拼接调试指南》。
 +
 +
====NNIE====
 +
:*[http://norcord.com:8070/d/6a4d4b6fb53f4f738b7b/ NNIE工具和文档 下载]
 +
:下载包中HiSVP_PC_V1.1.2.0.tgz是海思模型转化和仿真工具,目前仅支持caffe模型。
 +
:用户在caffe框架上训练得到的模型需要使用该工具转化成端板识别的模型,即wk文件。
 +
:模型转化请参考《HiSVP开发指南》。

2022年8月17日 (三) 15:14的最新版本

目录

资源特性

概览
正面
背面
  • CPU:HiSilicon Hi3559A 2xA73 + 2xA53四核处理器
  • GPU:Mali 2*G71@900MHz GPU
  • Memory:板载4GB DDR4
  • Storage:板载16GB iNAND Flash,1x TF卡槽
  • Ethernet: 1 x LAN,10/100/1000Mbps
  • Input:CMOS Sensor:(根据镜头规格设计转接板)
1x8K30fps 输入;
2x4K60fps 输入;
或4x4K30fps 输入/6x1080P30fps输入
  • Display:1xHDMI,1xMIPI/LVDS
  • Encode/decode:视频支持H264/H.265/JPEG多种格式编解码。
音频支持G.711/G.726/AAC/等编解码
  • Algorithm:详见smaple说明。
  • Touch:电容或电阻屏
  • USB Host: 1x USB3.0,1x Mini USB2.0
  • COM: 1x COM232;1x COM485;1x debug
  • Audio:1xMic;1xLine out;1xMic(3.5mm四节耳机孔)
  • Other I/O: 2xDI,1xDO;2xGyroscope;支持GPIO,I2C,SPI扩展
  • System Control:1xRST BUTTON,1xPWR LED
  • RTC:支持
  • Watchdog:支持
  • Power Supply:单电源+ 12V DC
  • Temperature:Work :-20℃ ~ +65℃, Storage :-40℃ ~ +85℃
  • Humidity:5% ~ 95%相对湿度,无冷凝
  • Size: 120mm x 80 mm
  • OS: Linux-4.9

接口布局和尺寸

接口概览

EMB-7540 接口概览 EMB-7540 接口概览1

接口引脚定义

传感器接口转接板定义

EMB-7540 转接板

机械尺寸

EMB-7540尺寸.jpg

下载

  • 系统镜像文件下载
  • 系统烧录工具下载
  • Sample源码下载(包括SDK库)
  • [sample源码文件]

烧录方法

HiTool 烧录方法

适用场景

  • 适用于一键烧写所有程序镜像到单板flash 上的场景、单板已有 boot 可按地址烧写其他程序镜像到单板 flash 上的场景,以及在空板上只烧写 boot 到单板 flash 上的场景。
  • 本文只介绍 <eMMC烧录>方法。

环境部署

HiBurn 工具烧写的环境准备如下:
  • 步骤 1. PC 与单板之间连接好串口、网线,且因工具烧写需要涉及到与 bootrom 交互,故单板硬件上 bootrom_sel 需要设置为 1,从 bootrom 启动。
  • 步骤 2. 把 HiTool-BVT-X.X.X.zip 拷贝到 PC 上(PC 要求安装 Win7、XP 操作系统)的某个本地硬盘。在 HiTool-XXX-4.0.15 及以后的版本已经集成了 jre,无需单独安装 JRE。如果是老版本工具,请预先安装的 32 位的 jre1.6(如 jre-6u1-windows-i586-p),否则HiTool 可能无法运行。
链接如下:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
查看当前 PC 安装的 JRE 版本号,可以通过在开始->运行->键入 cmd 中输入 java –version 查看当前已安装的 JRE 版本号,若当前版本为 1.6.0_xx 即可,若当前版本号高于 1.6,则请打开 HiTool 目录下的 HiTool.ini,将其中-XX:MaxTenuringThreshold=31 参数值改为-XX:MaxTenuringThreshold=15,即可支持 1.7 及更高版本的 JRE。
  • 步骤 3. 解压 HiTool-BVT-X.X.X.zip,双击工具目录下的 HiTool.exe,打开 HiTool 工具,如图 1-1 所示。
图1-1 从 HiTool 工具目录打开 HiTool 工具
  • 步骤 4. 选择单板对应的芯片型号,如图 1-2 所示。
图1-2 选择单板对应的芯片型号
  • 步骤 5. 在欢迎页中选择 HiBurn 工具, 如图 1-3 所示。
图1-3 选择 HiBurn 工具
  • 步骤 6. 参数配置,选择连接单板所用的串口,选择 PC 端使用的网络 IP 地址,配置好单板的MAC 地址、IP 地址、子网掩码以及网关,配置如图 1-4 所示。
图1-4 参数设置

eMMC烧录

适用场景
适用场景如下:只适用于 eMMC 烧写,不管单板上有没有 boot 都适用,可实现一键烧写所有镜像。
烧写步骤
具体烧写步骤如下:
  • 步骤 1. 切换到“烧写 eMMC”页签,如图 5-1 所示。
图5-1 eMMC 烧写界面
说明:
切换“默认采用 XML 所在路径”的勾选状态,若勾选,则优先在 XML 路径下查找该分区文件。若不勾选,则优先采用绝对路径查找该文件,若找不到,再尝试以在 XML 所在目录下查找该文件,该状态默认被勾选。
XML 是一个配置文件用于保存分区表信息的,可以将编辑的分区表使用工具上的 Save 按钮保存成一个 XML 文件,下次打开工具时,将 XML 导入进来,分区表信息就直接加载进来。
  • 步骤 2. 配置单板分区信息,点击“浏览”,可选择已设置好的分区表信息,载入工具中,如图 5-2 所示界面。
图5-2 配置单板分区信息
  • 步骤 3. 准备单板环境。连接单板的串口和网口,如果单板处于通电状态,给单板下电 。
  • 步骤 4. 烧写单板,点击烧写按钮【Burn】。
  • 步骤 5. 给单板上电,进入烧写过程,等待烧写完成。
  • 烧写过程的信息会在控制台中显示。
  • 串口选择是否正确。
  • IP 地址设置是否正确,地址是否被占用。
  • 是否有短接单板上的自举跳线。
  • 步骤 6. 烧写完成,连接终端工具,重启单板。

SD卡(U盘) 烧录方法

适用场景

  • sd卡烧录简单快速,可用于裸板烧录;U盘烧录必须在有uboot情况下。

烧写步骤

具体烧写步骤如下:
  • 步骤 1. 格式化 SD卡(U盘)为 FAT32 格式,若 SD 卡有多个分区时,升级包必须放在第一个分区,否则扫描不到升级包。
  • 步骤 2. 从上面链接处下载系统烧录镜像,把各镜像文件名更改为:u-boot.bin,kernel,rootfs.ext4。
  • 步骤 3. 新建config文件(若下载镜像文件中有config则跳过该步骤),config文件内容如下:
setenv bootargs 'mem=512M console=ttyAMA0,115200n8 clk_ignore_unused root=/dev/mmcblk0p3 rootfstype=ext4 rw rootwait blkdevparts=mmcblk0:1M(u-boot.bin),10M(kernel),96M(rootfs.ext4),1024M(data),-'
setenv bootcmd 'mmc read 0 0x42000000 0x800 0x5000;bootm 0x42000000'
  • 步骤 4. 选择升级烧录模式,把JFP(JFP)的3(UPDATE_MODE_N ),4(GND)脚用跳帽短接, 。
  • 步骤 5. 把u-boot.bin,kernel,rootfs.ext4,config文件拷贝到SD卡或U盘中(目标文件sample_app.tar.gz也可以拷贝进来),插入SD卡,上电启动,等待5-20秒即可烧录成功,可在串口中看到如下打印:
Sd burn.PNG
  • 注意事项:
u-boot 镜像名称必须为 u-boot.bin。
裸烧会自动保存 config 中的 bootargs 和 bootcmd 环境变量,没有 config 文件时,仅会烧写 bootrom 读取的 u-boot 镜像。
烧录成功后记得把JFP的3,4引脚跳帽去掉,否则下次启动又会进入升级烧录模式。

例程环境搭建

工具链安装

  • 1) 将安装包aarch64-himix100-linux_v2.0.2.0.tgz和gcc-arm-none-eabi-4_9-2015q3.tgz拷贝到安装了ubuntu环境的PC机上,在PC机的shell中执行下面步骤进行安装:
1 $ tar -zxf aarch64-himix100-linux_v2.0.2.0.tgz
2 $ chmod +x aarch64-himix100-linux.install
3 $ sudo ./aarch64-himix100-linux.install
4 $ 
5 $ tar -zxf gcc-arm-none-eabi-4_9-2015q3.tgz
6 $ cd gcc-arm-none-eabi-4_9-2015q3
7 $ sudo ./gcc-arm-none-eabi-4_9-2015q3.install
  • 2) 执行 source /etc/profile 或者重启电脑让环境变量生效。注意,如果不重启电脑,仅仅source一下,环境变量只在当前shell里生效。

sample环境搭建

下载sample目标文件文件通过U盘拷贝或者nfs网络拷贝到设备中,在设备串口终端执行下列命令进行安装,然后按照 Demo使用例程。
  • 1) U盘拷贝安装。
先将下载的文件sample_imx377.tar.bz2放在U盘根目录,U盘插上设备的USB口,在设备终端执行下面命令:
1 ~# mount -t vfat /dev/sda1 /mnt/usb
2 ~# cd /root/
3 ~# tar -jxvf /mnt/usb/sample_imx377.tar.bz2
  • 2) nfs网络拷贝安装。
nfs搭建方式见 nfs配置和网络,下载sample_imx377.tar.bz2文件放在PC机的/home/nfs目录,在设备终端执行下面命令(PC的IP是192.168.8.xx):
1 ~# ifconfig eth0 192.168.8.xxx #设备IP和下面电脑IP,192.168.8.xx在同一网段
2 ~# mount -t nfs -o nolock -o tcp 192.168.8.xx:/home/nfs /mnt/nfs
3 ~# cd /root/
4 ~# tar -jxvf /mnt/nfs/sample_imx377.tar.bz2

Demo使用

注意用户需要根据自己不同摄像头下载不同的例程。

sample_venc(视频数据编码)

1 ~ # ./sample_venc
2 Usage : ./sample_venc [index] 
3     index:
4     0) H.265e@4K@120fps + H264e@1080p@30fps.
5     1) H.265e@4K@60fps + H264e@4K@60fp.
6     2) Lowdelay:H.265e@4K@30fps.
7     3) IntraRefresh:H.265e@4K@60fps + H264e@4K@60fps.
8     4) Qpmap:H.265e@4K + H264e@4K@60fps.
9     5) Mjpeg@4K@60fps +Jpeg@4K.
shell 说明:
1. 运行sample_venc (录制) 视频编码样例,需要接摄像头CAM1。
2. 使用方法: ./sample_venc [index]
3. 参数<索引>
4.  0) h265编码,3840×2160分辨率,每秒120帧 + h264编码,1920x1080分辨率,每秒30帧
5.  1) h265编码,3840×2160分辨率,每秒60帧 + h264编码,3840×2160分辨率,每秒60帧
6.  2) Lowdelay(低延时属性):h265编码,3840×2160分辨率,每秒30帧
7.  3) IntraRefresh(P 帧帧内刷新):h265编码,3840×2160分辨率,每秒60帧 + h264编码,3840×2160分辨率,每秒60帧
8.  4) Qpmap(是一种码率控制模式):h265编码,3840×2160分辨率 + h264编码,3840×2160分辨率,每秒60帧
9.  5) Mjpeg(Mjpeg协议编码方式)的3840×2160分辨率,每秒60帧 + Jpeg(Jpeg的编码)的3840×2160分辨率

sample_vdec(视频数据解码)

 1 ~ # ./sample_vdec
 2 Usage : ./sample_vdec <index> <IntfSync>
 3 index:
 4     0)  VDEC(H265)-VPSS-VO
 5     1)  VDEC(H264)-VPSS-VO
 6     2)  VDEC(JPEG->YUV)-VPSS-VO
 7     3)  VDEC(JPEG->RGB)
 8 IntfSync :
 9     0) VO HDMI 4K@30fps.
10     1) VO HDMI 1080P@30fps.
shell 说明:
1. 运行sample_vdec 视频解码样例,解码目录下的视频和图片文件。
2. 使用提示: ./sample_vdec <索引> <Vo接口时序类型>
3. 参数<索引>:
4.  0) VDEC解码器输入(H265的编码格式视频)--->VPSS(视频处理)--->VO(视频输出)
5.  1) VDEC解码器输入(H264的编码格式视频)--->VPSS(视频处理)--->VO(视频输出)
6.  2) VDEC解码器输入(JPEG格式图片)--->VPSS(视频处理)--->VO(视频输出)
7.  3) VDEC解码器输入JPEG解码成RGB数据
8. 参数<IntfSync>:
9.  0) 输出到HDMI 3840×2160分辨率,每秒30帧
10.  1) 输出到HDMI 1920x1080分辨率,每秒30帧

sample_audio(音频相关)

 1 ~ # ./sample_audio
 2 Usage : ./sample_audio <index> <channel>
 3 index:
 4     0)  start AI to AO loop
 5     1)  send audio frame to AENC channel from AI, save them
 6     2)  read audio stream from file, decode and send AO
 7     3)  start AI(VQE process), then send to AO
 8     4)  start AI to AO(Hdmi) loop
 9     5)  start AI to AO(Syschn) loop
10 channel:
11     0) mic0 input.
12     1) mic1 input.
shell 说明:
1. 运行sample_audio 音频 (输入/输出/编码/解码)样例
2. 使用提示:./sample_audio <索引> <通道>
3. 以下内容是索引对应的功能
4.  0) 音频从输入到输出 (话筒功能)
5.  1) 采集音频输入帧发送到编码通道,保存文件 (录音功能)
6.  2) 从文件读取音频流,解码然后发送到输出 (解码播放功能)
7.  3) 通过音频输入声音质量增强处理,然后输出音频 (声音质量增强处理功能)
8.  4) 采集音频输入到HDMI中音频输出 (HDMI设备播放音频功能)
9.  5) 音频输入到系统音输出 (话筒功能)
10.音频输入通道
11.  0) mic0输入(HeadPhone)
12.  1) mic1输入(插针)

sample_snap(拍照)

1 ~ # ./sample_snap
2 Usage : ./sample_snap <index> 
3 index:
4          0)double pipe offline, normal snap.
shell 说明:
1. 运行sample_snap 拍照
2. 使用说明:./sample_snap <索引>
3. 参数<索引>
4.  0)双 pipe 离线模式普通拍照

sample_dpu_main(Depth Process Unit,深度图)

1 ~ # ./sample_dpu_main
2 Usage : ./sample_dpu_main <index>                                               
3 index:                                                                          
4          0) VI->VPSS->RECT->MATCH.                                              
5          1) FILE->RECT->MATCH.
shell 说明:
1. 运行 sample_dpu_main
2. 使用方法:./sample_dpu_main <索引>
3. <索引>
4.  0) DPU(Depth Process Unit)对输入的左图像和右图像经过校正和匹配计算得出深度图
5.  1) DPU(Depth Process Unit)对读取的文件的左图像和右图像经过校正和匹配计算得出深度图

sample_avs(Any View Stitching,全景拼接)

1 ~ # ./sample_avs
2 Usage : ./sample_avs <index>
3 index:
4          0) 2 fisheye stitching, Normal projection.
5          1) 4 fisheye stitching, Cube map.
6          2) 4 pic no blend stitching.
7          3) 8 nonfisheye Equirectangular.
8          4) 2 fisheye stitching, Image stabilizing.
9          5) Generate lut.
shell 说明:
1. 运行 sample_avs
2. 使用说明: ./sample_avs <index>
3. <index>
4.  0) 2个鱼眼镜头拼接,等距柱面投影模式输出
5.  1) 4个鱼眼镜头拼接,正六面体投影模式输出
6.  2) 4个摄像头非融合拼接(硬拼)
7.  3) 目前暂不支持
8.  4) 目前暂不支持
9.  5)生成LUT表

sample_fisheye(鱼眼模式)

 1 ~ # ./sample_fisheye
 2 
 3 Usage : ./sample_fisheye <index> <vo intf> <venc type>
 4 index:
 5          0) fisheye 360 panorama 2 half with ceiling mount.
 6          1) fisheye 360 panorama and 2 normal PTZ with desktop mount.
 7          2) fisheye 180 panorama and 2 normal dynamic PTZ with wall mount.
 8          3) fisheye source picture and 3 normal PTZ with wall mount.
 9          4) nine_lattice preview(Only images larger than or equal to 8M are supported).
10 vo intf:
11          0) vo HDMI output, default.
12          1) vo BT1120 output.
13 venc type:
14          0) H265, default.
15          1) H264.
shell 说明:
1. 运行 ./sample_fisheye
2. 使用说明 ./sample_fisheye <index> <vo intf> <venc type>
3. index:
4.  0) 2个“半顶装模式”的鱼眼360°全景视频
5.  1) 2个普通“地装的PTZ”鱼眼360°全景视频
6.  2) 2个普通“壁装的PTZ”鱼眼180°全景视频
7.  3) 三个鱼眼原画的普通PTZ 壁装视频
8.  4) 九格预览视频(仅支持大于或等于8m的图像)
9. vo intf:
10.  0) 默认HDMI输出
11.  1) BT1120输出
12. venc type:
13.  0) 默认H265编码
14.  1) H264编码

sample_vio(视频输入输出)

 1 ~ # ./sample_vio 
 2 Usage : ./sample_vio <index> <intf>
 3 index:
 4          0)parallel SDR8     VI - VPSS - VO - HDMI.      Embeded isp, phychn channel preview.
 5          1)online   SDR8     VI - VPSS - VO - HDMI.      2 pipe, Embeded isp, phychn channel pr.
 6          2)offline  SDR8     VI - VPSS - VO - HDMI.      4 pipe, Embeded isp, phychn channel pr.
 7          3)online  WDR+HDR10 VI - VPSS - VO - HDMI.      Embeded isp, phychn channel preview.
 8          4)online   SDR8     VI - VO - HDMI.             Embeded isp, LDC+ROTATE.
 9          5)online   SDR8     VI - VO - HDMI.             Embeded isp, FreeRotation.
10          6)online   SDR8     VI - VO - HDMI.             Embeded isp, LDC+SPREAD.
11          7)online   SDR8     VI - VPSS - VO - HDMI.      Embeded isp, dump raw, phychn channel .
12 intf:
13          0) vo HDMI output, default.
14          1) vo BT1120 output.
shell 说明:
1. 运行 sample_vio
2. 使用方法:./sample_vio <index> <intf>
3. index:
4.  0) 并行八位标清输入--> 视频处理 -->输出到HDMI 嵌入式图像信号处理,物理通道预览
5.  1) 在线八位标清输入--> 视频处理 -->输出到HDMI 2管道的嵌入式图像信号处理,物理通道预览
6.  2) 离线八位标清输入-->视频处理 -->输出到HDMI 4管道的嵌入式图像信号处理,物理通道预览
7.  3) 在线十位高清+宽动态视频输入-->视频处理 -->输出到HDMI. 嵌入式图像信号处理,物理通道预览
8.  4) 在线八位标清输入 -->输出到HDMI 嵌入式图像信号处理,镜头畸变校正和旋转
9.  5) 在线八位标清输入 -->输出到HDMI 嵌入式图像信号处理,自由角度旋转
10.  6) 在线八位标清输入 -->输出到HDMI        嵌入式图像信号处理,镜头畸变校正和展宽
11.  7) 在线八位标清输入 --> 视频处理 -->输出到HDMI
12. intf:
13.  0) 默认HDMI输出
14.  1) BT1120输出

sample_vgs(Video Graphics Sub-System,视频图形子系统)

1 ~ # ./sample_vgs
2 Usage : ./sample_vgs <index> <intf>
3 index:
4          0) SDR10 COMPRESS, VI - VGS - VO - HDMI. 
5 intf:
6          0) vo HDMI output, default.
7          1) vo BT1120 output.
shell 说明:
1. 运行 sample_vgs
2. 使用说明:./sample_vgs <index> <intf>
3. index:
4.  0) 10比特位压缩格式,输入-->视频图像子系统-->HDMI输出
5. intf:
6.  0) 默认HDMI输出
7.  1) BT1120输出

sample_tde(Two Dimensional Engine,利用硬件为OSD和GUI提供快速的图形绘制功能)

1 ~ # ./sample_tde
2 Usage : ./sample_tde <intf>
3 intf:
4          0) vo VGA output, default.
5          1) vo HDMI output.
shell 说明:
1. 运行 sample_tde
2. 使用说明:./sample_tde <intf>
3. intf:
4.  0) 默认VGA输出演示
5.  1) HDMI输出演示

sample_hifb(Hisilicon Framebuffer,基于Linux FB 基本功能扩展了一些图形层控制功能)

 1 ~ # ./sample_hifb
 2 Usage : ./sample_hifb <index> <device> <intf>
 3 
 4 
 5 /****************index******************/
 6 please choose the case which you want to run:
 7         0:  ARGB8888 standard mode
 8         1:  ARGB1555 BUF_DOUBLE mode
 9         2:  ARGB1555 BUF_ONE mode
10         3:  ARGB1555 BUF_NONE mode
11         4:  ARGB1555 BUF_ONE mode with compress
12         5:  ARGB8888 BUF_ONE mode with compress
13 
14 /****************device******************/
15          0) VO device 0#, default.
16          1) VO device 1#.
17 
18 /****************intf******************/
19          0) VO HDMI output, default.
20          1) VO BT1120 output.
shell 说明:
1. 运行 sample_hifb
2. 使用说明:./sample_hifb <index> <device> <intf>
5. <index>
6. 请选择一下您想运行的情况之一
7.  0: ARGB8888像素格式(标准模式)
8.  1: ARGB1555像素格式双缓存模式
9.  2: ARGB1555像素格式单缓存模式
10.  3: ARGB1555像素格式无缓存模式
11.  4: ARGB1555像素格式带压缩的单缓存模式
12.  5: ARGB8888像素格式带压缩的单缓存模式
14. <device>
15.  0) 默认输出到超清显示设备DHD0 (能够支持到4K)
16.  1) 输出到高清显示设备DHD1
18. <intf>
19.  0) 默认HDMI输出
20.  1) BT1120输出

sample_awb_calibration(自动白光平衡测量)

 1 ~ # ./sample_awb_calibration
 2 Usage : ./sample_awb_calibration <mode> <intf1> <intf2> <intf3>
 3 mode:
 4          0) Calculate Sample gain.
 5          1) Adjust Sample gain according to Golden Sample.
 6 intf1:
 7          The value of Rgain of Golden Sample. 深红色区域的锐化增益控制。
 8 intf2:
 9          The value of Bgain of Golden Sample. 
10 intf3:
11          The value of Alpha ranging from 0 to 1024 (The strength of adusting Sampe Gain will increase with the value of Alpha) .
shell 说明:
1. 运行 sample_awb_calibration
2. 使用方法:./sample_awb_calibration <mode> <intf1> <intf2> <intf3>
3. <mode>
4.  0) 计算例子中的增益
5.  1) 根据标准例子来校正例子中的增益
6. intf1:
7.  标准例子中的深红色区域的锐化增益控制值
8. intf2:
9.  标准例子中的深蓝色区域的锐化增益控制值
10. intf3:
11.  0~1024范围的初始值(采样数据的增益强度会随着初始值的值增加而增加)

sample_modeswitch(模式切换)

 1 ~ # ./sample_modeswitch
 2 Usage : ./sample_modeswitch <index> <intf>
 3 index:
 4          0)mode switch wdr to linear   for imx290  VI -  VO - HDMI.      Embeded isp, phychn channel preview.
 5          1)mode switch linear to wdr    for imx290  VI - VO - HDMI+BT1120.       Embeded isp, phychn channel preview.
 6          2)resolution  9M50FPS  to 8M30FPS   for imx477 VI - VO - HDMI.       Embeded isp, phychn channel preview.
 7          3)resolution  8M30FPS  to 9M50FPS  for imx477 VI - VO - HDMI.     Embeded isp, phychn channel preview.
 8 intf:
 9          0) vo HDMI output, default.
10          1) vo BT1120 output.
shell 说明:
1. 运行 sample_modeswitch
2. 使用说明: ./sample_modeswitch <index> <intf>
3. index:
4.  0) imx290的wdr模式到linear模式切换 
5.  1) imx290的linear模式到wdr模式切换 
6.  2) imx477的分辨率9M50FPS切换至8M30FPS
7.  3) imx477的分辨率8M30FPS切换至9M50FPS
8. intf:
9. 0) 默认HDMI输出
10. 1) BT1120输出

sample_ive_main(智能加速引擎)

 1 ~ # ./sample_ive_main
 2 Usage : ./sample_ive_main <index> [complete] [encode] [vo]
 3 index:
 4          0)BgModel,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).
 5          1)Gmm,<encode>:0, not encode;1,encode.<vo>:0,not call vo;1,call vo.(VI->VPSS->IVE->VGS->[VENC_H264]->[VO_HDMI]).
 6          2)Occlusion detected.(VI->VPSS->IVE->VO_HDMI).
 7          3)Motion detected.(VI->VPSS->IVE->VGS->VO_HDMI).
 8          4)Canny,<complete>:0, part canny;1,complete canny.(FILE->IVE->FILE).
 9          5)Gmm2.(FILE->IVE->FILE).
10          6)MemoryTest.(FILE->IVE->FILE).
11          7)Sobel.(FILE->IVE->FILE).
12          8)Ann.(FILE->IVE->STDIO).
13          9)St Lk.(FILE->IVE->FILE).
14          a)Svm.(FILE->IVE->STDIO).
15          b)Cnn.(FILE->IVE->STDIO).
shell 说明:
1. 运行 sample_ive_main
2. 使用说明: ./sample_ive_main <index> [complete] [encode] [vo]
3. index:
4.  0) 背景模型
5.  1) 高斯模型Gmm
6.  2) 遮挡检测
7.  3) 运动检测
8.  4) 边缘检测
9.  5) 高斯模型Gmm2
10  6) 内存测试
11  7) Sobel算子分割
12   8) 图像检索Ann
13  9) St和LK光流法
14  a) 分类器SVM
15   b) 神经网络Cnn

sample_dis(Digital Image Stabilization,数字防抖)

1 ~ # ./sample_dis
2 Usage : ./sample_dis <index> <intf>
3 index:
4          0)DIS-4DOF_GME.VI-VO VENC.
5          1)DIS-6DOF_GME.VI-VO VENC.
6 intf:
7          0) vo HDMI output, default.
8          1) vo BT1120 output.
shell 说明:
1. 运行 sample_dis
2. 使用说明: ./sample_dis <index> <intf>
3. index:
4.  0) DIS-4DOF_GME(四自由度 GME 算法,不使用陀螺仪),输入-输出 同时H265格式录像(存储在当前)
5.  1) DIS-6DOF_GME(六自由度 GME 算法,不使用陀螺仪),输入-输出 同时H265格式录像(存储在当前)
6. intf:
7.  0) HDMI 输出
8.  1) BT1120 输出

sample_dsp_main(DSP测试)

1 ~ # ./sample_dsp_main
shell 说明:
1. 四个DSP之DSP0的出图测试。

sample_nnie_main(神经网络硬件加速单元测试)

1. 神经网络,特别是深度学习卷积神经网络进行加速处理的硬件单元测试。
 1 ~ # ./sample_nnie_main
 2 Usage : ./sample_nnie_main <index> 
 3 index:
 4          0) RFCN(VI->VPSS->NNIE->VGS->VO).
 5          1) Segnet(Read File).
 6          2) FasterRcnnAlexnet(Read File).
 7          3) FasterRcnnDoubleRoiPooling(Read File).
 8          4) Cnn(Read File).
 9          5) SSD(Read File).
10          6) Yolov1(Read File).
11          7) Yolov2(Read File).
12          8) LSTM(Read File).
shell 说明:
1. 运行 sample_nnie_main
2. 使用说明: ./sample_nnie_main <index>
3. index:
4.   0) RFCN模型,从摄像头采集图像标定人形。
5.   1) 可训练的图像分割Segnet
6.   2) 深度学习的目标检测Alexnet
7.   3) 深度学习的目标检测DoubleRoiPooling
8.   4) 神经网络Cnn
9.   5) 可训练的SSD模型处理
10.  6) 神经网格模型Yolov1
11.  7) 神经网格模型Yolov2
12.  8) LSTM模型

vi_bayerdump(用来获取sensor原始图像的工具)

 1 ~ # ./vi_bayerdump -h
 2 
 3 NOTICE: This tool only can be used for TESTING !!!
 4          To see more usage, please enter: ./vi_bayerdump -h
 5 
 6 
 7 *************************************************
 8 Usage: ./vi_bayerdump [ViPipe] [nbit] [Compress] [FrmCnt] [ByteAlign] [RatioShow]
 9 ViPipe: 
10    0:ViPipe0 ~ 7:ViPipe 7
11 nbit: 
12    The bit num to be dump
13 Compress: 
14    Whether to  dump compressed raw, default is 0
15 FrmCnt: 
16    the count of frame to be dump
17 ByteAlign: 
18    Whether convert to Byte align, default is 1
19 RatioShow: 
20    Whether the file name of raw show ratio info, default is 1
21 e.g : ./vi_bayerdump  0 16  0 2 1 1
22 *************************************************
shell 说明:
1. 运行 vi_bayerdump -h
2.
3. 注意:此工具仅用于测试使用!
4. 获取跟多信息请输入: ./vi_bayerdump -h
5.
6.
7. *************************************************
8. 使用说明:./vi_bayerdump [ViPipe] [nbit] [Compress] [FrmCnt] [ByteAlign] [RatioShow]
9. ViPipe:
10.  ViPipe号 0~7范围内
11. nbit:
12.  原始数据的字节宽度 支持8/10/12/14/16bit
13. Compress:
14.  解码图像压缩模式: 是否转存原始图像压缩数据,默认是0  0代表不压缩
15. FrmCnt:
16.  获取VI 框架个数
17. ByteAlign:
18.  是否转换为字节对齐, 默认值为1
19. RatioShow:
20.  文件名上是否对比率信息原始展现,默认为1
21.
22. *************************************************

vi_chn_dump(输入通道视频帧转储)

 1 ~ # ./vi_chn_dump -h
 2 
 3 NOTICE: This tool only can be used for TESTING !!!
 4         To see more usage, please enter: ./vi_chn_dump -h
 5 
 6 
 7 **********************************************************
 8 Usage: ./vi_chn_dump [ViPipe] [ViChn] [FrmCnt] [ByteAlign]
 9 1)ViPipe: 
10    Vi pipe id
11 2)ViChn: 
12    vi chn id
13 3)FrmCnt: 
14    the count of frame to be dump
15 4)ByteAlign: 
16    Whether convert to Byte align , default is 1
17 *)Example:
18    e.g : ./vi_chn_dump 0 0 2 1
19 **********************************************************
shell 说明:
1. 运行 ./vi_chn_dump -h
2.  
3. 注意:此工具仅用于测试!!!
4.   获取更多信息请输入 ./vi_chn_dump -h
5.
6.
7. **********************************************************
8. 使用说明: ./vi_chn_dump [ViPipe] [ViChn] [FrmCnt] [ByteAlign]
9. 1)ViPipe:
10.  PIPE 号,范围0~7
11. 2)ViChn:
12.  vi 通道号
13. 3)FrmCnt:
14.  视频帧数
15. 4)ByteAlign:
16.  是否转换为字节对齐, 默认值为1
17.
18. **********************************************************

vo_chn_dump(输出通道视频帧转储)

 1 ~ # ./vo_chn_dump -h
 2 
 3 NOTICE: This tool only can be used for TESTING !!!
 4         To see more usage, please enter: ./vo_chn_dump -h
 5 
 6 
 7 *************************************************
 8 Usage: ./vo_chn_dump [VoLayer] [VoChn] [Frmcnt].
 9 1)VoLayer: 
10    which layer to be dump  视频输出视频层号。
11    Default: 0
12 2)VoChn: 
13    which channel to be dump
14    Default: 0
15 3)FrmCnt: 
16    the count of frame to be dump
17    Default: 1
18 *)Example:
19    e.g : ./vo_chn_dump 0 0 1 (dump one YUV)
20 *************************************************
shell 说明:
1. 运行 vo_chn_dump -h
2.
3. 注意:此工具仅用于测试使用!!!
4.    获取更多信息,请输入 ./vo_chn_dump -h
5.
6.
7. *************************************************
8. 使用说明:./vo_chn_dump [VoLayer] [VoChn] [Frmcnt].
9. 1)VoLayer:
10.   选择要转储的视频输出视频层号
11.   默认是0
12.2)VoChn:
13.  选择要转储的视频输出通道
14.   默认是0
15. 3)FrmCnt:
16.   需要转储的视频帧个数
17.   默认1
18.*************************************************

vo_screen_dump(转储输出屏幕图像数据)

 1 ~ # ./vo_screen_dump -h
 2 
 3 NOTICE: This tool only can be used for TESTING !!!
 4         To see more usage, please enter: ./vo_screen_dump -h
 5 
 6 
 7 *************************************************
 8 Usage: ./vo_screen_dump [VoLayer] [Frmcnt].
 9 1)VoLayer: 
10    Which layer to be dumped
11    Default: 0
12 2)FrmCnt: 
13    The count of frame to be dumped
14    Default: 1
15 *)Example:
16    e.g : ./vo_screen_dump 0 1 (dump one YUV)
17 *************************************************
shell 说明:
1. 运行 vo_screen_dump -h
2.
3. 注意:此工具仅用于测试使用!!!
4. 获取更多信息,请输入:./vo_screen_dump -h
5.
6.
7. *************************************************
8. 使用说明:./vo_screen_dump [VoLayer] [Frmcnt].
9. 1)VoLayer:
10.  选择要转储的视频输出视频层号
11.  默认0
12. 2)FrmCnt:
13.  需要转储的视频帧个数
14.  默认1
15. *************************************************


vo_wbc_dump(回写设备的输出图像数据转储)

1 ~ # ./vo_wbc_dump
2 
3 NOTICE: This tool only can be used for TESTING !!!
4 usage: ./vo_wbc_dump 0 [frmcnt]. sample: ./vo_wbc_dump 0 5
5 
6 Dev(0) HI_MPI_VO_SetWbcDepth errno 0xa00f8010
shell 说明:
1. 运行 vpss_chn_dump
2.
3. 注意:此工具仅用于测试使用!!!
4. 使用说明:./vo_wbc_dump 0 [frmcnt].  sample: ./vo_wbc_dump 0 5
5. 第一个参数:回写设备号
6. [frmcnt] 输出视频的帧数

vpss_chn_dump(用户从通道获取Cnt个帧处理完成的图像转储)

 1 ~ # ./vpss_chn_dump -h
 2 
 3 NOTICE: This tool only can be used for TESTING !!!
 4         To see more usage, please enter: ./vpss_chn_dump -h
 5 
 6 
 7 *************************************************
 8 Usage: ./vpss_chn_dump [VpssGrp] [VpssChn] [FrmCnt]
 9 1)VpssGrp: 
10    Vpss group id
11 2)VpssChn: 
12    vpss chn id
13 3)FrmCnt: 
14    the count of frame to be dump
15 *)Example:
16    e.g : ./vpss_chn_dump 0 0 1
17    e.g : ./vpss_chn_dump 1 4 2
18 *************************************************
shell 说明:
1. 运行 vpss_chn_dump -h
2.
3. 注意:此工具仅用于测试使用!!!
4. 获取更多信息,请输入:./vpss_chn_dump -h
5.
6.
7. *************************************************
8. 使用说明: ./vpss_chn_dump [VpssGrp] [VpssChn] [FrmCnt]
9. 1)VpssGrp:
10.  VPSS GROUP 号
11. 2)VpssChn:
12.  VPSS 通道号
13. 3)FrmCnt:
14.  转储的视频帧个数
15.*************************************************

vpss_src_dump(转储视频缓存池帧数据)

 1 ~ # ./vpss_src_dump -h
 2 
 3 NOTICE: This tool only can be used for TESTING !!!
 4         To see more usage, please enter: ./vpss_src_dump -h
 5 
 6 
 7 *************************************************
 8 Usage: ./vpss_src_dump [Grp] [Pipe]
 9 1)VpssGrp: 
10    Vpss group id
11 2)Pipe:
12    Vpss Grp pipe
13 *)Example:
14 e.g : ./vpss_src_dump 0 0 
15 *************************************************
shell 说明:
1. 运行 vpss_src_dump -h
2.
3. 注意:此工具仅用于测试使用!!!
4. 获取更多信息请输入:./vpss_src_dump -h
5.
6.
7. *************************************************
8. 使用说明:./vpss_src_dump [Grp] [Pipe]
9. 1)VpssGrp:
10.  VPSS GROUP 号
11. 2)Pipe:
12.  VPSS 组的管道号
13. *************************************************

其他功能说明

nfs配置和网络

1,pc机安装nfs服务,安装前可以先学习下这个网站内容:https://blog.csdn.net/iamplane/article/details/53912176
pc机操作示例如下:
1 $ sudo apt-get install nfs-kernel-server
2 $ sudo apt-get install nfs-common​
3 $ sudo gedit /etc/exports #添加下面内容/home/nfs *(rw,sync,no_root_squash,no_subtree_check)
4 $ sudo /etc/init.d/rpcbind restart #重启rpcbind
5 $ sudo /etc/init.d/nfs-kernel-server restart #重启nfs服务
6 $ showmount -e #使用此命令后有”/home/nfs“则安装成功
2,设备debug串口链接到PC机上,串口参数是115200 8N1(详细见 串口接口定义
在设备串口终端上,通过下面命令配置IP eth0:
1 ~ # ifconfig eth0 192.168.8.189
在设备串口终端,通过下面命令挂载PC机的/home/nfs目录到设备的/mnt/nfs目录(192.168.8.xx是PC机的IP,和设备eth0的IP处在同一网段即可):
1 ~ # mount -t nfs -o nolock -o tcp 192.168.8.xx:/home/nfs /mnt/nfs
2 ~ # cd /mnt/nfs
3 ~ # ls #查看PC机共享的内容
这样PC机共享出/home/nfs目录后,在设备的/mnt/nfs目录就可以访问PC机/home/nfs目录的内容。

视频网络直播

1,这个demo不是sdk里面自带的,是后期移植的,解码后分辨率只有1920x1080,30帧每秒,如果需要高清直播,需要客户自行移植。
1 ~# ifconfig eth0 192.168.8.189
2 ~# cd /root/
3 ~# ./sample_rtsp
2,然后在vlc视频播放器的URL的流媒体栏输入:rtsp://192.168.8.189/stream_chn0.h264既可进行实时视频播放,注意安装vlc的电脑IP和设备IP在同一网段。
图8-1 VLC输入URL
3,在ubuntu系统里面,打开video播放器,添加rtsp://192.168.8.189/stream_chn0.h264 即可实时视频播放,ubuntu电脑IP和设备IP在同一网段。
图8-2 video输入URL
图8-3 video直播视频

继电器使用

通过操作GPIO12_6可以控制继电器的常开和闭合,GPIO12_0负责给继电器5V供电。
 1 ~# himm 0x1f001064 0x200                        #引脚复用为GPIO12_0模式,5V供电用
 2 ~# himm 0x1f00107c 0x15f0                       #引脚复用为GPIO12_6模式,继电器开关用
 3 ~# echo 96 > /sys/class/gpio/export             #导出GPIO12_0
 4 ~# echo out > /sys/class/gpio/gpio96/direction  #设置GPIO12_0方向为输出
 5 ~# echo 1 > /sys/class/gpio/gpio96/value        #给继电器5V供电开
 6 ~# 
 7 ~# echo 102 > /sys/class/gpio/export            #导出GPIO12_6
 8 ~# echo out > /sys/class/gpio/gpio102/direction #设置GPIO12_6方向为输出
 9 ~# echo 1 > /sys/class/gpio/gpio102/value       #控制继电器常开
10 ~# echo 0 > /sys/class/gpio/gpio102/value       #控制继电器常闭
11 ~# echo 102 > /sys/class/gpio/unexport          #取消GPIO12_6的导出
12 ~# echo 96 > /sys/class/gpio/unexport           #取消GPIO12_0的导出

USB口U盘挂载

将U盘插入USB口,会有很多提示信息,其中比较有用的标识是sda: sda1信息(第一个U盘,后面以此是sdb1,sdc1...),然后通过下面命令进行U盘挂载,进入/mnt/usb目录可以看到U盘内容。
1 ~ # mount -t vfat /dev/sda1 /mnt/usb #假设看到的提示信息是sda1
2 ~ # cd /mnt/usb
3 ~ # ls #查看U盘内容

TF口使用

将TF卡插入到设备TF卡槽内,重启系统,在终端会有mmc1: new high speed SD card at address 0001提示。使用下面命令进行挂载(mmcblk0是系统emmc使用,TF卡为mmcblk1),在 /mnt/mmc目录下可以看到TF卡里面的内容。
1 # mount -t vfat /dev/mmcblk1p1 /mnt/mmc
2 # cd /mnt/mmc
3 # ls #查看TF卡内容

COM口使用

一个COM232,一个COM485,一个debug调试串口,引脚定义详见串口接口定义
软件上COM232口对应的设备是/dev/ttyAMA3,COM485对应的设备是/dev/ttyAMA4,debug串口对应的设备是/dev/ttyS000。
调试串口默认参数是115200 8 N 1。

拼接及NNIE开发说明

拼接

下载包中Hi3559AV100_PQ_V2.0.2.0.zip是板端运行的程序,拷贝到板端后解压,执行脚本./HiIspTool.sh -a sensortype (sensortype为configs目录下的文件名,例如:./HiIspTool.sh -a imx377avs);只有先运行板端程序后才可在PC端运行工具。
下载包中HiPQTools_V5.13.6.zip是运行在PC上工具,用来调试图像质量,拼接时需要使用该工具采集图像和标定。
下载包中ITTP_Stream_V5.0.18.zip是PC端点播工具,用来远程观看板端采集视频。
拼接标定步骤请详细参考《拼接调试指南》。

NNIE

下载包中HiSVP_PC_V1.1.2.0.tgz是海思模型转化和仿真工具,目前仅支持caffe模型。
用户在caffe框架上训练得到的模型需要使用该工具转化成端板识别的模型,即wk文件。
模型转化请参考《HiSVP开发指南》。