运行闪烁小灯示例 [Rust系列#3]

Home 论坛 RISC-V 创意竞赛专区 运行闪烁小灯示例 [Rust系列#3]

标签: 

正在查看 1 帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #1967
    shamiaoshamiao
    参与者

    在 VEGA-Lite 织女星开发板的 RV32M1 微控制器上,烧录并运行一个 Rust 语言编写的闪烁小灯程序。

     

    I. 使用代码

    直接编译并运行的代码是 rv32m1-rust/rv32m1_ri5cy-example 项目。

    间接调用了 rv32m1-rust/rv32m1_ri5cy-pac 函数库(GitHub 页面, crates.io 页面)。这是一个适用于 RV32M1 微控制器的 RI5CY 核的“总线资源库(PAC)”。

    以上均为博主原创编写的代码,请转载时注意开源许可协议,保留署名。

    II. 预备

    1. 按照《Rust+RV32M1:开发环境设置》准备开发环境。
    2. 按照《织女星开发板快速入门指南》的指引更改引导配置,要求 RV32M1 从 RI5CY 核启动。(请参见 OpenISA 中国通过 open-isa-cn/vega-lite 项目提供的文档)
    3. 启动 OpenOCD 连接到开发板,并全程保持后台运行。

    III. 操作步骤

    编译

    请在 rv32m1-rust/rv32m1_ri5cy-pac 仓库的 Release 页面,下载 v0.1.2 版本的代码。(也可以直接 git 拉取对应名称的 tag)

    与一般 Rust 代码库一样,使用 cargo build 命令编译调试版本,或 cargo build --release 编译正式版本。

    产出物会放置在 target/riscv32imc-unknown-none-elf/debug/rv32m1_ri5cy-example ,是一个 ELF 文件。

    运行

    请首先确保(1)OpenOCD 已启动并正常连接到了开发板,(2)开发板已经配置为从 RI5CY (RISC-V大核)启动。

    使用 GDB 启动调试,并连接到 OpenOCD 所提供的远程目标:

    C:\Vega\Toolchain\riscv32-unknown-elf-gcc\bin\riscv32-unknown-elf-gdb.exe target\riscv32imc-unknown-none-elf\debug\rv32m1_ri5cy-example --eval-command="target remote localhost:3333"
    使用以下命令烧录并运行程序:
    `load
    continue`
    
    应当产生的运行结果
    此时也可以使用所有的 GDB 调试命令。
    

     

    原创帖子,最早发表于我个人博客的《Rust+RV32M1:运行闪烁小灯示例》,摘编转贴到本论坛。

    本帖子属于参赛项目“使用Rust语言开发运行于Vega-Lite开发板的RISC-V程序”。

正在查看 1 帖子:1-1 (共 1 个帖子)
  • 抱歉,回复话题必需登录。