【海思SS626 | 开发环境】编译整个SDK全过程以及问题汇总

news2024/11/19 16:46:55

目录

  • 一、概述
  • 二、解压SDK,打补丁
  • 三、安装交叉编译工具
    • ✨3.1 安装 aarch64-mix410-linux.tgz
    • ✨3.2 安装 cc-riscv32-cfg11-musl-20220523-elf.tar.gz
    • ✨3.3 检查工具链版本,打印版本则表示安装成功
  • 四、安装软件包
    • ✨4.1 安装软件包
    • ✨4.2 安装mtd-utils的依赖库
    • ✨4.3 安装pip和kconfiglib


在这里插入图片描述

一、概述

这篇文章主要记录在 Ubuntu18.04 安装海思SS626整个SDK的全过程,以及编译过程中遇到的问题。

编译环境:
Win10 + VMware17Pro + Ubuntu 18.04 LTS

VMware17Pro的安装可以参考:windows安装VMware最新版本(VMware Workstation 17.0 Pro)详细教程

Ubuntu 18.04 LTS 是前几天刚安装的新系统,只装了几个软件Vim、samba、ssh,这样可以避免之前安装过的软件包在无意中解决了此次编译的问题i。其安装过程记录在:【海思SS626 | 开发环境】VMware17安装Ubuntu 18.04.6

重要说明:
编译所有的海思SDK之前,要留意海思SDK中关于开发环境的几个文档,不要拿到SDK就直接按照readme去编译。SDK文档会需要按照哪些库,这样可以避免编译过程中出现不必要的错误。

编译SDK需要阅读的文档路径:
SS626ReleaseDoc\zh\01.software\board\OSDRV\SS626V100 开发环境用户指南.pdf
SS626ReleaseDoc\zh\01.software\board\OSDRV\Huawei LiteOS 开发指南.pdf

在这里插入图片描述

二、解压SDK,打补丁

2.1 解压 SS626V100R001C02SPC010.rar,在Windows解压也可以;

2.2 解压后,有三个目录:00.hardware、01.software、02.only for reference
在这里插入图片描述

2.3 打补丁,将ot开头的API函数转换成hi开头:

  • SS626V100R001C02SPC010\02.only for reference\software目录下的 ref_patch.shSS626V100_REF_V2.0.1.0.tgz 复制到 SS626V100R001C02SPC010目录,readme.txt 是使用说明;
    在这里插入图片描述
  • SS626V100R001C02SPC010\01.software\board\SS626V100_SDK_V2.0.1.0.tgz 复制到 SS626V100R001C02SPC010,复制后SS626V100R001C02SPC010目录如下:
    在这里插入图片描述
  • 解压 SS626V100_SDK_V2.0.1.0.tgz,并进去执行 sdk.unpack,执行后回到SS626V100R001C02SPC010目录;
  • 解压 SS626V100_REF_V2.0.1.0.tgz ,执行 ref_patch.sh

操作步骤代码如下:

# 1. 复制 ref_patch.sh 和 SS626V100_REF_V2.0.1.0.tgz
$ cp 02.only\ for\ reference/software/ref_patch.sh ./
$ cp 02.only\ for\ reference/software/SS626V100_REF_V2.0.1.0.tgz ./

# 2. 复制 SS626V100_SDK_V2.0.1.0.tgz
$ cp 01.software/board/SS626V100_SDK_V2.0.1.0.tgz ./

# 3.解压 SS626V100_SDK_V2.0.1.0.tgz 并进去执行 sdk.unpack
$ tar zxf SS626V100_SDK_V2.0.1.0.tgz 
$ cd SS626V100_SDK_V2.0.1.0/
$ ./sdk.unpack 
$ cd ..

# 4.解压 SS626V100_REF_V2.0.1.0.tgz ,执行 ref_patch.sh
$ tar zxf SS626V100_REF_V2.0.1.0.tgz 
$ chmod +x ref_patch.sh 
$ ./ref_patch.sh 

完成上面步骤后,SS626V100R001C02SPC010\SS626V100_SDK_V2.0.1.0就是以hi开头的API的SDK了。例程代码在SS626V100R001C02SPC010\SS626V100_SDK_V2.0.1.0\amp\a55_linux\mpp\sample; u-boot、内核源码在SS626V100R001C02SPC010\SS626V100_SDK_V2.0.1.0\open_source
在这里插入图片描述

在这里插入图片描述

三、安装交叉编译工具

只要是SS626的开发主机,无论你是否需要编译SDK,都需要安装交叉编译工具,这节记录SS626的两个交叉编译工具的安装过程:

✨3.1 安装 aarch64-mix410-linux.tgz

