hi3520D开发记录_第1页
hi3520D开发记录_第2页
hi3520D开发记录_第3页
hi3520D开发记录_第4页
hi3520D开发记录_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、=/单板系统里已有的驱动模块 如下:# find / -name *.ko /搜索单板里的.ko文件 /usr/xstrive/ko/hi3520D_adec.ko/usr/xstrive/ko/hi3520D_aenc.ko/usr/xstrive/ko/hi3520D_base.ko/usr/xstrive/ko/hi3520D_group.ko/usr/xstrive/ko/hi3520D_chnl.ko/usr/xstrive/ko/hi3520D_ai.ko/usr/xstrive/ko/hi3520D_ao.ko/usr/xstrive/ko/hi3520D_rc.ko/usr/x

2、strive/ko/hi3520D_jpege.ko/usr/xstrive/ko/vcmp.ko/usr/xstrive/ko/hiuser.ko/usr/xstrive/ko/hifb.ko/usr/xstrive/ko/hi3520D_dsu.ko/usr/xstrive/ko/hi3520D_ive.ko/usr/xstrive/ko/hi3520D_sio.ko/usr/xstrive/ko/hi3520D_tde.ko/usr/xstrive/ko/hi3520D_sys.ko/usr/xstrive/ko/hi3520D_vda.ko/usr/xstrive/ko/hi3520D

3、_viu.ko/usr/xstrive/ko/hi3520D_vou.ko/usr/xstrive/ko/hi3520D_hdmi.ko/usr/xstrive/ko/jpeg.ko/usr/xstrive/ko/hi3520D_vdec.ko/usr/xstrive/ko/hi3520D_venc.ko/usr/xstrive/ko/hi3520D_vfmw.ko/usr/xstrive/ko/hi3520D_vpss.ko/usr/xstrive/ko/hi_rtc.ko/usr/xstrive/ko/extdrv/gpioi2c.ko/usr/xstrive/ko/extdrv/nvp1

4、918c_ex.ko/usr/xstrive/ko/extdrv/ssp.ko/usr/xstrive/ko/mmz.ko/usr/xstrive/ko/hi3520D_h264e.ko/usr/xstrive/ko/hi3520D_region.ko=hhi3520d使用内部RTC时钟说明:1. 在75脚(AVDD_BAT)增加一个法拉电容,供内部时钟使用2. 使用海思RTC工具源码来设置内部时间,源码在SDK 的目录:Hi3520D_SDK_V/drv/rtc 可以make直接编译生成hi_rtc.ko test 两个文件,hi_rtc.ko放在单板系统的/usr/xstri

5、ve/ko/hi_rtc.ko 目录下 系统已经带了无需再拷贝, test执行文件要拷贝到单板系统的目录下/test, 程序运行时要用到,在用之前必须加载驱动模块文件insmod /usr/xstrive/ko/hi_rtc.koHi3520D_SDK_V/drv/rtc源码我已经修改了2个地方 设置内部时钟时间时增加了同时设置了系统时间,读取内部时间时增加了设置系统时间 具体使用方法可以参考海思文档:“RTC校准方案应用指导.pdf“ 3. 下面是一些指令:insmod /usr/xstrive/ko/hi_rtc.ko /加载设置RTC工具驱动,文件系统已带# cd /mnt

6、/ftp/Hi3520D_SDK_V/drv/rtc/ /进入挂载的rtc源码目录./test -s time 2016/4/21/9/29/30 /设置内部时钟./test -g time /读取内部时钟以下是程序操作:system(date -s x22 2016-04-20 15:51:00x22); /设置系统时间 system(date);/读取系统时间 system(cd / & ./test -s time 2016/4/21/8/50/35);/设置内部RTC时间 和 系统时间system(cd / & ./test -g time);/使用海思RTC工具读取内部

7、时间来设置系统时间=不是root用户限权地方用: sudo普通用户改不了系统文件时用 sudo gedit xxxx ,编辑好后保存退出即可=开发板的存储空间FLASH为16M文件系统5.5M + 内核2M + uboot为0.23M + wifi库文件执行文件共8.1M= 15.83M 所以再加文件进去就会报内存不够错误 =编译自己的sample程序(以编译sample_venc为例)cd /home/xstrive/hisi/Hi3520D_SDK_V/mpp/sample/vencmake sample 下程序功能简介: venc 视频采集编码程序,摄像头视频编码为h264

