基于 Hisilicon Hi3562 BSP 环境搭建

一. 产品概述

1.1 概述
Hi3562V100是一颗面向车载行车记录仪 , 流媒体后视镜等领域推出的高性能 , 低功耗的 Camera SOC  , 该芯片支持1080p30 H.265/H.264 编解码;集成了海思第四代ISP ,支持 WDR  , 多级降噪及多种图像增强和矫正算法 , 为客户提供专业级的图像质量;并提供0.5Tops的神经网络加速器 , 以支持轻量智能业务 ,Hi3562V100采用28nm低功耗工艺 , 符合AEC-Q100相关认证要求


1.2 应用场景
Hi3562V100行车记录仪解决方案 ,录像模式:1920 x 1080@30fps 编码用于SD卡存储+1280x720@30fps ,子码流编码用于 WiFi 点播和预览



                                                                                           图1-1 Hi3562V100 行车记录仪方案框图


二.HISILICON HI3562 软硬件环境


2.1
硬件环境
我们使用的硬件平台为 HI3562V100DMEB2775 VER.A  ,这个板为 HISI 的 EVM Board ,包含的摄像头模块为 OV2775 ,WIFI 模块为 REALTEK 的 RTL8189



                                        图2-1 Hi3562V100 DMEB2775 Board

2.2 软件环境

HiMobileCam 软件架构在 Hi3562V100 等芯片平台上采用 Linux+Huawei LiteOS 双系统AMP 架构解决方案 ,HiMobileCam SDK AMP 架构板端系统自下而上包含Osdrv,MPP,Hisyslink,Middleware 和Reference 这几个部分使用的软件版本是 :Hi3562V100_MobileCam_SDK_V2.0.0.2

GCC 编译器为 :arm-himix400-linux

推荐使用的操作系统平台为 :Ubuntu16.04 或以上版本

三.软件包安装


3.1 配置默认使用 bash

执行 sudo dpkg-reconfigure dash 选择:否

$sudo dpkg-reconfigure dash



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 安装软件包 (编译安装)

$ wget 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

$ sudo make install


3.4 创建/etc/ld.so.preload 文件

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

 

四. 交叉编译工具链安装


4.1 解压交叉编译链工具包

$ tar -xvf arm-himix400-linux.tgz

4.2 交叉编译链工具包安装

$ cd arm-himix400-linux

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

$ sudo ./arm-himix400-linux.install

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

$ make ARCH=arm CROSS_COMPILE=/opt/hisi-linux/x86-arm/arm-himix400-linux- menuconfig

$ source /etc/profile

$ make ARCH=arm CROSS_COMPILE=arm-himix400-linux- menuconfig


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


4.3.1 安装依赖库

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

设置 pkg-config 路径

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

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

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

① 删除原有automake版本

$ sudo apt-get autoremove automake

② 下载 1.15.1 版本

Windows 上使用浏览器访问 automake 工程 url 并下载对应源码包:

https://lists.gnu.org/archive/html/info-gnu/2017-06/msg00007.html

linux 下面可以通过命令行下载

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

$ sudo make install

$ automake --version  automake (GNU automake) 1.15.1

 

五.SDK 安装


5.1 拷贝 SDK


将Hi3562V100_MobileCam_SDK_V2.0.0.2 拷贝到服务器

5.2 解压 SDK

$ tar -xvf Hi3562V100_MobileCam_SDK_V2.0.0.2.tgz

SDK 目录结构 :

    图5-1 SDK 目录结构

5.3 从第三方网站上获取内核源码

linux 开源社区下载 v4.9.37 版本的内核

https://mir rors.edge.kernel.org/pub/linux/kernel/v4.x/ 选择 linux 4.9.37.tar.gz 这个文件下载 并把该文件放入 osdrv/opensource/kernel 目录

5.4 安装第三方软件

e2fsprogs 软件包准备

下载路径:https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/v1.42.13/e2fsprogs-1.42.13.tar.gz/download

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

Eudev 软件包准备

下载路径:https://dev.gentoo.org/~blueness/eudev/eudev-3.2.7.tar.gz

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

Gdb 软件包准备

下载路径:http://ftp.gnu.org/gnu/gdb/gdb-7.9.1.tar.gz

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

Ncurses 软件包准备

− 下载路径:http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz

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

mtd-utils 软件包准备

− 下载路径:


https://src.fedoraproject.org/repo/pkgs/mtd-utils/mtd-utils-/sha512/5e8e8159a0aef719193e4248b3ed22aa37bacc26e8fa0cceb7501b0bf05881f5fa1c87599a6fd78a677fe168df3fbae14fa6f3ccaae7c25dbe3c892db243d9a4/mtd-utils-2.0.2.tar.bz2

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

Libuuid 软件包准备

− 下载路径:https://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz/download

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

Zlib 软件包准备

