Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

搭建环境(应用开发)

本课带你装好开发 WS63 应用所需的全部工具。注意:你不需要克隆monorepo—— 所有库依赖都来自 crates.io,工程将在下一课用 cargo generate 生成。

本课只求“把工具装上“。每个工具的深入说明与故障排查见 安装 hisi-riscv 工具链

第 1 步:安装 hisi-riscv 工具链

WS63 应用核是 riscv32imfc-unknown-none-elf(硬件单精度浮点、无原子扩展)。 这个目标被内建进了一个自定义的 hisi-riscv 工具链——它不是 rustup 频道,需要手动下载并链接。

下载与你主机匹配的压缩包(这里以 x86_64 Linux 为例),解压,然后链接:

HOST=x86_64-unknown-linux-gnu
curl -LO https://github.com/hispark-rs/hisi-riscv-rust-toolchain/releases/download/v1.96.0-2/hisi-riscv-rust-1.96.0-$HOST.tar.gz
tar xzf hisi-riscv-rust-1.96.0-$HOST.tar.gz
rustup toolchain link hisi-riscv "$PWD/stage2"

其它主机把 HOST 换成对应三元组即可:aarch64-unknown-linux-gnuaarch64-apple-darwinx86_64-pc-windows-msvc

确认链接成功:

rustup toolchain list | grep hisi-riscv

你应当看到:

hisi-riscv

第 2 步:安装 cargo-generate 与 just

下一课用 cargo generate 从模板生成工程;生成出来的工程用 just 跑各种命令:

cargo install cargo-generate just

第 3 步:安装打包工具 hisi-fwpkg(烧真机用)

烧到真板时,flashboot 期望一个带 0x300 启动头的应用镜像,hisi-fwpkg 负责打包:

cargo install --git https://github.com/hispark-rs/hisi-fwpkg

也可以克隆 github.com/hispark-rs/hisi-fwpkg 自行构建。确认就位:hisi-fwpkg --help

第 4 步:安装打过补丁的 probe-rs 分支(烧真机用)

上游 probe-rs 不认识 WS63,必须用打过补丁的分支,并配上它自带的 HiSilicon_WS63.yaml 芯片描述文件:

cargo install --git https://github.com/hispark-rs/probe-rs \
    --branch add-hisilicon-ws63-bs21 probe-rs-tools

确认就位:probe-rs --version。深入说明见 用 probe-rs 烧录到真机

只想在 QEMU 里跑、暂时不烧真机,可以先跳过第 3、4 步。

第 5 步:安装 QEMU(可选,just run 用)

想用 just run 在模拟器里跑,需要 hisi-riscv-qemu—— 一个带 -M ws63 机器模型的 QEMU 分支。克隆并构建,把它的 qemu-system-riscv32 放进 PATH

git clone https://github.com/hispark-rs/hisi-riscv-qemu && cd hisi-riscv-qemu
./scripts/build.sh

确认 ws63 机器可用:

qemu-system-riscv32 -M help | grep ws63

第 6 步:验证工具链

hisi-riscv 工具链内建了 WS63 目标,确认它在目标列表里:

rustc +hisi-riscv --print target-list | grep riscv32imfc

你应当看到:

riscv32imfc-unknown-none-elf

看到这一行就说明工具链装好了。下一课生成的工程里有 rust-toolchain.toml, 会自动选用 hisi-riscv,所以在工程目录里直接敲 cargo 即可,无需 +hisi-riscv

工具齐了!下一课我们生成你的第一个工程 —— 从模板创建你的第一个工程