【Hi3559V200 BSP 开发】Hi3559V200 环境搭建

一、产品概述

1.1 芯片概述

       Hi3559V200 是一颗面向运动相机、流媒体后视镜等领域推出的高性能、低功耗的4K Ultra-HD Mobile Camera SOC。该芯片支持 H.265/H.264 编解码,

编码/解码性能高达 4KP30/1080P120;该芯片集成了海思第四代 ISP,支持 WDR、多级降噪、六轴防抖及多种图像增强和矫正算法,为客户提供专业级的图像质量。

该芯片采用先进低功耗工艺和低功耗架构设计,为用户提供更长的电池续航时间。

       Hi3559V200 集成了 Cortex-A7 双核 CPU,支持 Linux 和 LiteOS 双操作系统,使得快速启动、实时性和外设驱动的丰富性得以兼顾。

        Hi3559V200 采用先进的 28nm 低功耗工艺和小型化封装,同时支持 DDR3(L)/DDR4/LPDDR3,使得 Hi3559V200 可支撑产品小型化设计。

 

1.2 应用场景

       Hi3559V200 运动相机解决方案如图 1.1,录像模式支持 3840 x 2160@30fps 编码用于 SD 卡存储+720p@30fps 子码流编码用于 WiFi 点播/预览。

拍照模式支持 16M(4608 x 3456)@10fps/12M@15fps 连拍。回放模式支持 3840 x 2160@30fps 解码 + HDMI 3840 x 2160@30fps 送TV 显示。

 

图 1.1 Hi3559V200 运动相机方案

 

 

二、软硬件环境选择

2.1 硬件环境

       使用的硬件平台是 Hi3559V200DMEB VER.A ,这个板是海思官方的 EVM Board ,搭配的摄像头是IMX458 ,LCD 屏是 St7789 ,WiFi 模块是 REALTEK 的 RTL8189。

 

图 2.1 Hi3559V200DMEB VER.A Board

 

2.2 软件环境

HiMobileCam 软件架构在 Hi3559V200 芯片平台上采用 Linux+Huawei LiteOS 双系统 AMP架构解决方案。

使用的 SDK 版本是:Hi3559V200_MobileCam_SDK_V1.0.1.5

GCC 编译器为:arm-himix100-linux

推荐使用的操作系统平台为:Ubuntu14.04

 

 

 、 软件包安装

3.1 配置默认使用 bash

$ sudo dpkg-reconfigure dash 

选择 “否”

图 3.1 配置默认 bash

 
3.2 输入以下命令安装所依赖的软件包:

$ sudo apt-get install make libc6 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev \ 
ncurses-term libncursesw5-dev g++ u-boot-tools texinfo texlive gawk curl upx pngquant

 

3.3 安装 gperf 软件包 

gperf 3.1 .tar.gz

下载路径: http://ftp.gnu.org/pub/gnu/gperf/gperf 3.1.tar.gz 

$ tar -xzf gperf-3.1.tar.gz

$ cd gperf-3.1

$ ./configure

$ make

$ make install

 
3.4 创建 /etc/ld.so.preload 文件,并执行

$ echo "" > /etc/ld.so.preload


以解决 64bit linux server 上某些第三方库编译失败的问题。 

 

 

四、交叉编译工具链安装

4.1 安装交叉编译工具链

对应工具链为 arm-himix100-linux ,获取工具链安装包 arm-himix100-linux .tgz ,执行以下命令安装交叉编译工具链:

# 解压

$ tar zxvf arm-himix100-linux.tgz

# 安装工具链

$ cd arm-himix100-linux

$ sudo chmod +x arm-himix100-linux.install

$ sudo ./arm-himix100-linux.install

$ export PATH=/opt/hisi-linux/x86-arm/ arm-himix100-linux/bin:$PATH

 

 五、安装 mtd-utils 工具依赖的组件

5.1 安装依赖库

$ sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config


5.2 设置 pkg-config 路径 

由于 mtd-utils2.0.2 通过 pkg-config 工具检查依赖库是否已正常安装,因此需要设置

pkg-config 工具搜索路径:

$ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"



 5.3 安装 automake1.15.1

mtd-utils2.0.2 依赖于 automake1.15.1 版本,因此需要将服务器 automake 版本升级到

1.15.1 ,方式如下:

# 删除原有 automake 版本

$ sudo apt get autoremove automake

# 通过此命令下载 automake

$ wget ftp://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz

#  编译安装 automake1.15.1

$ tar -zxvf automake-1.15.1.tar.gz

$ cd automake-1.15.1

$ ./configure

$ make

$ make install



  

六、安装 ffmpeg 工具

6.1 ffmpeg 的作用

发布包编译过程中使用ffmpeg工具对开机画面资源文件、开机声音资源文件进行格式转换。为保证编译正常进行,需要在编译前完成ffmpeg工具的安装。

 

6.2 下载压缩包

https://johnvansickle.com/ffmpeg/ 下载对应服务器版本的压缩包

 

图 6.1 ffmpeg 版本

6.3 安装 ffmpeg 工具

# 删除原有 automake 版本

$ sudo apt get autoremove automake

# 通过此命令下载 automake

$ wget ftp://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz

#  编译安装 automake1.15.1

$ tar -zxvf automake-1.15.1.tar.gz

$ cd automake-1.15.1

$ ./configure

$ make

$ make install

 

            

 七、安装 SDK

7.1 解压 SDK 包