tar -zxf aarch64-mix410-linux.tgz
cd aarch64-mix410-linux/
chmod +x aarch64-mix410-linux.install
sudo ./aarch64-mix410-linux.install
source /etc/profile

✨3.2 安装 cc-riscv32-cfg11-musl-20220523-elf.tar.gz

tar -zxf cc-riscv32-cfg11-musl-20220523-elf.tar.gz
cd cc-riscv32-cfg11-musl-20220523-elf/
sudo ./install.sh
cd cc-riscv32-cfg11-musl-20220523-elf/bin
echo "export PATH=$(pwd):\${PATH}" >> $HOME/.profile
source ~/.profile

✨3.3 检查工具链版本,打印版本则表示安装成功

aarch64-mix410-linux-gcc -v
riscv32-cfg11-musl-20220523-elf-gcc -v

在这里插入图片描述

四、安装软件包

本文的操作系统是Ubuntu18.04LTS的,这个是为了与SS626的开发包编译系统保持一致而重新安装的系统,基本没安装过其他软件。下面根据《SS626V100 开发环境用户指南.pdf》进行安装必要的软件包。
在这里插入图片描述


✨4.1 安装软件包

这里的软件包有点多,我也没去试哪些不需要装,反正总共就400多M,建议按照文档全部安装,避免编译过程中遇到问题:
在这里插入图片描述

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 libtool autopoint gettext po4a

✨4.2 安装mtd-utils的依赖库

mtd-utils依赖以下几个库,以ubuntu为例,安装方式请参考下面命令:

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

✨4.3 安装pip和kconfiglib

LiteOS 编译需要安装的工具包括pythonpipkconfiglib,python在Ubuntu18.04系统已经默认安装了 python2.7python3.6,符合编译要求,下面只安装pip和kconfiglib,如果你的系统没有python,则需要到 python3.8 官网根据文档安装。

  • setuptools安装
    pip依赖setuptools,如果setuptools不存在,也需要安装:
    点击 setuptools源代码包下载地址,可以参考下面的命令进行安装:
unzip setuptools-50.3.2.zip
cd setuptools-50.3.2/
python3 setup.py install
  • pip安装
    点击 pip源代码包下载地址,可以参考下面的命令进行安装:
tar zxf pip-20.2.4.tar.gz
cd pip-20.2.4/ 
sudo python3 setup.py install
  • kconfiglib安装
sudo pip install kconfiglib

注意:
setuptools最新版本不支持python 2.7,如果使用python 2.7,请下载setuptools 45.0.0版本以支持python 2.7。
前面都是使用python3去安装的,所以需要将 /usr/bin/python 软链接指向python3.6 避免编译出错,参考下面命令修改:

$ ls /usr/bin/python -l
lrwxrwxrwx 1 root root 9 416  2018 /usr/bin/python -> python2.7
$ cd /usr/bin
$ sudo rm python
$ sudo ln -s python3.6 python
$ ls /usr/bin/python -l
lrwxrwxrwx 1 root root 9 913 20:14 /usr/bin/python -> python3.6

在这里插入图片描述

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1010933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel VBA 变量,数据类型常量

几乎所有计算机程序中都使用变量,VBA 也不例外。 在过程开始时声明变量是一个好习惯。 这不是必需的,但有助于识别内容的性质(文本,​​数据,数字等) 在本教程中,您将学习- 一、VBA变量 变量是…

AI助手-百度免费AI助手工具

AI助手是有百度推出的免费AI助手工具,国内无需魔就可以使用的AI工具,而且无限制,和ChatGPT类似的人工智能聊天机器人差不多,内置了各种功能的快捷入口,直接点开即可使用,而且还可以ai作画。 工具地址&…

Flutter快速入门学习(一)

目录 前言 新建项目 项目入口 Dart的入口(项目的入口) 布局 视图组件 Container(容器) Text(文本) Image(图片) Row(水平布局)和Column&#xff08…

【项目实战】【已开源】USB2.0 HUB 集线器的制作教程(详细步骤以及电路图解释)

写在前面 本文是一篇关于 USB2.0 HUB 集线器的制作教程,包括详细的步骤以及电路图解释。 本文记录了笔者制作 USB2.0 HUB 集线器的心路历程,希望对你有帮助。 本文以笔记形式呈现,通过搜集互联网多方资料写成,非盈利性质&#xf…

windows系统安装php,运行php

一、安装php 官网:PHP For Windows: Binaries and sources Releases 下载最新的PHP解释器 解压好放入 C:\php 目录文件下 二、配置php 配置环境变量:在CMD命令提示符中输入以下命令,将PHP路径添加到系统环境变量中,以便可以在…

正规股票配资网站的三个明显特点分析

