Hi3531 SDK

合集下载

海思SDK学习:001-HI_SDK的安装

海思SDK学习:001-HI_SDK的安装

海思SDK学习:001-HI_SDK的安装背景保密。

不管怎么样接触到了海思SDK的开发,作为⼀项⽐较常见的技术,我们开展有关地学习。

host平台 :Ubuntu 16.04arm平台 : 3531darm-gcc :4.9.4概况海思给出的官⽅资料有:⽂件名解释Hi3531D_Vxxxxxx.rar包含了有关的SDKReleaseDoc.rar官⽅发布的中英⽂⽂档arm-hisiv500-linux.tgz开发⽤的⼯具链安装以下的操作在 Linux主机上进⾏。

(本⼈这⾥是Ubuntu)Hi3531D_Vxxxxxx.rar:解压SDK包、并展开包的内容Hi3531D SDK包位置:在"Hi3531D Vxxxxxx/01.software/"⽬录下,有 Hi3531D_SDK_Vx.x.x.x.tgz 的⽂件,该⽂件就是Hi3531D的软件开发包。

tar -xf Hi*SDK*.tgzcd Hi*SDK*# 如果需要拷贝SDK包,请先运⾏source sdk.cleanup,收起SDK包的内容,拷贝到新的⽬录后再展开。

source sdk.unpackSDK⽬录介绍# schips @ ubuntu in Hi3531D_SDK [10:54:44]$ tree -L 2.├── drv #平台驱动│├── cipher│├── hisi-irda│├── rtc│├── sys_config│└── wtdg├── mpp # 存放媒体处理平台的⽬录│├── component # 组件源代码│├── extdrv # 板级外围驱动源代码│├── include # 对外头⽂件│├── ko # 内核模块│├── lib # release版本库以及⾳频库│├── linux.param│├── Makefile.param│├── sample # 样例源代码│└── tools # 媒体处理相关⼯具├── osal│├── include│└── source├── osdrv # 存放操作系统及相关驱动的⽬录│├── drv # drv源代码│├── Makefile # osdrv Makefile│├── opensource # 包含了 uboot、kernel、busybox等源码│├── pub # 编译好的镜像、⼯具、drv驱动等(空的)│├── readme_cn.txt│├── readme_en.txt│├── rootfs_scripts # rootfs源代码│└── tools # linux⼯具源代码├── package # 存放SDK各种压缩包的⽬录│├── drv.tgz # 平台驱动压缩包│├── image_uclibc # 可供FLASH烧写的映像⽂件,如内核、根⽂件系统│├── mpp.tgz # 媒体处理平台软件压缩包│├── osal.tgz│├── osdrv.tgz # linux内核/uboot/rootfs/tools源码压缩包│└── rootfs_uclibc.tgz├── scripts # 存放shell脚本的⽬录├── sdk.cleanup # SDK清理脚本└── sdk.unpack # SDK展开脚本arm-hisiv500-linux.tgz:安装交叉编译器到HOST解压与⾃动安装tar -xf arm-hisiv500-linux.tgzcd arm-hisiv500-linux# arm-hisiv500-linux.install 脚本中的 TOP_DIR 为安装⼯具链的位置,可以修改,⼀般默认即可chmod +x arm-hisiv500-linux.installsudo ./arm-hisiv500-linux.install配置⼯具链到 PATH中# 默认情况下的⼯具链配置路径export PATH=$PATH:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin测试$ arm-hisiv500-linux-gcc --versionarm-hisiv500-linux-gcc (Hisilicon_v500_20170922) 4.9.4 20150629 (prerelease)Copyright (C) 2015 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.如果出现:arm-hisiv500-linux-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory这是因为gcc太⽼的问题:解决办法:sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6 -y编译osdrvosdrv ,具体参见osdrv⽬录下readme;这⾥给出⾃⽤的编译kernel 有关的脚本配置:make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig清除:make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- clean编译:sudo PATH=$PATH:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- uImage -j4。

Hi3535与Hi3531开发包差异说明

Hi3535与Hi3531开发包差异说明

1 Hi3535和Hi3531的差异说明Hi3535和Hi3531都是针对多路高清和多路D1产品应用开发专业Soc芯片,Hi3535是一款专业的NVR芯片,而Hi3531主要针对DVR应用,同时兼顾NVR应用。

Hi3535和Hi3531的开发包结构基本一致,这里针对主要规格、SDK组件、API等关键差异进行描述,以确保使用过Hi3531芯片的客户可以快速开发产品。

1.1 规格差异点Hi3535和Hi3531规格的差异点如表1-1所示。

表1-1Hi3535和Hi3531在规格方面的差异点差异点Hi3535 Hi3531处理器 ARMCortexA9双核@Max. 1GHz ARM Cortex A9双核@Max. 930MHz视频输入不支持支持8个VI设备支持16路VI主通道,偶数主通道有次通道视频输出支持3个VO设备(2个高清设备+1个标清设备)支持8个VO设备(2个高清设备+6个标清设备)HDMI 1.4+VGA+CVBS多视频输出,其中HDMI与VGA可同源输出HDMI 1.3+VGA/YPbPr +CVBSx2多视频输出,其中HDMI与VGA可同源输出高清设备支持VGA/HDMI/BT.1120同源输出,最大支持1080P@60fps标清设备支持CVBS输出8xBT.656@27MHz输出口HDMI可支持1080P@60fps VGA可支持2560x1600@60fps3个图形层+1个鼠标层,其中图形层格式支持ARGB1555、ARGB4444、ARGB8888可配置,最大分辨率为1920 x 1200,鼠标层最大分辨率为128 x 128 5个图形层+2个鼠标层,格式为RGB1555、RGB8888可配置,最大分辨率为,其中图形层最大分辨率为2560x1600,鼠标层最大分辨率为128x128差异点Hi3535 Hi3531视频前处理去隔行,3D去噪,动态对比度调节,锐化去隔行,3D去噪,锐化4个图像COVER8个图像OSD,支持通道开关不支持8个编码OSD,支持自动反色8个编码OSD,支持自动反色视频编码协议H.264 Baseline Profile Level4.2 H.264 Baseline Profile Level5.0 H.264 Main Profile Level4.2 H.264 Main Profile Level5.0 H.264 High Profile Level4.2 H.264 High profile Level5.0 JPEG Baseline JPEG Baseline视频解码协议H.264 Baseline Profile Level 5.0 H.264 Baseline Profile Level 5.0H.264 Main Profile Level5.0 H.264 Main Profile Level5.0H.264 High profile Level5.0 H.264 High profile Level5.0MPEG4 SP L0~L3 MPEG4 SP L0~L3MPEG4 ASP L0~L5/MPEG4短头MPEG4 ASP L0~L5/MPEG4短头不支持 MPEG2MP/HL、M L、LLMPEG2 SP/MLMPEG1AVS Jizhun Level 6.0MJPEG/JPEG Baseline MJPEG/JPEG Baseline差异点Hi3535 Hi3531视频编解码性能如涉及标清分辨率,按NTSC计算z5x1080P@30fps解码+1x1080P@30fps编码+1080P@8fps JPEG抓拍z9x720P@30fps解码+1x1080P@30fps编码+720P@16fps JPEG抓拍z24xD1@30fps解码+1x1080P@30fps编码+D1@32fps JPEG抓拍z4x720p@30fps JPEG解码如涉及标清分辨率,按NTSC计算z16D1@30fps+16CIF@30fps编码+16D1@30fps解码+JPEG抓拍D1@16fpsz4x1080P@30fps+4x(960x540)@15fps编码+1x1080P@30fps解码+JPEG抓拍1080P@4fpsz4x1080P@15fps+4x(960x540)@15fps编码+4x1080P@15fps解码+JPEG抓拍1080P@4fpsz4x720P@30fps+4xQVGA@30fps编码+4x720P@30fps解码+ JPEG抓拍720P@4fpsz8x720P@15fps+8xQVGA@15fps编码+8x720P@15fps解码+ JPEG抓拍720P@8fpsz24D1@30fps解码z16x960H@30fps解码z8x720P@30fps解码z6x1080P@30fps解码音频z1路模拟输入输出z1个标准I2S输入,和模拟输入互斥z2个标准I2S输出,1个可以和模拟输出同源,另1个支持HDMI I2S输出5个标准I2S接口,其中3个仅支持输入,1个支持输入输出,1个支持HDMI I2S输出软件实现ADPCM、G.711、G.726音频编码硬件实现ADPCM、G.711、G.726音频编码运动侦测与Hi3531相同提供SAD/MV提供遮挡检测功能智能引擎与Hi3531相同集成智能分析加速引擎,支持智能运动侦测、周界防范、人脸检测、视频诊断等多种智能分析应用DDR接口1个32bit DDR3 SDRAM接口2个32bit DDR2/3 SDRAM接口最高频率800MHz(1.6Gbps)最高频率620MHz(1.24Gbps)最大容量支持2GB 每个接口最大容量支持1GBFlash与Hi3531相同SPI Nor Flash和NandFlash网络与Hi3531相同2个GMAC接口,配有TOE加速PCIe 1个PCIe 2.0接口2个PCIe 1.1接口差异点Hi3535 Hi3531SATA 3个SATA 3.0接口(其中一个SATA接口和PCIe复用)2个SATA 2.0接口支持FBS 不支持启动模式与Hi3531相同 bootrom启动SPI nor flash启动Nand Flash启动DDR启动1.2 SDK包差异点Hi3535和与Hi331在SDK包方面的主要差异如表1-2所示。

