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人机交互系统的设计与实现


参 考 文 献
系统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开发环境指南


深圳市海思半导体有限公司
地址: 网址: 客户服务电话: 客户服务传真: 客户服务邮箱:
深圳市龙岗区坂田华为基地华为电气生产中心 +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驱动部分

而网络设备没有设备节点,是因为网络设备是面向报文的,很难实现相关 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 内存 操作。
  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以上)。

相关文档
最新文档