Home › 论坛 › RISC-V 创意竞赛专区 › 设置Rust语言开发环境 [Rust系列#2]
标签: Rust
-
作者帖子
-
十一月 6, 2019 - 3:57 下午 #1966shamiao参与者
为 VEGA-Lite 织女星 或 VEGAboard 开发板准备 Rust 语言开发环境。
本文使用 Windows 10 (64位) 1903 版本,多数过程也可以在 macOS 和 Linux 环境下套用。
I. 安装工具链
准备
需要 OpenISA(国际) 站点的 下载页面 提供的以下软件包:
Toolchain_Windows.zip sha256: d7560e1fa9bdfa2aadf64caa9f9eacf5f6157761af07f285663f026b4c8de408
不需要 ARM 或 RISC-V 的 SDK 。
安装
工具链包含两个压缩包,按以下结构解压到
C:\Vega\Toolchain
(或任意)目录:C:\Vega └─Toolchain ├─openocd │ ├─bin │ └─drivers └─riscv32-unknown-elf-gcc ├─bin ├─include ├─lib ├─libexec ├─riscv32-unknown-elf └─share
II. 准备硬件调试器
必须使用一种硬件调试器开发 RV32M1 的 RISC-V 核心,可以选择:
- 外部 J-Link 调试器(VEGA-Lite 织女星和 VEGAboard 均可)
- 板载 FreeLink 调试器(仅适用于 VEGA-Lite 织女星)
使用 VEGA-Lite 织女星的板载 FreeLink
请参考本论坛以下两个帖子的指导:
- 《怎样才能用板载调试器来调试织女星开发板的RISC-V核》(官方资料)
- 《织女星开发板调试器升级为Jlink固件》(官方资料)
注意这里需要飞线连接 J17 与 J8/J9/J10/J12 的若干引脚。如果想让这个连接工作方便一点,可以参考:
- 《发布飞线转接板配件(板载FreeLink调试RISC-V核心用)》(我发布的帖子)
使用外部的 J-Link 调试器
需要使用 J-Link V9 或以上版本的硬件。只需要执行《织女星开发板调试器升级为Jlink固件》 中“升级Jlink驱动”一节,替换为 WinUSB 驱动即可。
注意可能需要转接板来连接 J-Link 和开发板的调试接口。
J-Link V10 或以上版本虽然通过官方工具链支持 RISC-V 架构调试,但似乎尚未支持 RV32M1 微控制器(截至文章编写时)。所以目前必须使用 WinUSB 驱动配合 OpenOCD 开源工具链。也正因为如此,我们不必安装 J-Link 的官方驱动程序。
III. 安装 Rust 语言环境
安装 Rust 工具链
需要按照 Rust 官方推荐的方案,使用 rustup 进行安装。请参见 Rust 官网《安装》页面的指导。
配置交叉编译
Rust 工具链是高度可配置的,增加一个交叉编译目标不需要额外安装一整套工具链(像 GCC 一样)。使用以下命令为 Rust 工具链添加适用于 RV32M1 的交叉编译目标:
rustup target add riscv32imc-unknown-none-elf
IV. 检查
开发板连接
运行以下命令:
C:\Vega\Toolchain\openocd\bin\openocd.exe -f C:\Vega\rv32m1_sdk_riscv\boards\rv32m1_vega\rv32m1_ri5cy.cfg
OpenOCD 给出以下输出后保持运行,代表调试器与开发板的连接良好:
Info : Listening on port 3333 for gdb connections Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections
Rust工具链
运行以下命令:
rustup show
会得到类似如下的输出:
Default host: x86_64-pc-windows-msvc rustup home: C:\Users\alice\.rustup installed targets for active toolchain -------------------------------------- riscv32imc-unknown-none-elf x86_64-pc-windows-msvc active toolchain ---------------- stable-x86_64-pc-windows-msvc (default) rustc 1.38.0 (625451e37 2019-09-23)
请检查
installed targets
中确实包含riscv32imc-unknown-none-elf
目标。注:Rust 每 6 周固定更新一个版本,但新版的向下兼容性一直高度完善。推荐简单的使用最新版本,无需和本系列文章编写时采用的版本一致。
原创帖子,最早发表于我个人博客的《Rust+RV32M1:开发环境设置》,摘编转贴到本论坛。
本帖子属于参赛项目“使用Rust语言开发运行于Vega-Lite开发板的RISC-V程序”。
十一月 13, 2019 - 9:58 下午 #1982shamiao参与者勘误:
Toolchain_Windows.zip sha256: d7560e1fa9bdfa2aadf64caa9f9eacf5f6157761af07f285663f026b4c8de408
这个软件工具包应该从本站 OpenISA 中国 (openisa.cn) 的“资料下载”板块下载,而不是从 OpenISA 国际 (openisa.org) 下载。
国际那边下载的文件,校验码对不上。
-
作者帖子
- 抱歉,回复话题必需登录。