Hi3536 SDK 安装以及升级使用说明

Hi3536 SDK 安装以及升级使用说明

Hi3536 SDK 安装以及升级使用说明序1、先明确文中的几个概念。

主片: 多片级联应用中,指PCI主片。

从片: 多片级联应用中,指PCI从片。

主arm:指双CPU中的A17。

从arm:指双CPU中的A7。

第一章 安装SDK1、Hi3536 SDK包位置在"Hi3536_V100R001***/01.software/board"目录下,您可以看到一个 Hi3536_SDK_Vx.x.x.x.tgz 的文件,该文件就是Hi3536的软件开发包。

2、解压缩SDK包在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxfHi3536_SDK_Vx.x.x.x.tgz ,解压缩该文件,可以得到一个Hi3536_SDK_Vx.x.x.x目录。

3、展开SDK包内容返回Hi3536_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。

如果您需要通过WINDOWS操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。

4、在linux服务器上安装交叉编译器1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):进入Hi3536_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv300-linux目录,运行chmod +x cross.v300.install,然后运行./cross.v300.install即可。

2) 安装glibc交叉编译器:进入Hi3536_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv400-linux目录,运行chmod +x cross.v400.install,然后运行./cross.v400.install即可。

opencv2.4.9在Hi3531开发板上移植

opencv2.4.9在Hi3531开发板上移植

opencv2.4.9下载不用说了。

Ubuntu12.04虚拟机安装的+arm-hisiv200-linux交叉编译器+cmake-gui(2.8.7)参考:/luotuo44/article/details/8958990/s/blog_92942dba0101d1wj.html一、建立编译环境配置进入opencv-2.4.9目录建立release-hisiv200目录存放编译过程中文件。

#cd opencv-2.4.9#mkdir release-hisiv200#cd release-hisiv200打开cmake-gui,进行博客中的配置:#cmake-gui在configure时选择CMAKE_SYSTEM_NAME:arm-hisiv200-linuxC:选择/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-gccC++:选择/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-g++ 修改安装目录:CMAKE_INSTALL_PREFIX:/opt/2.4.9-arm-hisiv200进行编译:make二、出现问题:1、/usr/lib/libImath.so: could not read symbols: File in wrong formatcollect2: ld returned 1 exit statusmake[2]: *** [lib/libopencv_highgui.so] 错误1make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] 错误2make: *** [all] 错误2主要opencv编译OPENEXR时要用到libImath.so,所有我就把那个取消了,然后编译就没出现过这个问题。

基于Hi3531的高清跟踪摄像机的硬件设计

基于Hi3531的高清跟踪摄像机的硬件设计

了很 大 的增长 。本 文基 于华为 海思的Hj3531处理 器,设计 了新一代 的 高清跟 踪摄像机 ,并详 细分析 了 系统硬 件方案 。通 过 实际的样机 验证,证 明 了该 方
案 的优 越 性 、可 行 性 。
关键 词:Hi3531 高清 跟 踪 摄像机
中图分 类号:TN919.81
个硬件模块 ,如Hi3531最小 系统 、高清采集部分 、音 频部分 、高 清输 稳运行 ,实现 系统 的跟踪功能 。
出部分 、接 口部分 、云台控制部分 、接 口部分 、电源部 分脚。
3.6接 口部 分 的硬 件 设 计
3.1 Hi3531最 小 系统 设 计
高 清跟 踪 摄 像 机 的对 外 接 口主 要 有 电源 接 口 、网络 接 口 、SDI接
高清 跟踪摄像 机的 电源 采用 12V电源输入 ,内部 生成 1.0V、
3.2高清采 集 部 分 的硬 件设 计
1.5V、1.8V、3.3V等 电源 ,这些 电源均 由12V经过DC-DC转换 电路
高清跟踪摄像机的采集模块包含2个高清视频来源 ,一个 为标 生成 。为了系统 的稳 定运 行 ,DC-DC电路均 经过了仿真设计 ,确保
Hi353l最 小系统 主要包括DDR3内存 、FLASH和 电源部分 。 口、Rs2 32接 口、RS485接 口以及 音频接 口。Rs232、Rs485由
Hi3531拥有2个DDRC控制器 ,支持DDR3标准接 口,最高总线频率 STM32F103进行控 制 ,经过接 口驱动后与外部系统进行通信 。网络
高清跟踪 摄像 机主要 由 以下几个 部分构成 :高清 图像 采集模 个 HDMI输出接 口。BT.1120输 出信号可 以通 过GV7600转换为SDI

hi3531d编码工作原理

hi3531d编码工作原理

hi3531d编码工作原理
HI3531D编码器的工作原理主要是通过执行编码操作,将原始视频数据压
缩成三种不同类型的视频帧:I帧、P帧和B帧。

I帧是关键帧,是完整编码的帧,可以理解成一张完整画面,不依赖其他帧。

P帧则参考前面的I帧或P帧,通过与前面的I帧或P帧进行比较,记录不
同的部分,从而形成完整的画面。

单独的P帧无法形成画面。

B帧则同时参考前面的I帧或P帧以及后面的P帧。

此外,编码过程中还采用两种核心算法:帧内压缩和帧间压缩。

帧内压缩仅考虑本帧数据,不考虑相邻帧之间的冗余信息,与静态图像压缩类似。

采用有损压缩算法的帧内压缩,因为是对一个完整的图像进行编码,所以可以独立地解码、显示。

但由于其压缩效果一般,与JPEG压缩效果类似,所以达不到很高的压缩比。

而帧间压缩则考虑相邻帧之间的冗余信息,通过比较和计算相邻帧之间的数据,达到压缩效果。

这种压缩方式是无损的。

以上内容仅供参考,如需了解更多信息,建议咨询专业人士或查阅相关技术文档。

基于Hi3531和Qt的NVR人机交互系统的设计与实现

基于Hi3531和Qt的NVR人机交互系统的设计与实现