8、码流 并写入文件 audio 音频采集编码解码程序 vio 将接入的摄像头视频输出到vga/cvbs上(不编码)=编译sample目录下的例子出现一下错误=makels: 无法访问/hiwork/osdrvhi3520D.C01: 没有那个文件或目录make: 没有什么可以做的为 all。解决办法:不用管它可以生成程序就好 或是 先 make clean 再编译make就可以了=内核编译步骤/进入内核根目录下cd /home/xstrive/hisi/Hi3520D_SDK_V/osdrv/kernel/linux-3.0.y/如果出错就执行此指令,否则别执行会覆盖之前的配置好文

9、件的,固定内核配置替换现在配置,cp ssyTestOk.config .config /进入内核配置界面 make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig/编译内核make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- uImage/拷贝编译好的内核到指定目录下cp arch/arm/boot/uImage /home/xstrive/hisi/Hi3520D_SDK_V/osdrv/pub/image_uclibc/清内核make ARCH=arm CR

10、OSS_COMPILE=arm-hisiv100nptl-linux- clean=2.生成文件系统cd /home/xstrive/hisi/Hi3520D_SDK_V/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x10000 -o osdrv/pub/image_uclibc/rootfs_uclibc_64k.jffs2备注: 1. 修改或增加一些配置文件可以直接放进“Hi3520D_SDK_V/osdrv/pub/image_uclibc/”文件系统目录里,再用以上指令 生成文件系统。 2. 生成的内核和文件系统

11、都在 /home/xstrive/hisi/Hi3520D_SDK_V/osdrv/pub/image_uclibc/这个目录下,这个目录也是tftp服务器的根目录,所以直接用烧写指令把生成的内核和文件系统烧进板子就可以了。=hi3520d + nvp6114开发板 - 显示100万像素的AHD模拟摄像头VGA输出摄像头视频cd /usr/xstrive/ko/./load3520Dcd /usr/xstrive/./sample_vio 7 /选4 *720p那种模式./sample_vio /查看各模式 07=hi3520d + nvp1914c开发板 - 显示800线像素的

12、模拟摄像头(70万左右像素)VGA输出摄像头视频cd /usr/xstrive & ./sample_vio 0 ./sample_vio /查看各模式 07录像并保存文件cd /usr/xstrive & ./sample_venc 0 再选择 0) CBR在当前目录下生成视频文件:stream_chn0.h264 stream_chn1.h264cd /usr/xstrive & ./sample_vio 0 /进入该目录并执行程序可在vga上显示视频。 # cd /usr/xstrive/ko /进入ko目录# ./load3520D /运行./load3520D # cd /usr/x

13、strive & ./sample_vio 0 /通过网络观看视频1: 配置板子的IP 如ifconfig eth0 062: 运行rtsp服务器# cd /usr/xstrive & ./rtsp3:连接一个模拟摄像机到通道1 (开发板的 左上vi插口)4:在电脑上打开VLC软件 打开网络流 rtsp:/06:6880/test.264注:开发板本地内存不够时,网络传视频会卡=1: 配置板子的IP 如ifconfig eth0 062. 查看开发板网络信息及ip,ifconfig -a /查看是否网络已通ping 192.16

14、8.0.103=开发板网络挂载虚拟机linux系统下的目录 烧写内核,文件系统=烧8M=8M flash:setenv serverip 59;setenv ipaddr 0;sa;1.烧写内核mw.b 82000000 ff 200000;tftp 82000000 uImage;sf probe 0;sf erase 30000 200000;sf write 82000000 30000 2000002.烧写文件系统c3.设置启动参数setenv bootargs mem=64M console=ttyAMA0,115200 root=/dev

15、/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:192k(boot),2048k(kernel),5952k(rootfs);setenv bootcmd sf probe 0;sf read 0x82000000 0x30000 0x200000;bootm 0x82000000;sa=-linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况-# df -aFilesystem 1K-blocks Used Available Use% Mounted on/dev/root 5952 5728 224 96% /proc 0

16、 0 0 0% /procsysfs 0 0 0 0% /systmpfs 0 0 0 0% /devdevpts 0 0 0 0% /dev/pts-# fdisk l 刚买回来的固态硬盘插上 fdisk-l 指令得到的返回信息Disk /dev/sda: 63.3 GB, 63350767616 bytes255 heads, 63 sectors/track, 7701 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 1 77

17、02 61862912 7 HPFS/NTFS-/fdisk -l可以列出所有的分区,包括没有挂上的分区和usb设备.我一般用这个来查找 需要挂载的分区的位置,比如挂上u盘# fdisk -l Disk /dev/sda: 1978 MB, 1978662912 bytes31 heads, 30 sectors/track, 4155 cylindersUnits = cylinders of 930 * 512 = 476160 bytes Device Boot Start End Blocks Id System/dev/sda1 1 4156 1932220+ 6 FAT16/进入磁

