海思开发板使用手册一
这两年搞了嵌入式相关的内容,一开始弄时汇总了下针对海思开发板的使用,供大家参考下,主要包括:Linux开发环境的搭建,板卡固件的编译和烧写,内存和存储的分配管理。三块内容完成后,还有个培训的录屏到时再发下。
注1:海思提供的板卡官方文档(ReleaseDoc)里面是很全,本文做个汇总整理和踩的一些坑。
注2:后面文章里面有些命令首字母是大写,是由于是从word中复制过来的,执行的时候自行改下。
1.环境搭建

上图是常规操作板卡的环境
- Linux服务器(一般为Ubuntu虚机):安装交叉编译环境,可以用户板卡固件、程序等程序的开发编译工作。
- Windows工作台:一般作为联调和传输中转使用。
- 目标板:程序的实际运行环境。
2.Linux开发环境搭建
注1:一般板卡销售方都会提供一个配置好环境的虚机,若使用现成的环境,直接用VMware打开即可,这块就跳过。
注2:虚机版本不同对于一些库的依赖的版本也会不同,根据错误提示修改下就可以,文档是基于ubuntu20.04版本
2.1SDK环境搭建
2.1.1系统基础环境搭建
步骤 1 :配置默认使用bash
执行sudo dpkg-reconfigure dash 选择 no
步骤 2 安装软件包
执行:sudo apt-get install make libc6-i386 lib32z1 lib32stdc++6 zlib1g-dev libncurses5-dev ncurses-term libncursesw5-dev g++ u-boot-tools texinfo texlive gawk libssl-dev openssl bc p7zip-full gperf bison flex diffutils git unzip
步骤 3 创建/etc/ld.so.preload 文件,并执行echo "" > /etc/ld.so.preload,以解决64bit linux server上某些第三方库编译失败的问题。
步骤 4 mtd-utils依赖以下几个库,以ubuntu为例,安装方式请参考下面命令:
sudo apt-get install zlib1g-dev liblzo2-dev uuid-dev pkg-config automake
由于mtd-utils通过pkg-config工具检查各个库是否正常安装,因此请参考如下方式设置pkg-config工具搜索路径:
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig"
步骤 5 e2fsprogs依赖texlive库,安装方式请参考如下命令:
sudo apt-get install texlive
步骤 6 LiteOS 编译需要安装的工具包括python、pip和kconfiglib
用户可参考《LiteOS 开发指南.pdf》中第8.2章节文档进行LiteOS编译环境的配置。
sudo pip install kconfiglib(注意pip对应的python)
步骤 7 optee 模块依赖 python3.x.x、pip3、wheel、pycryptodome、pyelftools库(蓝色字体为版本安装包下载链接)
a.python3.x.x 安装推荐 python3.7.6版本
注:整理博客时用3.8走了遍,也是可以的,自行选择,官方文档推荐的是3.7.6。
下载安装并执行如下指令:
tar -zxvf Python-3.7.6.tgz cd Python-3.7.6/
./configure
make
make install
由于ubuntu里面自带了python3.8,需要使用pip –version查看pip对应的python,注意下面写的PIP3是对应3.7.6版本的python
可以使用ln –s ‘源文件路径’ ‘目录连接路径’ 建立软连接
ln -s /usr/local/bin/python3 /usr/local/bin/python
b.wheel 推荐源码安装, pip 安装可能失败
注:虽然官方文档建议是源码安装,但尝试了没成功,最后还是使用Pip安装的。。。
Pip3 install wheel
源码安装:下载 wheel-0.36.2.tar.gz 安装包

c.Pycryptodome,Pyelftools
没找到离线安装包,使用Pip在线安装
Pip3 install pycryptodome
Pip3 install pyelftools
到这系统的基础环境就搭建好了
2.1.2安装交叉编译工具
根据SDK提供的工具链进行安装,也可以安装高版本
- aarch64-mix210-linux.tgz
解压:tar –xvf aarch64-mix210-linux.tgz
进入解压路径:cd aarch64-mix210-linux
安装:sudo ./aarch64-mix210-linux.install
- cc-riscv32-cfg5-musl-xxxxxxxx-elf.tar.gz
解压:tar –xvf
进入解压路径:cd
安装:sudo ./install.sh
修改文件夹所有者:sudo chown -R
配置环境变量:
Sudo nano /etc/profile
在文件最后一行添加安装路径,路径根据实际情况进行修改

重启或source /etc/profile 生效环境变量
- 验证
输入aa 再按tab键
输入riscv32- 再按tab键
有如下图输出,说明工具链已安装好。


2.1.3安装SDK
解压SDK包:tar -zxf SS928V100_SDK_Vx.x.x.x.tgz(SDK在下图压包中)

进入解压路径:cd SS928V100_SDK_Vx.x.x.x
展开:./sdk.unpack
进入osdrv目录
编译固件 make all (osdrv里面有readme文件)
可选--修改文件归属:sudo chown -R
遇到报错1,如下图:

由于使用的ubuntu是22.04版本,没有libisl.so.19,建立软连接使用libisl.so.22.
ln -s /usr/lib/x86_64-linux-gnu/libisl.so.22.0.1 /usr/lib/x86_64-linux-gnu/libisl.so.19
遇到报错2,如下图:

Kconfiglib库文件没安装。
sudo pip install kconfiglib(注意pip对应的python)
编译成功,如下图:

编译的固件在:osdrv/pub/ss927v100_emmc_image_glibc中。
注:单独编译未验证。
更多推荐


所有评论(0)