参 考 文 献
系统GUI 采用Q t / E mb e d d e d 设计实 现 , NV R系 统所有功能都
基于其进行呈 现。 根据主流视频监控 系统 , N V R 需涵盖多种监控业 学, 2 0 1 2. 务, 主要包括视频预览、 系统管理 、 录像 回放 、 远程管理及其他功 能,
设计 开 发
品的高质量 图像体验 。 Hi 3 5 3 1 高度集成和丰富的外 围接 口, 在满足 同时, 该部 分 还需 实 现 图像 抓拍 、 手 动录 像 、 OSD( On— 客户差异化产品功能、 性能、 图像质量要 求的同时 , 可大大 降f  ̄ e b o m S c r e e n D i s p h y, 屏幕 菜单式调节方式 ) 设置 、 P TZ 控制( P a n/T i l t /
3设计 与 实 现
3 . 1 Hi 3 5 3 1 图形界 面开发

视频数据具有较高要求时 , 还需对硬盘设定R AI D 0 、 RA I D5 等磁盘 阵列 , 提高数据 的安 全保 障。
( 4 ) 远程管理 。 远程管理主要在O NVI F 框架 内实现 , 对前端I P C 海 思数字媒体处理平 台提 供Hi s i l i c o n F r a me b u f e r ( Hi F B) 支 进行管理配置 , 主要实现设备搜索 、 编辑管理 , 网络 、 图像 、 摄像机等 持 图形界 面 的开 发 。 Hi FB用 于管 理 叠加 图形 层 , 它在Li 1 2 ux 参数配置 , I P C 用户管理 , 远程 日志管理 , 以及报警联动管理 等功能。 F r a me b u f e r 的基础上增加层 间c o l o r k e y 、 A l p h a等扩展功 能。 HWB 最 多 可 以管 理 7 个 叠 加 图形 层 : / d e v / f b O / d e v / f b 6 。 Hi 3 5 3 1 芯 片 支 4结语

Hi3531/Hi3532 Linux开发环境指南

Hi3531/Hi3532 Linux开发环境指南

深圳市海思半导体有限公司
地址: 网址: 客户服务电话: 客户服务传真: 客户服务邮箱:
深圳市龙岗区坂田华为基地华为电气生产中心 +86-755-28788858 +86-755-28357515 support@
邮编:518129
海思专有和保密信息 版权所有 © 深圳市海思半导体有限公司
Hi3531/Hi3532 Linux 开发环境 用户指南
前言
前言
Байду номын сангаас概述
本文档介绍 Linux 开发环境。Linux 开发环境的搭建、HiBoot、Linux 内核、根文件系 统以及内核和根文件系统的烧写,以及创建网络开发环境和如何启动 Linux 开发应用 程序。
1.3.1 安装 Linux 服务器 .............................................................................................................................1-3 1.3.2 安装交叉编译工具.............................................................................................................................1-3 1.3.3 安装 Hi3531 SDK...............................................................................................................................1-3

杭州某大学高清视频监控系统解决方案

杭州某大学高清视频监控系统解决方案

杭州某大学高清视频监控系统解决方案工程概述:杭州大学饮食管理服务公司承担着全校几万人的日常就餐服务和管理工作,下辖11个餐饮服务中心。

为确保食品安全,实时监控进出后厨的人员,以便日后有记录可查,饮食公司拟在所辖餐饮单位的后厨操作间、库房等重要出入口安装红外高清视频监控系统,利用现有的校园网、视频监控系统管理,与学校视频监控管理平台互联互通且无缝兼容,实时显示监控所有现场进出图像、任意切换放大前端图像,统一管理,分级授权各餐饮单位。

系统配置:需与学校视频监控管理平台互联互通且无缝兼容。

摄像机前端:系统前端视频采集系统采用当今主流的带红外夜视功能的数字高清摄像机,各出入口的摄像机要求能清晰的分辨出入人员的面部特征及依着特征。

所有摄像机通过网线连接于交换机。

后端存储:存储使用数字网络高清硬盘录像机,与摄像机连接于同台交换机,通过不同数量的摄像机,配置不同容量的硬盘,以满足录像时间的需要。

显示系统:采用一台24寸液晶显示器,接入高清硬盘录像机,通过鼠标进行系列操作。

远程访问:通过连接到校园网,实现校园内网络实时访问和查阅录像,并可设置不同的权限。

设备选型:1、数字高清红外摄像机:功能及特性:1/3英寸WDR CMOS Sensor,捕捉运动图象无锯齿;最高像素可达4M,最高分辨率可达1920×1080,可输出Full HD 1080P实时图像;优越的低照性能,低照度下彩转黑;红外距离30米支持ICR滤光片切换功能,在低照度的环境下,降低噪点的同时也能保证移动物体的边缘清晰不拖尾,实现昼夜监控;采用先进的3D动态智能降噪功能;动态范围大于100db;领先业界编码算法,提供广播级图像质量;支持H.264High Profile视频编码,三码流适应更多监控场景,高压缩比,高视频质量;高信噪比,图像画面清晰、干净通透;支持自动光圈,自动电子快门功能,满足不同监控场景;内置咪头,网络双向语音对讲;支持1路模拟视频环出,方便安装调节;支持SD2.0标准Micro SDHC存储卡;支持4个区域隐私遮挡设置;支持运动侦测、遮挡侦测及报警录像、图片抓拍;内嵌Web Server,支持IE浏览视频、参数配置、升级、用户权限管理摄像机图像传感器1/3" WDR 4M CMOS有效像素1920(H)×1080(V)最低照度彩色0.1Lux@(F1.2 AGC ON);黑白0.01Lux@(F1.2 AGC ON)动态范围大于100db信噪比≥50db(AGC OFF)3A控制自动控制白平衡AWB/自动增益AGC/自动曝光AE电子快门1/25—1/10000秒日夜功能支持IR-CUT机械切换红外距离≤30米音视频编码视频编码H.264 High Profile编码主码流:1920*1080,1-30帧/秒;1080*720, 1-30帧/秒图像分辨率次码流:1080*720 1-30帧/秒;704*576, 1-30帧/秒; 352*288 1-30帧/秒;第三码流:352*288 1-30帧/秒; 176×144 1-30帧/秒;视频压缩码率32Kbps~16Mbps连续可调,支持CBR/VBR字幕叠加支持通道名、日期时间叠加位置可调音频编码G.711接口模拟视频输出1路CVBS视频BNC接口输出接口:CS光学镜头镜头:可选,标配8mm自动光圈DC驱动音频/对讲输入1路麦克风输入(支持线性输入),3.5mm音频接口;音频输出1路3.5mm音频接口存储接口支持SD2.0标准Micro SDHC卡,最大容量32G(可选)复位按键用于恢复出厂设置网络接口10/100M网络自适应,RJ45适配器I/O输入输出2路开关量输入/1路开关量输出(120VAC 2A/24VDC 2A),1路RS485数据传输及存储数据存储视频、图片文件存储机制手动、自动(循环、定时、报警开关量、移动侦测、遮挡侦测)报警数据传输E-mail电子邮件、浏览器、管理软件TCP/IP、UDP、RTP、RTSP、RTCP、HTTP、DNS、DDNS、DHCP、NTP、PPPOE、协议支持SMTP、UPNP接入协议支持ONVIF无线协议支持(-W)802.11b/g/n、支持WEP、WPA、WPA2加密协议客户端浏览支持IE6.0及以上(设备内嵌Web Server),支持8用户并发访问(MAX)常规参数供电电源DC12V功率不含红外灯<5W;红外灯开启<13W整机尺寸257 (长) * 100(宽) *93(高)mm重量 1.24kg工作环境温度-10℃- +55℃,湿度0% - 90%尺寸(毫米)重量(克)Φ145(D)X96(H)mm(不含镜头) 360g2、数字高清网络硬盘录像机产品主要功能:支持网络校时,可多个时区选择;支持最大解码能力16路720P,可同时录像及预览;支持HDMI/VGA高清输出;支持10M/100M/1000M自适应网络接口;支持H.264(baseline) realtime 编解码功能;支持图像预览回放局部电子放大;支持通道画面轮巡;管理员可以创建多个操作用户并设定其权限支持四种录像方式:手动,定时,报警,移动;支持预录和延时录像;支持双向语音对讲,支持有源和无源麦克风;支持精确时间回放,支持8路全高清回放,回放带播放器可隐藏,可显示;每个通道支持4块区域遮挡;支持域名解析,拨号,同时支持掉线自动重传;通过远程客户端设置参数,升级,预览,点播,备份录像机中的录像数据;具备WEBSERVER访问功能,可对NVR进行远程操作。

海思SDK驱动部分

海思SDK驱动部分
而网络设备没有设备节点,是因为网络设备是面向报文的,很难实现相关 read、write 等文件读写函数。所以驱动的实现也与字符设备和块设备不同。
1.3 linux 驱动的一些重要概念
设备号
Linux把所有设备都当作文件,为了管理这些设备,系统为它们各自都编了号,而每个 设备号又分为主设备号和次设备号。主设备号用来区分不同类型的设备,而次设备号用
2,使用device_create()创建/dev 和/sys 节点。
3,使用 cdev_init()和cdev_add()将自身注册为字符驱动程序。
混杂设备
考虑到有的系统包含很多简单字符设备驱动,单独为这些设备分配设备号比较浪费资源, 同时工作量也很大,linux系统针对这些情况推出了一种叫混杂设备模型的驱动框架(m iscellaneous)。混杂设备主要有 2 个特征:1)所有的 misc 设备被分配同一个主设备号 MISC_MAJOR(10),但是可以选择一个单独的次设备号。如果一个字符设备驱动要驱动多 个设备,那么它就不应该用misc 设备来实现;2)混杂设备驱动初始化时,只需要执行简单 的一个注册函数,即可自动完成设备号分配,设备节点创建,向内核注册等工作,极大的简化 了驱动初始化流程。
硬件 IO 操作
IO 端口与IO 内存
x86 体系和 ARM 体系的寻址方式是有差别的: 在 x86 下,为了能够满足 CPU 高速地运行,内存与 CPU之间通过北桥相连并通 过地址方式访问,而外设通过南桥与 CPU相连并通过端口访问。 因为这两种访问方式的不同,linux 分出了两种不同的访问操作: 以地址方式访问硬件——使用 IO 内存操作。 以端口方式访问硬件——使用 IO 端口操作。 在 ARM 下也实现了类似的操作,通过两条不同的总线(AHB BUS 和 APB B US)来连接不同访问速度的外设。但是它与x86 不同,无论是内存还是外 设,ARM 都是通过地址访问。 在 ARM 下,访问寄存器就像访问内存一样——从指定的寄存器地址获取数据,修 改。所以,ARM 下一般是使用IO 内存的操作。但这并不是说 IO端口的操作在 ARM 下不能用,它们的代码差不多,只是没有使用的必要,下面也将介绍IO 内存 操作。

