海思3559开发环境搭建:从这里开始

简介: 海思的文档已经非常详细了,分门别类详尽整齐。但是对于刚刚接手的开发者而言,每次编译都不得不从一个文档看到另一个文档,再是另一个文档,跳来跳去又跳到readme……这一过程实在是繁琐之至。为了是这一过程清晰并且一目了然,在此整理出整个编译过程(以Hi3559AV100为例),给自己也给其他用到海思SDK的人提供方便之门。

前言:

 海思的文档已经非常详细了,分门别类详尽整齐。但是对于刚刚接手的开发者而言,每次编译都不得不从一个文档看到另一个文档,再是另一个文档,跳来跳去又跳到readme……这一过程实在是繁琐之至。为了是这一过程清晰并且一目了然,在此整理出整个编译过程(以Hi3559AV100为例),给自己也给其他用到海思SDK的人提供方便之门。

一.准备阶段 安装虚拟机

 ubuntu16.04,开启相关服务

 Windows下安装mobaxtern,filezilla,开启相关服务

二. 安装交叉编译工具:

 以《Hi3559A╱C V100 开发环境用户指南.pdf》为基础,这个文档在“XXX\ReleaseDoc\zh\01.software\board\OSDRV”目录下

 发布包提供编译工具链:

 aarch64-himix100-linux、 gcc-arm-none-eabi-4_9-2015q3。

 aarch64-himix100-linux 为基于 64bit 操作系统 glibc 的工具链。

  gcc-arm-none-eabi-4_9-2015q3 为 Huawei LiteOS M7 工具链。

  注意:(两个都必须安装!不是只用到了Linux就不安装另一个,不然后续编译会各种稀奇古怪的报错)

 比如:

 直接make all时

