海思SDK 学习 :001-HI_SDK 的 安装

背景

保密。不管怎么样接触到了海思SDK的开发,作为一项比较常见的技术,我们开展有关地学习。

host平台   :Ubuntu 16.04
arm平台   : 3531d
arm-gcc   :4.9.4

概况

海思给出的官方资料有:

文件名 解释
Hi3531D_Vxxxxxx.rar 包含了有关的SDK
ReleaseDoc.rar 官方发布的中英文文档
arm-hisiv500-linux.tgz 开发用的工具链

安装

以下的操作在 Linux主机上进行。(本人这里是Ubuntu)

Hi3531D_Vxxxxxx.rar:解压SDK包、并展开包的内容

Hi3531D SDK包位置:在"Hi3531D Vxxxxxx/01.software/"目录下,有 Hi3531D_SDK_Vx.x.x.x.tgz 的文件,该文件就是Hi3531D的软件开发包。

tar -xf Hi*SDK*.tgz

cd Hi*SDK*

# 如果需要拷贝SDK包,请先运行source  sdk.cleanup,收起SDK包的内容,拷贝到新的目录后再展开。
source sdk.unpack

SDK目录介绍

# schips @ ubuntu in Hi3531D_SDK [10:54:44]
$ tree  -L 2
.
├── drv                #平台驱动
│   ├── cipher
│   ├── hisi-irda
│   ├── rtc
│   ├── sys_config
│   └── wtdg
├── mpp                # 存放媒体处理平台的目录
│   ├── component      # 组件源代码 
│   ├── extdrv         # 板级外围驱动源代码
│   ├── include        # 对外头文件
│   ├── ko             # 内核模块
│   ├── lib            # release版本库以及音频库
│   ├── linux.param
│   ├── Makefile.param
│   ├── sample         # 样例源代码
│   └── tools          # 媒体处理相关工具
├── osal
│   ├── include
│   └── source
├── osdrv              # 存放操作系统及相关驱动的目录
│   ├── drv            # drv源代码
│   ├── Makefile       # osdrv Makefile
│   ├── opensource     # 包含了 uboot、kernel、busybox等源码
│   ├── pub            # 编译好的镜像、工具、drv驱动等(空的)
│   ├── readme_cn.txt
│   ├── readme_en.txt
│   ├── rootfs_scripts # rootfs源代码
│   └── tools          # linux工具源代码
├── package            # 存放SDK各种压缩包的目录
│   ├── drv.tgz        # 平台驱动压缩包
│   ├── image_uclibc   # 可供FLASH烧写的映像文件,如内核、根文件系统
│   ├── mpp.tgz        # 媒体处理平台软件压缩包
│   ├── osal.tgz
│   ├── osdrv.tgz      # linux内核/uboot/rootfs/tools源码压缩包
│   └── rootfs_uclibc.tgz
├── scripts            # 存放shell脚本的目录
├── sdk.cleanup        # SDK清理脚本
└── sdk.unpack         # SDK展开脚本

arm-hisiv500-linux.tgz:安装交叉编译器到HOST

解压与自动安装

tar -xf arm-hisiv500-linux.tgz

cd arm-hisiv500-linux
# arm-hisiv500-linux.install 脚本中的 TOP_DIR 为安装工具链的位置,可以修改,一般默认即可
chmod +x arm-hisiv500-linux.install
sudo ./arm-hisiv500-linux.install

配置工具链到 PATH中

# 默认情况下的工具链配置路径
export PATH=$PATH:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin

测试

$ arm-hisiv500-linux-gcc --version

arm-hisiv500-linux-gcc (Hisilicon_v500_20170922) 4.9.4 20150629 (prerelease)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如果出现:

arm-hisiv500-linux-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

这是因为gcc太老的问题:解决办法:

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6  -y

编译osdrv

osdrv ,具体参见osdrv目录下readme;这里给出自用的编译kernel 有关的脚本

  • 配置:make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig
  • 清除:make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- clean
  • 编译:
sudo PATH=$PATH:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- uImage -j4 
posted @ 2020-03-10 18:14  schips  阅读(2487)  评论(0编辑  收藏  举报