设置Rust语言开发环境 [Rust系列#2]

Home 论坛 RISC-V 创意竞赛专区 设置Rust语言开发环境 [Rust系列#2]

标签: 

该话题包含 1 个回复,有 1 个参与人,并且由 shamiao shamiao1 周, 1 天 前 最后一次更新。

正在查看 2 帖子:1-2 (共 2 个帖子)
  • 作者
    帖子
  • #1966
    shamiao
    shamiao
    参与者

    为 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

    请参考本论坛以下两个帖子的指导:

    注意这里需要飞线连接 J17 与 J8/J9/J10/J12 的若干引脚。如果想让这个连接工作方便一点,可以参考:

    使用外部的 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程序”。

    #1982
    shamiao
    shamiao
    参与者

    勘误:

    Toolchain_Windows.zip sha256: d7560e1fa9bdfa2aadf64caa9f9eacf5f6157761af07f285663f026b4c8de408

    这个软件工具包应该从本站 OpenISA 中国 (openisa.cn) 的“资料下载”板块下载,而不是从 OpenISA 国际 (openisa.org) 下载。

    国际那边下载的文件,校验码对不上。

正在查看 2 帖子:1-2 (共 2 个帖子)

抱歉,回复话题必需登录。