随着股票市场的快速发展,越来越多的投资者开始考虑使用股票配资来增加自己的资金流动性和收益率。然而,在选择股票配资网站时,投资者往往难以辨别哪些网站是正规的,哪些网站存在风险。因此,以下将分析正规股票配资网站…

kafkaStream实时流式计算

2 实时流式计算 2.1 概念 一般流式计算会与批量计算相比较。在流式计算模型中,输入是持续的,可以认为在时间上是无界的,也就意味着,永远拿不到全量数据去做计算。同时,计算结果是持续输出的,也即计算结果…

服务器硬件监控解决方案,提升服务器稳定性

前言 在当今数字化时代,服务器的稳定运行对于企业的核心业务至关重要。为了确保服务器的正常运行并及时发现潜在问题,我们公司开发了一款先进的服务器硬件监控解决方案。本文将深入探讨服务器硬件监控的重要性、解决方案的特点和优势,以及支持…

5基于pytorch的多目标粒子群算法,MOPSO,引导种群逼近真实Pareto前沿,算法运行结束后将外部存档中粒子作为获得的Pareto最优解近似。

基于pytorch的多目标粒子群算法,MOPSO,引导种群逼近真实Pareto前沿,算法运行结束后将外部存档中粒子作为获得的Pareto最优解近似。程序已调通,可以直接运行。 5pytorch多目标粒子群算法最优解5pytorch多目标粒子群算法最优解 (xiaohongshu.co…

VMware vCenter 从6.7跨版本升级至7.0U3N

本文尝试使用 vCenter Server Appliance 管理界面 (VAMI) 进行对vCenter Server Appliance7应用进行小版本升级,从6.7.0.47000升级到7.0.3.01600(7.0U3N)。 一、升级前的准备工作 1、检查当前运行环境(当前为6.7.0.47000&#x…

ES6 特性

一、ES6 1.1 ES6 概念 1.1.1 什么是 ES ES 全称 EcmaScript 是脚本语言的规范JavaScript 是 EcmaScript 的一种实现ES 新特性就是指 JavaScript 的新特性 1.1.2 为什么要使用 ES 语法简单,功能丰富框架开发应用前端开发职位要求 1.1.3 为什么要学习 ES6 ES6 …

docker学习1

Docker jar包环境镜像,镜像存在docker仓库中,随用随取,无需现配环境 docker通过隔离机制,各个镜像之间互不干扰 docker比vm轻量化,每次只需运行镜像即可,镜像占内存小启动快,虚拟机启动慢&…

代码随想录|198.打家劫舍,213.打家劫舍II, 337.打家劫舍 III

198.打家劫舍 思路: 题目要求不偷相邻两家,两种偷法,偷法1是偷前k-1间房子,最后一间不偷;偷法2是偷前k-2间房子和最后一间。 代码实现1 class Solution {public int rob(int[] nums) {//偷法1:偷前k-1间…

ts工具类

这里有具体的使用示例: 15 种TypeScript最常用的实用程序类型,赶快收藏起来吧! - 知乎我们在使用 TypeScript 的过程中,我们是面向类型编程的,为了满足不同的工作场景,我们需要对已知类型进行改造。 为了…

Ubuntu下Nginx配置ModSecurity详细思路及过程

下面是一个简介: Ubuntu是一个linux操作系统,Nginx是一个web服务器软件,ModSecurity是一款开源的web应用防火墙(江湖人称“WAF”)。 如果上面的概念没有一定的了解,下面的内容其实也能看。就是不好操作。…

(典题)线段计数 CF690 div3 F

Problem - F - Codeforces 题意: 思路: 这题没什么性质可言,可以说就是纯纯的套路题 既然存在一条线段和其他所有线段相交,不知道是哪条线段,考虑枚举这条线段,然后计数没有交点的线段个数,取…

输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)

效果视频:输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)_哔哩哔哩_bilibili 1.数据 仿真平台 仿真模型分别获取单相接地故障、两相接地故障、两相间短路故障、三相接地故障、…

通过多个url下载合并zip包

在网上随便找两个网络URL入参 {"fileUrls": ["url1","url2","url3""zipName":"xxxx" }Overridepublic void getUrlsToZip(UrlDownLoadFileParam urlDownLoadFileParam,HttpServletResponse response ) throws Ex…

排序算法-归并排序

属性 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序&#…

k8s集群中部署服务之部署描述文件准备

微服务部署描述文件Deploy.yaml 一、各微服务创建部署描述文件 1.1 mall-auth-server --- apiVersion: apps/v1 kind: Deployment metadata:name: mall-auth-servernamespace: sangomalllabels:app: mall-auth-server spec:replicas: 1selector:matchLabels:app: mall-auth-s…