选择 Linux 的理由
- Linux 系统能够提供我们非常棒不错的编译速度,而且安装各种依赖也非常方便。
- 在黄山派的 SDK 中,大都使用指令构建代码和编译代码,使用 Linux 的 shell 可以更加方便
- 避免因为路径问题产生的各种编辑错误
准备工作
说明
本教程重点放在如何搭建黄山派的 Linux 开发环境,下面需要准备的工作需要提前完成。
安装 ubuntu 系统
- 安装教程(参考泰山派的):ubuntu 安装教程
SSH 链接 ubuntu 系统
- SSH 链接教程(参考泰山派的):SSH 链接教程
安装 VSCode
- VSCode 安装教程(参考CSDN):VSCode 安装教程
环境参考
- Linux 安装方式:VMware 虚拟机
- 系统版本:Ubuntu22.04
- 镜像源:阿里源
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
2
3
4
5
6
7
8
9
10
11
12
13
14
VSCode 远程连接
安装 Remote - SSH 插件
在 VSCode 中搜索 Remote-SSH 插件并安装
安装完成示例:
安装完成说明,安装完成之后,会在左侧导航栏出现 一个电脑的图标,如下:
配置 SSH
点击SSH
点击 <+> 新建远程
输入远程连接的 IP 地址,点击连接
输入IP地址,在弹出来的对话框中,输出需要连接的 IP 地址,如:
选择配置文件,如下:
在端口号下,添加 Ubuntu 的用户名,如下:
添加完成之后即可看到 ssh
的 IP 地址,如下:
连接后续,剩下的工作,根据提示完成连接即可,连接成功如下:
SiFli-SDK 安装
安装依赖
注意
编译依赖非常重要,这一步决定了是否能成功编译代码,请务必仔细阅读。
- 复制以下指令到终端执行
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
安装成功如下:
拉取 SDK
温馨提示
git 工具克隆下来之后,会自动以仓库名创建文件夹,可以不需要创建新的文件夹. 下方命令会把 sifli-sdk
所需的所有子模块都拉取下来,请耐心等待。
git clone --recursive -b release/v2.4 https://gitee.com/SiFli/sifli-sdk.git
克隆成功示例,如下图:
安装开发工具
温馨提示
除了 SiFli-SDK 本身,还需要为支持 SF32 的项目安装 SiFli-SDK 使用的各种工具,比如编译器、调试器、Python 包等。
添加国内镜像源(可加速安装),运行下方指令:
cd sifli-sdk && export SIFLI_SDK_GITHUB_ASSETS="downloads.sifli.com/github_assets" && export PIP_INDEX_URL="https://mirrors.ustc.edu.cn/pypi/simple"
./install.sh
安装成功示例,如下图:
设置环境变量
温馨提示
设置环境变量的指令是临时路径,每当新开一个终端的时候,必须重新运行一次。
. ./export.sh
设置成功示例,如下图:
编译下载
编译代码
说明
编译例程需要到实际的例程目录下进行,通常需要使用 cd
指令进入例程目录,然后执行编译指令,也可运行下发指令快速验证 SDK 是否可以编译成功:
cd example/get-started/hello_world/rtt/project/ && scons --board=sf32lb52-lchspi-ulp -j8
下方是正常的编译 demo 流程,以 hello world
为例:
- 进入 hello_world 例程目录
cd example/get-started/hello_world/rtt/project/
- 编译指令
scons --board=sf32lb52-lchspi-ulp -j8
编译成功示例,如下图:
下载固件
- 下载指令
ls /dev/ttyUSB*
- 下载指令
build_sf32lb52-lchspi-ulp_hcpu\uart_download.sh
输入端口号
下载程序到开发板,当提示 please input serial port number
,这里就该输入我们刚刚查看端口号,我这里是 /dev/ttyUSB0
,输入 /dev/ttyUSB0
即可:
/dev/ttyUSB0
常见问题
编译失败
- 出现如下编译错误:
- 错误原因说明
因编译环境路径未正常设置导致,主要是手动输入 . ./export.sh
指令的话,使用 table
键补全时,终端会在指令后面自动添加一个空格,导致环境变量设置失败。
敲完指令时,请务必确认指令后面没有空格。
解决方法
回到 SDK 根目录,重新运行环境变量设置指令,快速运行如下:
cd ../../../../../ && . ./export.sh