i.MX8 驱动调试丨基于 HISILICON HI3562 BSP 环境搭建

上一期我们介绍了 【 基于 NXP i.MX8QM TJA1043-CAN 通信】,本期将给大家推出 i.MX8 驱动调试系列最后一部:基于 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 点播和预览


二.HISILICON HI3562 软硬件环境

2.1 硬件环境

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



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.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-2.0.2.tar.bz2/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

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





六.SDK 编译

通过命令 make menuconfig

6.1配置芯片类型为 Hi3562V100


6.2 产品形态配置为 DashCam

6.2.1 DashCam Type :NoneScreen


6.3 Sensor Configure 选择 OV2775 Mode_0

6.4 Flash Type 选择为 :SPI Nor


6.5 Wifi Type 选择 rtl8189


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


编译完成之后的结果 :


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

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


把 U盘格式化为 FAT32格式后 ,把以上目标文件拷贝到 TF 卡 ,


拨码开关设置为 SPI Nor Flash启动模式 :


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

 

以上便是 Hi3562  BSP 环境搭建的全部内容。通过 “ 基于 HISILICON HI3562 BSP 环境搭建 ”这篇博文 ,相信大家已经了解了搭建 HI3562 BSP环境的过程 , 接下来将给大家推出人脸识别盛宴:基于 NXP i.MX 8M 的 Shark 方案。

接下来我们也会不断更新更多关于 i.MX8 系列的开发博文,同时我们也会持续推出更多 ADAS 相关(S32V234、Hi3566V100、Hi3559AV100、Hi3518EV300、硬件、软件、算法等)的技术开发博文,如需更深入的技术交流,欢迎在博文下方评论或者关注给我留言。


参考文档

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

 

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

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

评论