1.海思项目整理 编译烧录+启动参数+sample编译+bayeRGBYUV+MPP(VB+VI+VPSS)

1.1.2、检测开发板
(4)SecureCRT监视打开,开发板开机,自动挂载到/home/aston/rootfs中
(5)自动加入/mnt中,执行./sample_venc即可
(6)在vlc中输入地址,即可浏览实时画面
菜单栏:媒体->打开网络串流->网络,输入:rtsp://192.168.1.10:554/stream_chn0.h264
勾选:显示更多选项。在正在缓冲中设置为300(原来是1000)

uboot的环境变量参数
1.12.4、各种常见flash的简单讲解
(1)买到的flash芯片,其实是内部的flash存储颗粒+外部封装的控制器来构成的。
(2)像EMMC、SD、MMC、SPIFLASH、NANDFLASH等差异都在于控制器。
(3)SPIFLASh的优势就是接口简单,主芯片只需要支持SPI接口就可以外接。很多MCU或者CPU在需要外扩一个8M/16M/32M/64M这么大级别的外部存储器时,选择SPIFLASH是很好的。
(4)NANDFLASH其实控制器是最老的,像EMMC、SD等都比NANDFlash要更新一些,更好一些。

1.3.视频设备开发的技术流

视频从产生到被消费的整个流程

(1)基本认知:视频是由单帧图像以每秒x帧的速率连续组成的,单帧图像类似位图。
(2)原始视频产生:镜头和sensor
(3)图像处理:ISP(image signal processing)
(4)视频编码压缩:h.264/h.265压缩算法,运算,内置DSP进行压缩运算的。
(5)视频流传输:网络传输、http/rtsp等
(6)视频存储:打包成MP4等格式存储,等待调阅
(7)视频回放:解码+播放

HI3518E方案系统整体架构介绍

硬件上
(1)HI3518E单芯片提供:CPU+DSP+内置64MB DDR + ETHERNET MAC
(2)外置SPIFlash用来存放程序(uboot、kernel、rootfs、app)
(3)SDcard扩展提供用户数据区
(4)板载ethernet PHY和USB HOST扩展WIFI提供联网能力
(5)sensor接口(并行数据通道+I2C控制通道)提供主板和sensor链接
(6)串口作为调试口和linux系统控制台
软件上
(1)SPIFlash分区烧录uboot.bin、zImage、rootfs,并设置合理的环境变量使系统启动。
(2)sensor、ethernet等硬件均需要驱动支持
(3)app实现视频采集、编码压缩、网络传输等核心工作
(4)各种专业工作(譬如利用内置DSP实现h.264编码压缩)都由海思开发好并以ko的形式提供,有API文档参考,app编写者在sample的帮助下逐步实现自定义的功能。

SDK中源码包部分的配置编译分解 海思开发环境搭建,编译整个osdrv

海思SDK包编译配置过程
①编译

进入osdrv目录。
先执行distclean命令,确保SDK命令是干净的

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 distclean

执行make all,编译整个osdrv目录

make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

出现错误:

①/bin/sh: 1: pushd: not found
 因为pushd命令需要在bash的环境中执行,所以需要修改系统默认shell为bash
 步骤1.which sh,定位至/bin/sh
步骤2.ls -l /bin/sh,结果发现sh指向dash
步骤3.sudo rm /bin/sh   删除原来的
步骤4.sudo ln -s /bin/bash /bin/sh 创建所需链接文件
步骤5.ls -l /bin/sh,结果表明sh指向bash

②make[2]: arm-hisiv300-linux-gcc: Command not found
 交叉编译工具链未安装。
 发布包提供两种编译工具链
 ①arm-hisiv300-linux 基于 ulibc 的工具链(精简)---我们选择的
 ②arm-hisiv400-linux 基于 glibc 的工具链(完整)
 解决:找到arm-hisiv300-linux工具包----解压----安装执行make----进入工具链的挂载目录发现很多arm-hisiv300-linux-uclibcgnueabi-xxx编译工具链----将该目录导入到环境变量中去(一劳永逸:vi ~/.bashrc,在文件末尾追加export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH并source ~/.bashrc)
   新问题:一、file file arm-hisiv300-linux-uclibcgnueabi-gcc →→ELF 32-bit LSB executable说明工具链是32位,而ubuntu是64位的→需要安装32位兼容包
     ①联网
     ②sudo aptitude install lib32z1
     ③sudo aptitude install lib32stdc++6-4.8-dbg
   二、工具包中的文件名和makefile中使用的名字不一样
     ①手动一个一个创建符号链接文件
     ②修改makefile-----工作量大且容易出问题×××××
   三、交叉工具链的安装位置不稳妥,如果进行了make distclean会被清理掉,最好放到外面,不会被轻易清理掉

而事实上工具包arm-hisiv300-linux中
在这里插入图片描述
脚本文件cross.install.v300专门用于安装交叉编译工具链→安装至一个原本就包含在环境变量区域的位置(1不会被轻易清理掉,2期间会自动创建符号链接文件)
【32位兼容包还是要安装的,还是要导入到环境变量中去的】

验证交叉工具链是否安装:
arm-hisiv300-linux-gcc -v
出现了gcc version 4.8.3 20131202 (prerelease) (Hisilicon_v300)说明安装成功

③"mkimage" command not found - U-Boot images will not be built
解决方法1:mkimage起始生成并放在其他位置→搬过来即可
步骤1,cd osdrv/opensource/uboot/u-boot-2010.06
步骤2,ls 【可以看到里面uboot.bin已经生成了】
步骤3,cd tools 【里面有mkimage.c和mkimage】
步骤4,file mkimage 【写x86-64位的架构,ubuntu16.0.04也是x86-64架构,因此可以在当前虚拟机上运行】
步骤5,sudo cp mkimage /usr/local/bin(移动到PATH指定路径即可)
步骤6,cd …/…/
步骤7,ls 【发现里面要u-boot-2010.06文件夹和u-boot-2010.06.tgz压缩包】
步骤8,mki[连续按TabTab键] 【发现补全mkimage,说明已经成功解决了】
解决方法2: 安装依赖包
步骤1, ping www.baidu.com 确保虚拟机能上网
步骤2,sudo apt-get install u-boot-tools

④compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory
解决:sudo aptitude install zlib1g-dev
整个osdrv是提供了zlib的,只是因为已经编译了zlib没有部署它。所以要做的就是部署zlib,把osdrv/tools/pc/zlib/tmp/lib下的全部库复制到osdrv/tools/pc/jffs2_tool/tmp/lib/,和把osdrv/tools/pc/zlib/tmp/zlib-1.2.7下的zlib.h, zconf.h复制到osdrv/tools/pc/jffs2_tool/tmp/include/;在次编译就可以完成jffs2的根文件系统。

⑤serve_image.c:32:18: error: storage size of ‘hints’ isn’t known
在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致
解决:修改操作系统头文件/usr/include/netdb.h,将此宏__USE_XOPEN2K注释,如下图(注意#ifdef与#endif是一一对应的)
步骤1,sudo vi /usr/include/netdb.h
步骤2,:set nu 【显示行号】
步骤3,

  • 7
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值