18、盘相关操作“Command (m for help):”模式下# fdisk /dev/sda /打印分区表Command (m for help): pCommand (m for help): -Command Actionatoggle a bootable flagbedit bsd disklabelctoggle the dos compatibility flagddelete a partitionllist known partition typesnadd a new partitionocreate a new empty DOS partition tablepprin

19、t the partition tableqquit without saving changesscreate a new empty Sun disklabeltchange a partitions system iduchange display/entry unitsvverify the partition tablewwrite table to disk and exitxextra functionality (experts only)a -切换一个可启动的标志 /中文解释b -编辑bsd磁碟标签c -切换dos兼容标志d -删除一个分区l -列表分区类型n -添加一个新的

20、分区o -创建一个新的空DOS分区表p -打印分区表q -退出不保存更改s -创建一个新的空太阳磁碟标签t -改变一个分区的系统标识u -改变显示/输入单元v -验证分区表w -表写入磁盘并退出x -额外的功能(专家)=# mount -t vfat /dev/sda1 /mnt/usb /手动U盘挂载# mount -t vfat /dev/sda1 /tmp/recordumount /mnt/usb /卸载硬盘(卸载指令时,不要进入挂载的目录,否则提示忙不成功)内核支持NTFS分区的硬盘挂载配置方法:/已下进入配置界面 或 make menuconfigmake ARCH=arm CRO

21、SS_COMPILE=arm-hisiv100nptl-linux- menuconfig - file systems - DOS/FAT/NT Filesystems - NTFS file system support *NTFS debugging support *NTFS write support# mount -t ntfs /dev/sda1 /mnt /手动挂载NTFS型,已格式化好的硬盘=Linux怎样检测U盘插入U盘驱动程序会在插入或拔出时往 /proc/scsi/usb-storage/0 (插拔一下操作后会加1) 通过查看这个文件就不难检测U盘是否插入或拔出了。经测

22、试拔掉U盘 usb-storage文件夹就空了,插上就有一个数字文件09查看文件里的内容:# cat 4 Host scsi4: usb-storage Vendor: Kingston Product: DataTraveler 2.0Serial Number: 001CC05FE930BD40D916223B Protocol: Transparent SCSI Transport: Bulk Quirks:注意:U盘是否插入的状态与是否挂载(mount)无关。同时在 /dev/目录生成一个驱动设备文件 如:sda1 sdb1 sdc1=/hi3520D芯片相关说明/视频输入( VI)、

23、视频处理( VPSS)、视频编码( VENC)、视频解码( VDEC)、视频输出(VO)、视频侦测分析(VDA)、包含运动侦测( MD)和遮挡检测( OD)两种工作模式音频输入(AI)、音频输出(AO)、音频编码( AENC)、音频解码( ADEC)、区域管理( REGION)在视频中叠加 OSD 用于显示一些特定的信息(如:通道号、时间戳等)叠加在视频上的 OSD 和遮挡在视频上的色块统称为区域编码码流叠加 OSDIVE 模块是智能分析系统中的硬件加速模块Alpha 通道是透明度。值越大,就越不透明;范围是 0255, 0是全透明Overlay视频叠加区域,实现在 GROUP 通道进行位图的

24、加载和背景色更新。Cover视频遮挡区域,实现在 VI 通道填充纯色块。由 VI 硬件自身完成。CoverEx扩展视频遮挡区域,实现在绑定通道填充纯色块,当 Cover 个数不能满足用户需求时,可以使用此扩展 cover。OverlayEx扩展视频叠加区域,实现在绑定通道进行位图的加载和背景色更新。AI 音频输入MPP 媒体处理平台VI 视频输入VOU 视频输出单元DHDx 和 DSDx 高清和标清显示设备, 简称为 HD 和 SD 设备WBC 视频回写VPSS 是视频前处理单元,全称为 Video Process Sub-System。支持对一幅输入图像进行统一预处理,如去噪、去隔行等,然后

