macOS 或 Linux 安装流程

安装准备

为了安装SiFli-SDK,需要根据操作系统安装一些软件包。可以参考以下安装指南,安装 Linux 和 macOS 的系统上所有需要的软件包。

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
sudo yum -y update && sudo yum install git wget flex bison gperf python3 python3-setuptools cmake ninja-build ccache dfu-util libusbx
sudo pacman -S --needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb python-pip

SiFli-SDK 将使用 macOS 上默认安装的 Python 版本。

  • 安装 CMake 和 Ninja 编译工具:

    • Homebrew 用户:

      ```bash
      brew install cmake ninja
      ```
      
    • MacPort 用户

      ```bash
      sudo port install cmake ninja
      ```
      
    • 都不是 若以上均不适用,请访问 CMake 和 Ninja 主页,查询有关 macOS 平台的下载安装问题。

备注

如在上述任何步骤中遇到以下错误:

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

则必须安装 XCode 命令行工具,可运行 xcode-select --install 命令进行安装。

获取 SiFli-SDK

在围绕 SF32 构建应用程序之前,请先获取 SiFli 提供的软件库文件 SiFli-SDK 仓库

获取 SiFli-SDK 的本地副本:打开终端,切换到要保存 SiFli-SDK 的工作目录,使用 git clone 命令克隆远程仓库。一般来说,我们建议使用release分支上的代码以获取最新的稳定版本。

警告

由于SiFli-SDK中包含子模块,不能通过下载zip包获取完整的代码。

打开 PowerShell 终端,运行以下命令:

mkdir -p C:\OpenSiFli
cd C:\OpenSiFli
git clone --recursive -b release/v2.4 https://github.com/OpenSiFli/SiFli-SDK

备注

上面的SDK路径仅做示例,用户可以根据自己的需要选择路径。

如果在国内访问 GitHub 较慢,可以使用 gitee 镜像来克隆 SiFli-SDK。请使用以下命令:

git clone --recursive -b release/v2.4 https://gitee.com/SiFli/sifli-sdk

需要注意,gitee的SiFli-SDK仓库的路径是全小写的,在后续出现SiFli-SDK时需要注意大小写。

备注

如果想要切换到其他分支(例如开发分支),可以使用 checkout 命令,例如:

git checkout main

或者

git checkout release/v2.3

备注

需要注意的是,SiFli-SDK中存在一些子模块,因此需要使用 --recursive 参数来克隆所有子模块。如果你在克隆时忘记了这个参数,可以在克隆后运行以下命令来初始化子模块:

git submodule update --init --recursive

安装工具

除了 SiFli-SDK 本身,还需要为支持 SF32 的项目安装 SiFli-SDK 使用的各种工具,比如编译器、调试器、Python 包等。

cd ~/OpenSiFli/SiFli-SDK
./install.sh

对于国内用户来说,可以使用如下命令来添加国内镜像源:

cd ~/OpenSiFli/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

自定义工具安装路径(可选)

本步骤中介绍的脚本将 SiFli-SDK 所需的编译工具默认安装在用户的根目录中,即 *inx 系统中的 $HOME/.sifli 目录,或者是windows下的C:\Users\<name>\.sifli。我们可以选择将工具安装到其他目录中,但请在运行安装脚本前,导出环境变量 SIFLI_SDK_TOOLS_PATH。注意,请确保用户账号已经具备了读写该路径的权限。

export SIFLI_SDK_TOOLS_PATH="$HOME/required_sdk_tools_path"
./install.sh

. ./export.sh

如果修改了 SIFLI_SDK_TOOLS_PATH 变量,请在运行任意 SiFli-SDK 工具或脚本前,将该变量导出到环境变量中。

备注

如未导出环境变量,大多数 shell 将不支持在变量赋值中使用 SIFLI_SDK_TOOLS_PATH,例如 SIFLI_SDK_TOOLS_PATH="$HOME/required_sdk_tools_path" ./install.sh。因为即便在源脚本中导出或修改了该变量,当前的执行环境也不受变量赋值影响。

设置环境变量

通过以上步骤,SDK和相关工具就安装好了,但是他们的路径并不在环境变量里,没办法在任意目录使用。因此,必须设置一些环境变量。这可以通过 SiFli-SDK 提供的另一个脚本进行设置。

请在需要使用编译或下载命令的终端窗口运行以下命令:

. export.sh

备注

如果按照上述说明设置过自定义工具安装路径,那么在运行 export.sh 脚本之前必须设置SIFLI_SDK_TOOLS_PATH 变量

cd C:\OpenSiFli\SiFli-SDK
export SIFLI_SDK_TOOLS_PATH="$HOME/required_sdk_tools_path"
. export.sh

备注

目前的脚本可能有一些偶现的bug,如果在编译的时候提示找不到arm-none-eabi-gcc等命令,可以尝试运行两次. export.sh解决。

如果需要经常运行 SiFli-SDK,可以为执行 export.sh 创建一个别名,具体步骤如下:

  1. 复制并粘贴以下命令到 shell 配置文件中(.profile、.bashrc、.zprofile 等)

alias sf32sdk='. $HOME/OpenSiFli/SiFli-SDK/export.sh'
  1. 通过重启终端窗口或运行 source [path to profile],如 source ~/.bashrc 来刷新配置文件

现在可以在任何终端窗口中运行 sf32sdk 来设置或刷新 SiFli-SDK 环境。

不建议直接将 export.sh 添加到 shell 的配置文件。这样做会导致在每个终端会话中都激活 SDK 虚拟环境(包括无需使用 SiFli-SDK 的会话)。这违背了使用虚拟环境的目的,还可能影响其他软件的使用。