− 下载路径:https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz/download

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

util-linux 软件包准备

− 下载路径:https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.31/util-linux-2.31.tar.gz

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

Gzip 软件包准备

− 下载路径:http://ftp.gnu.org/gnu/gzip/gzip-1.8.tar.gz

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

Lzo 软件包准备

− 下载路径:http://www.oberhumer.com/opensource/lzo/download/lzo-2.09.tar.gz

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

Lzma 软件包准备

− 下载路径:https://src.fedoraproject.org/repo/pkgs/lzma/lzma-4.32.7.tar.gz/2a748b77a2f8c3cbc322dbd0b4c9d06a/lzma-4.32.7.tar.gz

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

yaffs2utils 软件包准备

− 下载路径:https://github.com/dorigom/yaffs2utils/archive/0.2.9.tar.gz

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

Squashfs 软件包准备

− 下载路径:https://sourceforge.net/projects/squashfs/files/squashfs/squashfs4.3/squashfs4.3.tar.gz/download

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

Xz 软件包准备

− 下载路径:https://tukaani.org/xz/xz-5.2.2.tar.bz2

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

Ffmpeg 软件包准备

− 下载路径:http://ffmpeg.org/releases/ffmpeg-4.1.4.tar.gz

− 放置路径:middleware/thirdparty/ffmpeg

Tiff 软件包准备

− 下载路径:http://download.osgeo.org/libtiff/tiff-4.0.10.tar.gz

− 放置路径:middleware/thirdparty/tiff

Rapidjson 软件包准备

− 下载路径:https://codeload.github.com/Tencent/rapidjson/tar.gz/v1.1.0

− 放置路径:middleware/thirdparty/rapidjson

xmp-toolkit-sdk 软件包准备

− 下载路径:http://download.macromedia.com/pub/developer/xmp/sdk/XMP-Toolkit-SDK-CC201607.zip

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

Expat 软件包准备

− 下载路径:https://codeload.github.com/libexpat/libexpat/tar.gz/R_2_2_6

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

Freetype 软件包准备

− 下载路径:https://bigsearcher.com/mirrors/nongnu/freetype/freetype-2.9.1.tar.gz

− 放置路径:reference/thirdparty/freetype

Thttpd 软件包准备

− 下载路径:http://www.acme.com/software/thttpd/thttpd-2.29.tar.gz

− 放置路径:reference/thirdparty/thttpd

iniparser软件包准备

− 下载路径:https://github.com/ndevilla/iniparser/archive/v4.1.tar.gz

− 放置路径:reference/thirdparty/iniparser

hostapd软件包准备

− 下载路径:https://w1.fi/releases/hostapd-2.7.tar.gz

− 放置路径:reference/thirdparty/hostapd

libnl软件包准备

− 下载路径:https://www.infradead.org/~tgr/libnl/files/libnl-3.0.tar.gz

− 放置路径:reference/thirdparty/libnl

下面是需下载的第三方软件 :

                                         图5-2 第三方软件


六.
SDK 编译

通过命令 make menuconfig

6.1 配置芯片类型为 Hi3562V100

                               图6-1 配置芯片类型

6.2 产品形态配置为 DashCam

                             图6-2 配置产品形态

6.2.1 DashCam Type :NoneScreen


                                图6-2-1 配置产品形态

6.3 Sensor Configure 选择 OV2775 Mode_0


                      图6-3  Sensor Configure

6.4 Flash Type 选择为 :SPI Nor


                  图6-4  选择 Flash Type

6.5 Wifi Type 选择 rtl8189


                               图6-5 选择 Wifi Type

退出 make menuconfig 后 执行 make all 命令 :


                                                                图6-6 执行编译命令

编译完成之后的结果 :

                                                              图6-6  编译结果


在Hi3562\Hi3562V100_MobileCam_SDK_V2.0.0.2\reference\out\hi3562v100_dashcam_nonescreen_demb_ov2775\burn\spinor

目录下生成以下目标文件 :


                                                       图6-7 目标文件

把 U盘格式化为 FAT32格式后 ,把以上目标文件拷贝到 TF 卡 ,拨码开关设置为 SPI Nor Flash 启动模式 :


                                   图6-8 选择启动模式

插入电源启动后 ,系统可以正常启动 :


                                                        图6-9 Log 信息

通过 “ 基于 Hisilicon Hi3562 BSP 环境搭建 ”这篇博文 ,相信大家已经了解了搭建 Hi3562 BSP 环境的过程 ,首先是安装软件包 ,

接下来安装交叉编译工具 arm-himix400-linux , 接着解压 SDK 并便于 ,把编译的内容拷贝到 TF 卡 ,设置启动模式后可以正常开机

以上便是 Hi3562  BSP 环境搭建的全部内容


七.  参考文档

【1】 HiMobileCam V2.0 SDK安装使用说明.pdf




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

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

评论