0.3.1/osdrv/components/ipcm/ipcm/class/virt-tty/liteos'
home/book/Downloads/hi3995tools/Hi3559AV100 SDK V2.0.3.1/osdrv/components/ipcm ipcm
make[21:Leavingdirectory/home/book/Downloads/hi3995 tools/Hi3559AV100 SDK V2.0.3.1/osdrv/components/ipcm/ipcm sharefs making...
make -f do make module sharefs
make[21:Enteringdirectory/home/book/Downloads/hi3995 tools/Hi3559AV100 SDK W
2.0.3.1/osdrv/components/ipcm/ipcm
make[2]: Nothing to be done for 'sharefs'.
make[21:Leavingdirectory"/home/book/Downloads/hi3995 tools/Hi3559AV100 SDK V2
0.3.1/osdrv/components/ipcm/ipcm' ipcm make all...
make[1]:Leavingdirectory'/home/book/Downloads/hi3995_tools/Hi3559AV100_SDK_V2
0.3.1/osdrv/components/ipcm/ipcm
/Downloads/hi3995_tools/Hi3559AV100_SDK_V2.0.3.1/osdrv
p/home/book/Downloads/hi3995_tools/Hi3559AV100_SDK_V2.0.3.1/osdrv/components/i pcm/ipcm/out/node6/*.a/home/book/Downloads/hi3995 tools/Hi3559AV100 SDK V2.0.31/osdrv/platform/liteos_m7/liteos/out/hi3559av100/cortex-m7/lib
cp:无法获取'/home/book/Downloads/hi3995 tools/Hi3559AV100 SDK V2.0.3.1/osdrv/co mponents/ipcm/ipcm/out/node 6/*.a’的文件状态(stat):没有那个文件或目录
make: *** [hiipcm] Error 1 Makefile:468: recipe for target 'hiipcm' failed Hx--1024

 想排查问题单独编译内核时

drivers/built-in.o:在函数'hisi_spi_nor_unprep'中:
arm pmu.c:(.text+0xb0278): 对'fmc switch mutex’未定义的引用
arm_pmu.c:(.text+0xb0278):截断重寻址至相符:R_AARCH64_ADR_PREL_PG_HI21 针对未定义的符号 fmc switch mutex
arm_pmu.c:(.text+0xb027c): 对'fmc_switch_mutex'未定义的引用 drivers/built-in.o:在函数'hisi_spi_nor_probe'中:
arm pmu.c:(.text+0xb0808):对'hifmc cs user’未定义的引用
arm_pmu.c:(.text+0xb0808)::截断重寻址至相符:R AARCH64_ADR_PREL_PG_HI21 针对未定义的符号 hifmc_cs_user
arm_pmu.c:(.text+0xb0840): 对'hifmc_cs_user’未定义的引用 arm_pmu.c:(.text+0xb0a24):对'hifmc_cs_user’未定义的引用 drivers/built-in.o:在函数'hisi spi nor_prep'中:
arm_pmu.c:(.text+0xb0d1c):对'fmc_switch mutex’未定义的引用
armpmu.c:(.text+0xb0d1c):截断重寻址至相符:R_AARCH64_ADR_PRELPG HI21 针对未定义的符号 fmc switch mutex
arm pmu.c:(.text+0xb0d20): 对'fmc switch mutex’未定义的引用
make: *** [vmlinux] Error1 Makefile:969: recipe for target 'vmlinux" failed Hx--1024

 实际上都会在安装全工具链后迎刃而解

aarch64-himix100-linux安装步骤如下:

步骤 1. 解压工具链。

  执行如下命令进行解压:

tar -xvf aarch64-himix100-linux.tgz

步骤 2. 安装工具链。

 运行命令 sudo ./aarch64-himix100-linux.install 即可完成此工具链的安装。

  其它工具链安装方法与上述描述类似。

gcc-arm-none-eabi-4_9-2015q3安装步骤如下:

步骤1、从ARM网站下载工具链压缩包:

 (1)进入网站:

  https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update

 (2)下载gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2

步骤2、安装:

 (1)将下载的 gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2和发布包里的gcc-arm-none-eabi-4_9-2015q3.install放到同一个目录下

 (2)执行如下命令:

chmod +x gcc-arm-none-eabi-4_9-2015q3.install
     sudo ./gcc-arm-none-eabi-4_9-2015q3.install

三.安装 Hi3559AV100 SDK

3.1 Hi3559AV100 SDK 包位置

 在"Hi3559AV100***/01.software/board"目录下,可以看到一个Hi3559AV100_SDK_Vx.x.x.x.tgz 的文件,该文件就是 Hi3559AV100 的软件开发包。

3.2 解压缩 SDK 包

 在 linux 服务器上(或者一台装有 linux 的 PC 上,主流的 linux 发行版本均可以),使用命令:tar -zxf Hi3559AV100_SDK_Vx.x.x.x.tgz,解压缩该文件,可以得到一个Hi3559AV100_SDK_Vx.x.x.x 目录。

3.3 展开 SDK 包内容

 返回 Hi3559AV100_SDK_Vx.x.x.x 目录,运行./sdk.unpack(请用 root 或 sudo 权限执行)将会展开 SDK 包打包压缩存放的内容,请按照提示完成操作。

 如果需要通过 WINDOWS 操作系统中转拷贝 SDK 包,请先运行./sdk.cleanup,收起SDK 包的内容,拷贝到新的目录后再展开。

3.4 在 linux 服务器上安装交叉编译器

 已经安装过了可以尝试开始编译了,此时可以进入/Hi3559AV100_SDK_V2.0.3.1/osdrv$目录 ,在opensource/kernel路径下下载Linux4.9.37版本的tar.gz后就可以直接make BOOT_MEDIA=spi AMP_TYPE=linux all即可,出现下图所示的界面就代表编译完成,也就说明我们的环境搭建就此完成了,其余详细的对于uboot的修改啦,kernel源码的修改啦,文件系统的制作啦我们都可以在后续单独讨论

3995 tools/Hi3559AV100 SDKV2.0.3.1/osdrv reating filesystem with parameters:
Size:100663296 Block size: 4096
Blocks per group: 32768 Inodes per group: 6144 Inode size: 256
Journal blocks: 1024 Label:
Blocks:24576 Block groups: 1
Reserved block group size: 7
reated filesystem with 521/6144 inodes and 4088/24576 blocks/Downloads/hi3995 tools/Hi3559AV100SDKV2.0.3.1/osdrv
Find/home/book/Downloads/hi3995tools/Hi3559AV100_SDK_V2.0.3.1/osdrv/pub/rootfs glibc multi-core arm64/ -name '*svn'l xargs rm -rf
bushd/home/book/Downloads/hi3995tools/Hi3559AV100 SDK V2.0.3.1/osdrv/pub;tar c frootfs glibcmulti-core arm64.tgz rootfs glibc multi-core arm64;popd
/Downloads/hi3995tools/Hi3559AV100_SDK_V2.0.3.1/osdrv/pub ~/Downloads/hi3995_t p0ls/Hi3559AV100SDKV2.0.3.1/osdrv
/Downloads/hi3995_tools/Hi3559AV100_SDKV2.0.3.1/osdrv Hx--1024  
----finish osdrv work

四.安装可能出现的报错

 ./sdk.unpack: 2: ./sdk.unpack: source: not found

/sdk.unpack: 2: ./sdk.unpack: source: not found/sdk.unpack:4:./sdk.unpack: ECHo: not found/sdk.unpack: 6: ./sdk.unpack: WARN: not found/sdk.unpack:7: ./sdk.unpack: WARN: not found/sdk.unpack: 8: ./sdk.unpack: ECHO: not found Nsdk.unpack: 17:./sdk.unpack: ECHO: not found/sdk.unpack: 18:./sdk.unpack: ECHO: not found/sdk.unpack:25:./sdk.unpack:ECHO: not found
/sdk.unpack:27:./sdk.unpack: run command progress float: not found/sdk.unpack: 29:./sdk.unpack: ECHO: not found
sdk.unpack:31:./sdk.unpack: run command progress float: not found/sdk.unpack: 33:./sdk.unpack: ECHO: not found
/sdk.unpack:35:./sdk.unpack: run command progress float: not found/sdk.unpack: 37:./sdk.unpack: Echo: not found
/sdk.unpack:39:./sdk.unpack: run command progress float: not found/sdk.unpack:41:./sdk.unpack: ECHO: not found
/sdk.undack:43:./sdk.undack: run command proaress float: not found
book@www.100ask.org:~/Downloads/hi3559/Hi3559AV100_sDK_V2.0.1.0$ sudo dpkg-recon fiqure dash

 &emsp终端输入:sudo dpkg-reconfigure dash,将dash设定改为No

正在设定 dash
The system shell is the default command interpreter for shell scripts.
Using dash as the system shell will improve the system's overall performance. It does not alter the shell presented to interactive users.
Use dash as the default system shell (/bin/sh)?
<Yes> <No>

 &emsp重新运行解压脚本就没有问题了

Unpacking SDK
WARN:Be sure you have installed the cross-compiler. if not, install it first! WARN: ALL THE SOUCE FILES WILL BE OVERWRITED. FILES YOU MOTIFIED WILL BE LOST !
OS TYPE =
SDK CHIP =hi3559av100 unpacking osal
run command progress float: 'tar -xvzf package/osal.tgz'100%]################################################## unpacking hisyslink
run commandprogress float: "tar -xvzf package hisyslink.tgz「100% ]################################################## unpacking osdrv
run command progress float: 'tar -xvzf package/osdrv.tgz[100%]################################################## unpacking mpp
run command progress float: 'tar -xvzf package/mpp.tgz'[100%]################################################## unpacking drv
run command progress float: 'tar -xvzf package/drv.tqz'
100%]################################################## bookowww.100ask.ora:~/Downloads/hi3559/Hi3559AV100SDKV2.0.1.0S Hx--1024
相关文章
|
6月前
|
IDE 开发工具 Android开发
【瑞萨MCU】开发环境搭建之 e2 studio
【瑞萨MCU】开发环境搭建之 e2 studio
108 0
|
6月前
|
IDE 中间件 开发工具
【瑞萨MCU】开发环境搭建之 MDK + RASC
【瑞萨MCU】开发环境搭建之 MDK + RASC
|
算法 数据可视化 编译器
第二代上位机开发环境搭建
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
Linux C语言
统信UOS系统开发笔记(二):国产统信UOS系统搭建Qt开发环境安装Qt5.12
开发国产应用,使用到统信UOS系统,安装Qt5.12.8的Qt开发安装包直接安装(这是本篇使用的方式,另外一种源码编译安装将在下一篇讲解)
|
物联网 开发工具 开发者
玄铁RISC-V处理器入门与实战-平头哥RISC-V 工具链-剑池CDK开发工具
玄铁RISC-V处理器入门与实战-平头哥RISC-V 工具链
394 1
|
Ubuntu 物联网 编译器
手把手移植物联网项目到arm开发板笔记(下)
手把手移植物联网项目到arm开发板笔记(下)
241 0
|
Ubuntu 物联网 Linux
手把手移植物联网项目到arm开发板笔记(上)
手把手移植物联网项目到arm开发板笔记
409 0
|
存储 人工智能 JavaScript
RISC-V大赛开发套件详解(五):D1哪吒开发板Haas-UI视频播放
RISC-V大赛开发套件详解(五):D1哪吒开发板Haas-UI视频播放
533 1
RISC-V大赛开发套件详解(五):D1哪吒开发板Haas-UI视频播放
|
JavaScript 网络协议 Linux
RISC-V大赛开发套件详解(六):D1哪吒开发板HaaS-UI FOTA 升级
本期内容是HaaS-UI实战教学部分的最后一篇,同时也是D1 哪吒开发板上手教学的完结篇。我们将手把手教大家在D1 哪吒开发板上实现HaaS-UI的FOTA升级功能。
496 0
RISC-V大赛开发套件详解(六):D1哪吒开发板HaaS-UI FOTA 升级
|
编解码 缓存 NoSQL
RISC-V大赛开发套件详解(二):D1哪吒开发板Yocto介绍
RISC-V大赛开发套件详解(二):D1哪吒开发板Yocto介绍
1629 2
下一篇
无影云桌面