25、再对各通道分别进行缩放、锐化等处理,最后输出多种不同分辨率的图像GROUP VPSS 对用户提供组( GROUP)的概念。最大可用数为 128 个各组分时复用 VPSS 硬件.CHANNEL VPSS 组的通道。通道分为 3 种:物理通道、直通通道和扩展通道。PreScale 预缩放。针对输入图像大于预设值的情景,先缩放至预设值。Sizer 筛选。 VPSS 只筛选出特定尺寸的图像进行进一步处理。De-ring/De-block 去环效应/去块效应。去环效应也称为去振铃效应,补偿由于视频压缩所造成的低频分量损失DIE De-interlace,去隔行。将交错的隔行视频源还原成逐行视频源NRNo

26、ise Reduce,去噪。通过参数配置,把图像中的高斯噪声去除,使得图像变得平滑,有助于降低编码码率IEImage Enhance,图像增强。将辨别图像中的细节区域,把图像细节凸显,使得图像清晰,增加图像的对比度。z Sharpen图像锐化。锐化图像的边缘和凸显图像细节,对经过缩放( scaler)后的图像进行频率补偿或增强,使得图像边缘锐利,轮廓清晰。z FRCFrame Rate Control,帧率控制。编码相关操作CBR 固定比特率 ,在码率统计时间内保证编码码率平稳VBR 可变比特率,在码率统计时间内编码码率波动从而保证编码图像质量平稳FIXQP Fix Qp 固定 Qp 值。在码

27、率统计时间内,编码图像所有宏块 Qp 值相同,采用用户设定的图像 Qp 值H.264 编码提供 3 种跳帧参考模式: 1 倍跳帧参考、 2 倍跳帧参考、 4 倍跳帧参考z 全部抓拍模式:通道启动接收图像后,编码所有接收的图像。z 闪光灯抓拍模式:通道启动接收图像后,只编码在闪光灯亮时采集到的图像。视频输入设备z Hi3520D 芯片有 1 个 BT.1120 接口, 1 个 BT.1120 接口对应两个 VI 设备,即这个BT.1120 口对应 VI 的 Dev0 和 Dev1。2 个 VI 设备均支持 4 路 D1 复合模式输入( BT.656 协议),以及 1 路 720Pinterlea

28、ve 模式。只有编号为 0 的 Dev 支持 1 路 720P/1080P 高清输入( BT.1120 协议),此时,编号为奇数的 Dev 不可用。视频物理通道z Hi3520D VI 硬件单元包含 8 个 VI 视频物理通道,依次编号为 Chn0Chn7。不存在次通道。所有通道均支持 D1 和 960H 的视频图像输入,所有编号为 4 倍数的通道都支持GV7601 10bit multiplexed 模式输入的 720P 视频图像,只有 Chn0 支持标准 BT1120720P/1080P 视频数据输入。VENC 模块,即视频编码模块。本模块的输入源包括三类:第一类是用户态读取图像文件向编码

29、模块发送数据;第二类是视频输入( VIU)模块采集的图像经视频处理子系统( VPSS)发送到编码模块;第三类是视频输入( VIU)模块采集的图像直接发送到编码模块。-解决source insight 中文间距的方法:-默认情况下,往Source Insight里输入中文,字间距相当的大,要解决这个问题,具体设置如下:1. Options-Style Properties2. 在左边Style Name下找到Comment Multi Line和Comment.在其右边对应的Font属性框下的Font Name中选“Pick.” 设置为宋体、常规、小四。确定,退回Style Properties

30、界面,Size设为10。最后设置Clolors框下Foreground,点“Pick.”选择一种自己喜欢的颜色就OK了。=解决编译出现 解决/usr/bin/ld: cannot find lxxx/usr/bin/ld: cannot find -lusbcollect2: ld returned 1 exit status查看本地locate libusbcd /usr/lib/locate libusbxstriveubuntu:/usr/lib$ locate libusb/lib/x86_64-linux-gnu/libusb-0.1.so.4/lib/x86_64-linux-gn

31、u/libusb-0.1.so.4.4.4/lib/x86_64-linux-gnu/libusb-1.0.so.0/lib/x86_64-linux-gnu/libusb-1.0.so.0.1.0/usr/lib/libusbmuxd.so.1.0.8/usr/lib/libusbmuxd.so.2/usr/share/doc/libusb-0.1-4/usr/share/doc/libusb-1.0-0/usr/share/doc/libusbmuxd2/usr/share/doc/libusb-0.1-4/README.Debian/usr/share/doc/libusb-0.1-4/changelog.Debian.gz/usr/share/doc/libusb-0.1-4/copyright/usr/share/doc/libusb-1.0-0/README/var/lib/dpkg/info/libusb-0.1-4:amd64.list/var/lib/dpkg/info/libusb-0.1-4:amd64.md5sums/var/lib/dpkg/info/libusb-0.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论