基于HI3531与FPGA的视频增强算法硬件设计

基于HI3531与FPGA的视频增强算法硬件设计
关键词:HI3531;FPGA;视频增强;直方图均衡 中图分类号:TP391.41 文献标识码:A 文章编号:1003-9767(2019)13-093-02
Hardware Design of Video Enhancement Algorithms Based on HI3531 and FPGA
Key words: HI3531; FPGA; video enhancement; histogram equalization
0 引言
随着飞机座舱的现代化,显示器代替飞行仪表,成为机 载综合显示系统的重要组成部分。显示器从体积较大和耗能 高的阴极射线管(CRT)显示器,向轻巧和更可靠的液晶显 示器(LCD)发展 [1]。但是,由于成像原理不同,CRT 显示 器显示画面信息采样从低灰度到高灰度连续,视频信息无任 何损失。而 LCD 显示器显示画面受限于 AD 转换精度和数据 显示位数,显示画面会显现不连续的灰度差,且转换过程中 会丢失部分信息。针对 LCD 显示器存在的问题,本文根据 应用需求,设计了基于 HI3531 和 FPGA 的视频增强处理, 并针对视频图像处理算法方面进行算法研究与设计,以期进 一步提高视频图像清晰度和辨识度。
VPP。CRT 视 频 放 大 器 放 大 图 像 信 息 的 辉 亮 信 号, 转 换 成 30 ~ 110 VPP 的阴栅电压差,视频辉亮增益达到几十倍以上, 增强了图像的纵深感,人眼观察图像较为清晰。
LCD 显示器将模拟视频信号经滤波、钳位后进行 A/D 转换,产生数字 RGB 信号,输送至显示模块,显示模块将 数字 RGB 信号经 D/A 转换,液晶扭转电压控制液晶像素矩 阵进行光输出,进而显示图像。模拟视频信号从输入到显示 经过两级模数转换。模数转换电路存在电压采样不连续性, 导致信号转换过程中具有不同程度的损失。LCD 显示器采用 数字电路驱动,有限的数据位宽限制了视频的灰度表达,部 分低灰度图像无法清晰显示。

海思hi3512平台SDK安装

海思hi3512平台SDK安装

海思hi3512平台SDK安装1、解压SDK包在linux服务器上或者一台装有linux的PC上,进入选择安装SDK 的目录,并将Hi3511_VSSDK_V1.1.2.3.tar.gz拷贝到该目录下面,使用命令:tar -zxf Hi3511_VSSDK_V1.1.2.3.tar.gz解压Hi3511_VSSDK_V1.1.2.3.tar.gz,在安装SDK目录下可以得到一个Hi3511_VSSDK_V1.1.2.3目录。

2、在linux服务器上安装交叉编译工具进入Hi3511_VSSDK_V1.1.2.3/tools/toolchains,运行下面命令:chmod +x cross.install增加cross.install运行权限(+x为增加运行权限),然后使用下面命令运行cross.install:./cross.install注意需要sudo权限或者root权限。

执行下面命令使交叉编译器的脚本配置的环境变量生效。

source /etc/profile3、展开SDK包的其他内容返回SDK目录,运行:./sdk.unpack将会展开SDK包打包压缩存放的其他内容,按照提示完成操作,注意一定要输入:Yes //安装SDK需要SDK安装的时候,有提示输入Yes,请一定要输入Yes,不能输入yes或者YES,否则不能完全安装。

如果需要中转拷贝SDK包,则运行:./sdk.cleanup收起SDK包的内容,拷贝到新的目录后再展开。

4、SDK目录介绍Hi3511_VSSSDK_VX.X.X.X 目录结构如下:|-- pub| |-- images # 可供FLASH烧写的映像文件,如内核、jffs2文件系统| |-- include # 应用程序需要的头文件| |-- kbuild # 内核头文件,内核模块使用该目录来进行编译| |-- lib # 应用程序需要的库文件| |-- resource # 构成rootfs的各种组件,一般不需要关心| |-- standee # 各模块的原始安装文件,如需要mmz.ko就可以在这里找到,同时也包含组件所需的调试信息| `-- tarball # SDK各模块的打包备份文件|-- rootfs # 根文件系统,可以直接作为NFS|-- scripts # 存放相关脚本的目录|-- sdk.cleanup # SDK清理脚本|-- sdk.unpack # SDK展开脚本|-- source # 放置所有源代码的目录| |-- app # 应用程序类源代码| |-- drv # 驱动类源代码| |-- lib # Lib类源代码| `-- os # OS相关源代码,如内核|-- tools # 工具类| |-- bin # 可执行程序,如mkfs.cramfs| `-- toolchains # 交叉工具链,展开SDK时已自动安装|`---mpp # Hi3511的媒体处理平台发布的头文件、库以及内核模块|-- lib.rel # 音频库,MPP发布的release版本库,音频库|-- lib.dbg # MPP发布的debug版本库,音频库|-- lib.lessrel # MPP发布的less release版本库,音频库|-- ko.rel # MPP发布的发布的release内核模块,包括FB,TDE|-- ko.dbg # MPP发布的发布的debug内核模块,包括FB,TDE|-- ko.lessrel # MPP发布的发布的less release内核模块,包括FB,TDE|-- include # MPP发布的发布的对外头文件,包括FB,TDE`-- sample # MPP的sample代码,进入各个子目录,可以直接编译运行。