使用的 SDK 版本是 Hi3559V200_MobileCam_SDK_V1.0.1.5,获取压缩包并解压,解压后进入SDK 根目录可以看到以下目录和文件:



图 7.1 SDK 根目录

 

7.2 打内核补丁包

进入 osdrv/opensource/kernel 目录中,确保可以看到以下文件:

 

图 7.2 内核存放目录 osdrv/opensource/kernel

 

然后执行如下命令即可安装内核并打上 Hi3559V200 的内核补丁包:

$ tar -zxf linux-4.9.37.tar.gz

$ mv linux-4.9.37 linux-4.9.y

$ cd linux-4.9.y

$ patch -p1 < ../linux-4.9.37.patch

$ cd ../

$ tar -czf linux-4.9.y.tgz linux-4.9.y

$ cd ../../

 


7.3 将第三方工具类源码和第三方源码放到指定目录 

第三方工具都可以在网上寻找资源,Hi3559V200 所需的第三方工具如下:

l e2fsprogs 软件包准备

− 放置路径: osdrv/tools/board/e2fsprogs

 

l eudev 软件包准备

− 放置路径: osdrv/tools/board/eudev-3.2.7

 

l gdb 软件包准备

− 放置路径: osdrv/tools/board/gdb

 

l ncurses 软件包准备

− 放置路径: osdrv/tools/board/gdb

 

l mtd-utils 软件包准备

− 放置路径: osdrv/tools/board/mtd-utils 、osdrv/tools/pc/jffs2_tool

 

l libuuid 软件包准备

− 放置路径:  osdrv/tools/board/mtd-utils

 

l zlib 软件 包准备

− 放置路径:  osdrv/tools/board/mtd-utils 、 osdrv/tools/pc/squashfs4.3 、osdrv/tools/pc/zlib

 

l util-linux 软件包准备

− 放置路径:   osdrv/tools/pc/cramfs_tool

 

l gzip 软件包准备

− 放置路径: osdrv/tools/pc/hi_gzip

 

l lzo 软件包准备

− 放置路径: osdrv/tools/pc/jffs2_tool

 

l lzma 软件包准备

− 放置路径: osdrv/tools/pc/lzma_tool

 

l yaffs2utils 软件包准备

− 放置路径: osdrv/tools/pc/mkyaffs2image

 

l squashfs 软件包准备

− 放置路径: osdrv/tools/pc/squashfs4.3

 

l xz 软件包准备

− 放置路径: osdrv/tools/pc/squashfs4.3

 

l ffmpeg 软件包准备

− 放置路径:  middleware/thirdparty/ffmpeg

 

l tiff 软件包准备

− 放置路径:  middleware/thirdparty/tiff

 

l rapidjson 软件包准备

− 放置路径:  middleware/thirdparty/rapidjson

 

l xmp-toolkit-sdk 软件包准备

− 放置路径:  middleware/thirdparty/xmp-toolkit-sdk

 

l expat 软件包准备

− 放置路径:  middleware/thirdparty/xmp-toolkit-sdk

 

l freetype 软件包准备

− 放置路径:  reference/thirdparty/freetype

 


八、编译 SDK

8.1 选择 .config 文件

① 进入 ./configs 目录,选择 imx458 的 samplecam 配置文件放到 SDK 根目录进行编译

图 8.1 configs 目录

 
② 在根目录把配置文件重命名为 “.config”

图 8.2 重命名配置文件

8.2 编译整个 SDK 

直接在 …/Hi3559V200_MobileCam_SDK_V1.0.1.5 目录下执行

$ make all


编译过程可能会遇到宏定义识别不出来的问题,出现的原因可能是: 

① 前面搭建的环境不完整,缺少软件包,或第三方工具和库。

② 解压第三方工具或库的过程中丢失了一些数据。

最终都会导致 osdrv_mem_cfg.sh 文件的内容有缺失,缺少了一部分数据。

 

解决方法有两种:

① 编译过程中 osdrv_mem_cfg.sh 文件会生成一个备份,可以先尝试用备份文件替换原来的。

② 上面的方法不行的话,可以查找该宏定义的源文件,直接用具体数值代替。

 

8.3 生成镜像文件

编译成功后会在 …/Hi3559V200_MobileCam_SDK_V1.0.1.5/reference/out/ hi3559v200_samplecam_demb_imx458/burn/spinor 目录下生成 reference 镜像文件。

图 8.3 编译产生的镜像文件

 

 
九、SDK 镜像烧写

9.1 SD 卡烧写

当单板上无可用 u-boot 时可通过 SD 卡裸烧方式烧写 u-boot 及其他镜像 ,SD 卡烧写的具体步骤如下:

① SD 卡准备:此 SD 卡必须被格式化为 FAT32 格式,容量至少要大于要升级镜像的总大小。

② 准备烧写镜像:将需要烧写的镜像及升级配置文件 config 拷贝至 SD 卡的根目录下。

③ 插入 SD 卡,并按下单板 UPDATE 键。

④ 上电,当出现以下升级流程时可松开 UPDATE 键。

图 9.1 烧录页面

 

⑤ 等待烧录完成,成功启动系统。

 

图 9.2 Linux 系统启动页面

 

 

参考资料:

【1】《 WM_Hi3559V200 4K Mobile Camera SoC 用户指南.pdf 》

【2】《 WM_HiMobileCam SDK安装使用说明.pdf 》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论