海思HI3531 4路高清SDI 1080P开发板使用手册

海思HI3531 4路高清SDI 1080P开发板使用手册

海思HI3531 4路高清SDI 1080P开发板使用手册〇、简介1) 开发板图片2) 资源情况主芯片为海思Hi3531带4片2Gbit DDR,一共1Gbyte带2个千兆网口,PHY为RTL8211EG带音频输入输出,均支持双声道立体声,AD/DA芯片为TLV320AIC31IRHBR带4个TTL UART串口(其中包括一个调试串口)带2个SATA口,均带PM功能,可以接扩展模块,扩展为更多SATA口带1个时钟芯片DS1339带1个HDMI输出,可支持1080P@60fps带1个VGA输出,可支持2560x1600@60fps带2个USB输出,可以接USBHUB扩展更多USB口带4路SDI输入接口,可以支持4路1080P视频,AD芯片为GV7601带2路CVBS输出带JTAG/PCIE/IR/GPIO/蜂鸣器等其他接口一、接线和启动拿到开发板之后,首先接好串口线(注意,不管什么接口,请在断电情况下插拔)如上图所示,J11为缺省的调试串口,带有箭头标记的为第一管脚接好串口线后打开串口调试工具超级终端或者其他调试工具都可以,下面的例子以putty为例,波特率设为115200,打开串口,然后上电12V(内正外负)可以看到嵌入式操作系统开始启动启动完成输入ifconfig可以看到板子的IP情况如果接好网线,可以telnet到板卡,进行相关操作。

如果遇到串口不能输入的情况,请关掉软件,重新打开这个串口,或者重新插拔一下串口线二、启动示例程序板卡启动之后就是一个嵌入式linux系统,可以输入各种linux命令板子里面/nand/目录下带有各种例子,可以运行查看1)解码H264文件通过HDMI输出的例子请先接好HDMI显示器,然后运行cd /nand./sample_vdec 0然后选0,选择frame mode就可以看到海思自带的一个例子,这个例子解码同级目录下的stream_chn0.h264,然后输出到HDMI显示器2) 解码H264文件通过VGA输出的例子请先接好VGA显示器,然后运行cd /nand./sample_vdec 33) 视频输入直接输出到视频输出的例子请先接好VGA或者HDMI显示器cd /nand. /sample_vio 2然后输入1 选择多画面分割模式可以看到SDI的输入源显示在显示器上4) 其他例子请自行摸索测试三、SDK的安装与编译请通读SDK包中的\01.software\board\documents_cn 目录下的相关文档请注意,本板卡,已经烧写了uboot和内核文件系统,并且启动已经加载了海思相关驱动如果不小心擦除了uboot,可以通过海思自带的FastBoot3.1_BVT.exe烧写恢复,具体可以参看海思相关文档如果要执行SDK中的load3531脚本,请修改为4hd模式,并且去掉sil9024.ko驱动的加载详细情况,可以参考SDK中的文档,大概步骤如下1) 安装虚拟机软件推荐VirtualBox2) 在虚拟机上安装Linux系统,可以选择Ubuntu 等3) 在Linux上安装GCC等编译器和开发相关工具4) 在Linux上解压缩Hi3531_SDK_VX.X.X.X.tgz 的压缩包5) 在Linux上安装跨平台编译器arm-hisiv200-linux-gcc6) 编写Hello Word程序,然后通过arm-hisiv200-linux-gcc 编译,然后把编译后的程序放到Hi3531板卡上运行(配置好NFS可以加快开发进度)7) 编译sdk中的sample,放到Hi3531板卡上运行四、系统资源简介SDI输入一共有4路J7 ~ J10 分别接GV7601芯片J7 对应U1 对应VIU0/SIO0J8 对应U2 对应VIU1/SIO1J9 对应U3 对应VIU2/SIO2J10 对应U4 对应VIU3/SIO3。

Hi3521与Hi3531开发包差异说明

Hi3521与Hi3531开发包差异说明

Hi3521与Hi3531开发包差异说明Hi3521是针对多路D1和多路高清DVR、NVR产品应用的一款专业高端SOC 芯片。

Hi3521的产品开发包与海思之前推出Hi3531开发包大体一致,同时为了支撑Hi3521芯片一些特有的应用场景,也做了一些调整和优化。

本文先简要描述Hi3521与Hi3531在规格上的差异,然后就开发包的组成和具体媒体处理的API变化进行说明。

一、 Hi3521与Hi3531在芯片规格上的主要差异下表简要对比了Hi3521与Hi3531相关规格方面的差异,具体的规格请参见《Hi3521 H264编解码处理器简介》主要规格Hi3521 Hi3531/Hi3532处理器ARM Cortex A9单核@Max. 930MHz ARM Cortex A9双核@Max. 930MHz视频输入−支持4个VI设备−支持16路VI主通道,无次通道。

每一路主通道支持动态改变输出分辨率,也支持2种分辨率混合采集−最大支持10D1+6*2CIF实时输入−支持的设备时序有1)4xBT656@108/144MHz,支持16CIF/8 x960H实时视频输入2)2xBT1120@148.5MHz,支持2路1080P@30fps或2路720P@30/60fps视频输入3)4xMutiplexed BT656@148.5MHz,支持4路720P@30fps视频输入−支持8个VI设备−支持16路VI主通道,偶数主通道有次通道。

每一路VI通道(包括主次通道)均支持动态改变输出分辨率,但不支持2种分辨率混合采集-支持的设备时序有1)4xBT656@108/144MHz或8xBT656@54/72MHz,支持16D1/960H实时视频输入2)8xBT656@27/36MHz,支持8D1/960H实时视频输入;3)4xBT1120@148.5MHz,支持4路1080P@30fps或4路720P@30/60fps视频输入4)8xMutiplexed BT656@148.5MHz,支持8路720P@30fps视频输入视频输出−支持3个VO设备(1个高清设备+2个标清设备)−高清设备支持VGA/HDMI/LCD(BT1120)同源输出。

在HI3531上移植和运行QT4.8.6

在HI3531上移植和运行QT4.8.6

在HI3531上移植和运行QT4.8.61、前言:近段有点时间,想把QT移植到HI3531上,在网上查找了很多资料,但都不是很全面,有些有问题也没有得到很好的体现。

2、环境:PC:ubuntu10.04HI3531交叉工具链:arm-hisiv100nptl-linux-QT版本:qt4.8.6(Qt libraries 4.8.6 for embedded Linux (230 MB)QT-Creator版本:qt-creator-linux-x86-opensource-2.4.1.bin3、交叉编译:1)进入qt-everywhere-opensource-src-4.8.6/mkspecs/qws目录,新建linux-hisi3531nptl-g++目录,复制linux-arm-g++目录下的所有文件到linux-hisi3531nptl-g++cp –a linux-arm-g++/* linux-hisi3531nptl-g++2)进入linux-hisi3531nptl-g++,修改文件qmake.conf# modifications to g++.confQMAKE_CC = arm-hisiv100nptl-linux-gccQMAKE_CXX = arm-hisiv100nptl-linux-g++QMAKE_LINK = arm-hisiv100nptl-linux-g++QMAKE_LINK_SHLIB = arm-hisiv100nptl-linux-g++# modifications to linux.confQMAKE_AR = arm-hisiv100nptl-linux-ar cqsQMAKE_OBJCOPY = arm-hisiv100nptl-linux-objcopyQMAKE_STRIP = arm-hisiv100nptl-linux-strip3)打开文件qplatformdefs.h增加#undef O_CLOEXEC此处主要为解决:编译过程中找不到accept4函数问题4)安装X11库sudo apt-get install libX11-dev libXext-dev libXtst-dev5)返回源码目录qt-everywhere-opensource-src-4.8.6进行配置./configure --prefix=/opt/qt4.8.6 -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/linux-hisi3531nptl-g++ -little-endian -qt-freetype -no-opengl -no-glib-nomake demos -nomake examples -nomake docs -nomake tools其中:--prefix=/opt/qte4.8.6 为交叉编译目标安装目录-xplatform qws/linux-hisi3531nptl-g++指定编译器及平台配置信息5)make6)make install4、PC编译:1)重新解压qt-everywhere-opensource-src-4.8.6.tar.gz,进行PC编译2)./ configure3)make4)make install5、安装QT开发环境1)sudo ./qt-creator-opensource-linux-x86-2.4.1.run2)下一步直到安装完成3)在应用程序,就可以看到QT Creator6、配置开发环境1)从PC的QT安装目录中拷贝如下文件到交叉编译目录cp /usr/local/Trolltech/Qt-4.8.6/bin/qml* /opt/qt4.8.6/bin/2)打开QT Creator3)打开工具-选项-QT版本4)打开添加按键,添加交叉编译的qmake5)进入工具链,打开添加按键,选择GCCE,在编译器路经选择arm-hisiv100nptl-linux-g++的路经到些就可以编译QT下自带的例子chip了,但这时在HI3531上还是不能显示的。

HI3515

HI3515

软件(系统)
操作系统——Linux
初看配置好的Linux系统的各个步骤和平台搭建的知识点非常乱,个人的理解方法是结合Windows系 统的相关类比去理解 整个Linux的系统看成下列排列(不考虑细节)
应用程序 根目录系统
在配置好的系统上可安装应用程序,也可以自己编写应用程序; 类比Windows系统中存放文件的CDEF盘,根目录的不同文件夹,不同子文件 夹存放各自功能的文件;
烧录到ARM中 可以看做是整个系统被移植到一个硬件当中
根目录制作
用Busybox制作根目录系统
开发
通常程序的开发都会使用模块化结构
这一过程就是编程,整体的,大致的思想和Windows下的软件开发一样。 此论文中的工程的模块结构如下: 1、系统控制模块:
此模块可以看做是 整个程序中的“总 控制室”,也可以 认为是硬件芯片功 能和软件程序之间 的连接器。
开发
视频编码VENC和通道组管理GROUP
视频图像的录入和输出,是以码流的形式进行的,通过GROUP 和 VENC 共同实现,为实现此目的需要做的是(大致流程):
搭建视频编码的通道组,将通道组和芯片上视频输入通道VI绑定,创建视频编码的 通道,注册通道。此时可以通过其控制视频图像的采集和终止,控制接收或者停止接收 码流,若有必要可获取或者设置,启用或者禁用数字水印属性,以及查询通道属性,状 态等功能。在编码,解码结束之后,相应的解除绑定和摧毁通道。 这些功能语句形式:HI_S32 HI_MPI_VENC_XXXX(XXX,XXX,XXX) 此外,视频编码模块的编码协议是H.264
此模块一方面 用于对开发板上已 有的芯片控制利用 ,另一方面控制程 序中各个模块的相 互调用
开发
模块化结构

基于Hi3531的ONVIF高清网络摄像机视频数据接入设计

基于Hi3531的ONVIF高清网络摄像机视频数据接入设计

基于Hi3531的ONVIF高清网络摄像机视频数据接入设计江勇;杜程远【摘要】基于海思半导体的嵌入式32位视频处理器Hi3531,提出了接入兼容ONVIF规范的高清网络摄像机视频数据的方法,描述了兼容ONVIF规范的客户端和服务器端的握手过程,介绍了H.264视频流的RTSP数据包的结构和解RTSP数据包的流程和实例.该设计被用于LED/LCD多屏拼接设备的基于IP的视频数据的接入,取得了很好的效果.【期刊名称】《单片机与嵌入式系统应用》【年(卷),期】2016(016)008【总页数】5页(P50-53,63)【关键词】视频处理器;Hi3531;ONVIF;RTSP;H.264【作者】江勇;杜程远【作者单位】深圳市屏源科技有限公司研发中心,深圳518055;深圳市屏源科技有限公司研发中心,深圳518055【正文语种】中文【中图分类】TN919网络摄像机等网络视频设备越来越多地使用在安防、安监等领域并得到广泛应用,这些网络视频设备的生产商有几百家,为了解决不同厂家的网络视频设备兼容性问题,2008年5月,安迅士联合博世以及索尼公司,共同成立一个国际开放型网络视频产品标准网络接口开发论坛,取名为ONVIF[1](Open Network VideoInterface Forum,开放型网络视频接口论坛),并以公开、开放的原则共同制定开放性行业标准。

基于海思半导体推出的Hi3531[2]高性能视频处理器设计的网络视频接入系统,完全可以将符合ONVIF规范的网络设备的视频数据接入到嵌入式系统当中,本文以高清网络摄像机视频数据的接入为例,阐述了对接的整个过程。

为了让不同厂家的网络视频设备完全互联互通,ONVIF规范描述了网络视频的接口、数据类型和数据交互的方式,它的目标是制定一套相对完整的网络视频交互的框架协议。

针对网络摄像机设备,使用到的ONVIF协议规范,主要有以下两部分:① 设备管理和控制部分的接口规范,这部分管理和接口规范均以Web Services 形式提供,每个支持ONVIF规范的网络视频设备都必须提供相应的Web service, 网络视频的服务器端和客户端的Web Service[3]采用SOAP协议来进行交互;② ONVIF协议中的视频数据流则通过RTP/RTSP[4]协议来进行传输。

hi3516sdk安装以及升级使...

hi3516sdk安装以及升级使...

hi3516 sdk 安装以及升级使用说明(Hi3516 SDK installation andupgrade instructions)Hi3516 SDK installation and upgrade instructionsThe first chapter Hi3516_SDK_V1.x.x.x version upgrade instructionsIf this is your first time to install the SDK, please refer to chapter second directly.The second chapter installs SDK for the first time1, Hi3516 SDK packet positionIn the "Hi3516_V100R001C01/01.software/board" directory, you can see a Hi3516_SDK_V1.x.x.x.tgz file,This file is the software development package for Hi3516.2, unzip the SDK packageOn the Linux server (or on a PC equipped with Linux, the mainstream Linux release can be), using the command: tar -zxf Hi3516_SDK_V1.x.x.x.tgz,Unzip the file, you can get a Hi3516_SDK_V1.x.x.x directory.3, in the Linux cross compiler installed on the server2) enter the tools/toolchains directory, run Chmod +xcross.install, and then run./cross.install, note that you need to have sudo permissions or root permissions.3) executing source /etc/profile, the environment variables that configure the script configuration of the cross compiler can be effective, or re login.4, expand the content of SDK packageReturn to the Hi3516_SDK_V1.x.x.x directory, run source sdk.unpack will expand the SDK package, compression, storage content, please follow the prompts to complete the operation.If you need to copy the SDK package through the WINDOWS operating system, please run./sdk.cleanup first, pack up the contents of the SDK package, copy it to the new directory, and then expand it.5, SDK directory introductionThe Hi3516_SDK_V1.x.x.x directory structure is as follows:Sdk.cleanup SDK |-- # cleanup script|-- sdk.unpack # SDK script|-- osdrv # storage operating system and driver directory| |-- linux-2.6.35 # Linux kernel source code| |-- u-boot-2010.06 # uboot source code| `-- # rootfs root file system|-- package # SDK compression package directory storage| |-- linux-2.6.35.tgz # Linux kernel source code package| |-- rootbox.tgz # root file system package| |-- u-boot-2010.06.tgz # uboot source code and tools package | |-- busybox-1.16.1.tgz # busybox source package| |-- mpp.tgz # media processing platform software package| image file `-- images # for FLASH programming, such as kernel, root file system|-- tools # store public class Tools Directory| |-- bin # stored executable directory, such as mkfs.cramfs| |-- SRC # storage tools source code directory, such as mkfs.cramfs| `-- toolchain # cross tool chain store directory|-- scripts # shell scripts directory||-- MPP # storage media processing platform directory|-- component # component source codeExtdrv driver source code |-- # peripheral board|-- include # foreign head file|-- # Ko kernel module|-- lib # release repository and audio library|-- tools # media processing tools`-- sample # example source codeThe third chapter, installation, upgrade Hi3516DEMO development board development environment# if you use the Hi3516 DEMO board, you can follow the steps below Shaoxie u-boot, kernel and file system, the following steps are used to update the network.# usually have u-boot single board you get, if not, you need to use the simulator programmer.# more detailed steps and instructions, please refer to the 01.software\board\documents directory under the Linux development environment "user's Guide".The following # given a u-boot single board has on your use ofnetwork port programming uboot, kernel and rootfs to Flash.Hi3516 SPI and NAND Flash # support Flash, please choose according to the actual situation of the third day or fourth day steps;# Demo single board default to boot from the NAND Flahs, if you need to modify, please refer to the "Hi3516 Demo single board guide" dial switch SW6 is adjusted to 0000.1, configure the TFTP server# can use any TFTP server, the relevant documents under the package/images copy to the TFTP server directory.2, parameter configuration# electric single board, press any key to enter the u-boot. Set the ServerIP (TFTP server IP), IPADDR (IP board) and ethaddr (single MAC address).Setenv ServerIP xx.xx.xx.xxSetenv IPADDR xx.xx.xx.xxSetenv ethaddr xx:xx:xx:xx:xx:xxSetenv netmask xx.xx.xx.xxSetenv gatewayip xx.xx.xx.xxPing ServerIP, to ensure the smooth flow of the network.3, burn the image file to SPI FlashTake 16M SPI Flash as an example.1) address space description| 5M (1+4) 11M | ||---------------|----------------------------------|| boot/kernel | rootfs |The following operations are based on the address space allocation schema, you can also be adjusted according to actual situation.2) burn u-bootSF probe 0Mw.b 82000000 FF 100000TFTP 82000000 u-boot.bin # if Hi3517 Ref board, please use the u-boot-250M.binSF probe 0SF erase 0100000SF write 820000000100000Reset3) write the kernelSF probe 0Mw.b 82000000 FF 400000TFTP 82000000 kernel-hi3516v100.img # if Hi3517 Ref board, please use the kernel-hi3516v100-nopcie.imgSF erase 100000400000SF write 82000000100000 4000004) write file systemMw.b 82000000 FF b00000TFTP 82000000 rootfs-hi3516v100-Flash-256k.jffs2 # if Hi3517 Ref board, please use the rootfs-hi3516v100-Flash-64k.jffs2SF erase 500000 b00000SF write 82000000500000 b000005) setting start parametersSetenv bootargs'mem=64M console=ttyAMA0115200root=/dev/mtdblock1 rootfstype=jffs2 mtdparts=hi_sfc:5M (boot), 11M (rootfs) 'Setenv bootcmd'sf probe SF read 0x82000000 0x100000 0x400000 0;Bootm 0x82000000'If Hi3517 Ref is # board, please use the following bootcmdSetenv bootcmd'mw 0x200f014c 1; SF probe 0; SF read 0x82000000 0x100000 0x400000; bootm 0x82000000'; setenv mdio_intf MII; setenv phyaddr 1; SA4, burn the image file to NAND Flash1) address space description| 16M | 32M ||---------------|----------------------------------|---------| boot/kernel | rootfs |The following operations are based on the address space of the icon, and you can also adjust the situation according to the actual situation.2) burn u-bootMw.b 82000000 FF 100000TFTP 82000000 u-boot.binNAND erase 0100000NAND write 820000000100000Reset3) write the kernel and file systemMw.b 82000000 FF 500000TFTP 82000000 kernel-hi3516v100.imgNAND erase 100000500000NAND write 82000000100000 500000Mw.b 82000000 FF 2000000TFTP 82000000 rootfs-hi3516v100-Flash.yaffs2NAND erase 10000002000000NAND write.yaffs 820000001000000 95c1c0 # note: 95c1c0 rootf file for the actual size (16 m)4) setting start parametersSetenv bootargs'mem=64M console=ttyAMA0115200root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:16M (boot), 32M (rootfs), 32M (test) 'Setenv bootcmd'nand read 0x82000000 0x100000 0x500000; bootm 0x82000000'5. Start a new systemReset # reboot into the new system.The fourth chapter, environmental preparation before development1, Sensor preparation# Demo plate can be inserted Sensor, please note that the Demo board on the dial switch, please refer to the "Hi3516 Demo" using the guide board,.# mpp/ko load3516 scripts to distinguish different sensor types, if inconsistent with the actual situation, please manually modify the SNS_A variable; if sensor is a dual scene (using the VI port B), please will be one of the USE_SNS_B variables modified for 1.# mpp/lib directory contains a variety of sensor software development library, please according to the actual situation of the correct link library file; compile the mpp/sample files, please modify the sample file in the SENSOR_TYPE directory Makefile.param.2, pin multiplexing# and media business related multiplexing pins are configured in the mpp/ko directory of the pinmux_hi3516.sh script, if inconsistent with the actual situation please modify, this script is called load3516 is executed before loading a MPP kernel module;# MPP other pin multiplexing unified configuration in uboot, details please refer to "U-boot transplantation application development guide".The fifth chapter, using SDK and DEMO board for development1, open the network under Linux# set networkIfconfig eth0 HW ether xx:xx:xx:xx:xx:xx;Ifconfig eth0 xx.xx.xx.xx netmask xx.xx.xx.xx;Route add default gw xx.xx.xx.xx# and Ping other machines, such as no accident, the network will be able to work properly.2, using NFS file system for development# during the development phase,Recommend the use of NFS as a development environment, eliminates the need for re production and work writing root file system.# mount NFS file system operation command:Mount -t NFS -o nolock -o TCP xx.xx.xx.xx:/your-nfs-path /mnt# then you can access files on the server in the /mnt directory, and development work.3, open telnet services# network is normal, you can start running the command telnetd& single board telnet service, then you can use telnet to log on to the board.4. Run MPP business# in single board Linux system, into the MPP Ko directory, KO loadingCD mpp/ko./load3516 -i'sensor'sensor sensor # corresponding to specific types, such as Hi3517 Ref./load3516 -i ar0331_60 in use:# into the sample directory to execute the corresponding sample program (sample to the server successfully compiled)CD mpp/sample/vio./sample_vio 0Address space allocation and usage in the sixth chapter1, DDR memory management instructions1) all DDR memory, part of the management by the operating system, known as OS memory; the other part of the MMZ module management, for the media business alone, known as MMZ memory.2) the starting address is 0x80000000 OS memory, the memory size can be configured by bootargs, for example, the third chapter of the setenv bootargs'mem=64M... 'said, assigned to the operating system memory for 64M, you can adjust according to the actual situation.3) MMZ memory is managed by the MMZ kernel module (mmz.ko under the mpp/ko directory). When the MMZ module is loaded, its initial address and size are specified by the module parameters, for example:Insmod mmz.ko mmz=anonymous, 0,0x84000000176M anony=1Indicates the name of the MMZ region to the anonymous, the starting address is 0x84000000, the size of 176M. You can modify the initial address and the total size by modifying the MMZ module parameters in the load3516 script under the mpp/ko directory.4) please note that the MMZ memory and OS memory address range cannot overlap.2 、 DEMO board DDR memory management schematic1) DDR memory with capacity of 256MBytes as an example, the following is the memory management diagram based on the default configuration of this document and SDK:0x80000000 Memory managed by OS. # -----|-------|64M OS | || |0x84000000 Memory managed by MMZ. # -----|-------|176M MMZ | || |0x8F000000 Not used. -----|-------| #16M | || |0x8FFFFFFF End of DDR. # -----|-------|Be careful:(1) users need to set up OS management memory for 64M, "setenv bootargs'mem=64M" when configuring boot parameters...".(2) after the system is started, the management memory of MMZ in the script of configuring load3516 is 176M, "insmod mmz.ko mmz=anonymous, 0,0x84000000176M anony=1"".2) with a capacity of 128MBytes DDR memory as an example, the following configuration can be used to save memory usage.0x80000000 Memory managed by OS. # -----|-------|48M OS | |0x83000000 Memory managed by MMZ. # -----|-------|80M MMZ | || |0x87FFFFFF End of DDR. # -----|-------|Be careful:(1) the user in the configuration start parameters need to set the OS memory management for 48M,“setenv bootargs的MEM = 48m…”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hi3531 SDK 使用笔记(1)新接触了HI3531这款芯片,厂家提供了SDK,做点开发笔记,供自己查询。

这也算是我的Linux学习历程。

开发环境:软件:Windows + FC14硬件:ATOM + HI3531———————以下为厂家提供教程———————1、Hi3531 SDK包位置在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个Hi3531_SDK_Vx.x.x.x.tgz 的文件,该文件就是Hi3531的软件开发包。

2、解压缩SDK包在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf Hi3531_SDK_Vx.x.x.x.tgz ,解压缩该文件,可以得到一个Hi3531_SDK_Vx.x.x.x目录。

3、展开SDK包内容返回Hi3531_SDK_Vx.x.x.x目录,运行./sdk.unpack(请用root或sudo权限执行)将会展开SDK包打包压缩存放的内容,请按照提示完成操作。

如果您需要通过WINDOWS操作系统中转拷贝SDK包,请先运行./sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。

4、在linux服务器上安装交叉编译器1)安装uclibc交叉编译器(注意,需要有sudo权限或者root权限):进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv100-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。

2) 安装glibc交叉编译器(注意,需要有sudo权限或者root权限):进入Hi3531_SDK_Vx.x.x.x/osdrv/toolchain/arm-hisiv200-linux目录,运行chmod +x cross.install,然后运行./cross.install即可。

3) 执行source /etc/profile,安装交叉编译器的脚本配置的环境变量就可以生效了,或者请重新登陆也可。

5、编译osdrv参见osdrv目录下readme———————以上为厂家提供教程———————几点说明:1、uclibc是面向嵌入式Linux系统的小型的C标准库,glibc是Linux的标准运行库。

使用某一工具链编译后,如果需要更换工具链,请先将原工具链编译文件清除,然后再更换工具链编译。

开始我发现使用arm-hisiv100-linux编译内核时,会提示找不到该命令,换到arm-hisiv200-linux可以。

估计就是上述问题吧。

2、source命令即执行命令,和“./”(个人理解)source命令用法:source FileName作用:在当前bash环境下读取并执行FileName中的命令。

注:该命令通常用命令“.”来替代。

如:source .bash_rc 与 . .bash_rc 是等效的。

注意:source命令与shell scripts的区别是,source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。

这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。

3、Linux下也有环境变量,如下:常见的配置文件包括:(1-1)/etc/profile:对所有用户生效;此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行;并从/etc/profile.d目录的配置文件中搜集shell的设置。

例如:编辑/etc/profile文件,添加CLASSPATH变量: # vi /etc/profile添加一行:export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib修改后需要执行重新登录才能生效,也可以执行命令source /etc/profile来生效(1-2)/etc/bashrc:对所有用户生效;为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取编辑方法如上,不再赘述环境变量的查看:(1)使用echo命令查看单个环境变量。

例如:echo $PATH(2)使用env查看所有环境变量。

例如:env(3)使用set查看所有本地定义的环境变量。

例如:set另外,unset可以删除指定的环境变量。

常用的环境变量:PATH 决定了shell将到哪些目录中寻找命令或程序HOME 当前用户主目录HISTSIZE 历史记录数LOGNAME 当前用户的登录名HOSTNAME 指主机的名称SHELL 当前用户Shell类型LANGUGE 语言相关的环境变量,多语言可以修改此环境变量MAIL 当前用户的邮件存放目录PS1 基本提示符,对于root用户是#,对于普通用户是$好,继续。

这里的重点肯定在第五步。

下面详细说说。

osdrv目录结构说明:osdrv├─Makefile ------------------------------ osdrv目录编译脚本├─busybox ------------------------------- 存放busybox源代码的目录├─tools --------------------------------- 存放各种工具的目录│├─board_tools ----------------------- 各种单板上使用工具││├─reg-tools-1.0.0 --------------- 寄存器读写工具││├─mtd-utils --------------------- flash裸读写工具││├─udev-100 ---------------------- udev工具集││├─g db --------------------------- gdb工具││├─parted ------------------------ 大容量硬盘分区工具││└─e2fsprogs --------------------- mkfs工具集│└─pc_tools -------------------------- 各种pc上使用工具│├─mkfs.cramfs ------------------- cramfs文件系统制作工具│├─mkfs.jffs2 -------------------- jffs2文件系统制作工具│├─mkimage ----------------------- uImage制作工具│├─mkyaffs2image301 -------------- yaffs2文件系统制作工具│├─nand_production--------------- nand flash烧写文件制作工具│└─uboot_tools ------- uboot镜像制作工具、xls文件及ddr初始化脚本、bootrom工具├─toolchain ----------------------------- 存放工具链的目录│├─arm-hisiv100nptl-linux ---------------- hisiv100nptl交叉工具链│└─arm-hisiv200-linux ---------------- hisiv200交叉工具链├─pub ----------------------------------- 存放各种镜像的目录│├─image_glibc ----------------------- 基于hisiv100nptl工具链编译,可供FLASH烧写的映像文件,包括uboot、内核、文件系统│├─image_uclibc ---------------------- 基于hisiv200工具链编译,可供FLASH 烧写的映像文件,包括uboot、内核、文件系统│├─bin ------------------------------- 各种未放入根文件系统的工具││├─pc ---------------------------- 在pc上执行的工具││├─board_glibc ------------------- 基于hisiv100nptl工具链编译,在单板上执行的工具││└─board_uclibc ------------------ 基于hisiv200工具链编译,在单板上执行的工具│├─rootfs_uclibc.tgz ----------------- 基于hisiv100nptl工具链编译的根文件系统│└─rootfs_glibc.tgz ------------------ 基于hisiv200工具链编译的根文件系统├─drv ----------------------------------- 存放外设驱动的目录│└─pcie_mcc -------------------------- pcie消息通讯层驱动├─rootfs_scripts ------------------------ 存放根文件系统制作脚本的目录├─uboot --------------------------------- 存放uboot源代码的目录└─kernel -------------------------------- 存放kernel源代码的目录第一步,开始编译内核。

cp arch/arm/configs/godnet_defconfig .configmake ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfigmake ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- uImage即执行了make menuconfig 和 make uImage。

执行make menuconfig 后会显示一个菜单,大概是对Linux内核的配置,不过对于刚接触Linux的我来说,先略过,直接Quit。

执行make uImage会编译出Linux内核,先说一下几种linux内核文件的区别 (网上一把,随便抓一个过来)vmlinux 编译出来的最原始的内核文件,未压缩。

zImage 是vmlinux经过gzip压缩后的文件。

bzImage bz表示“big zImage”,不是用bzip2压缩的。

两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。

相关文档
最新文档