RustEmb_1.环境配置

说明

此系列文章是参考 The Embedded BookDiscovery 以及众多第三方文章杂糅而成😄,仅用于学习和探索Rust在STM32嵌入式领域的使用。

为了方便自己使用,以下工具和方式非官方推荐,但是适合自己。

环境准备

  1. Rust本体
    具体安装方式见官方 https://www.rust-lang.org/tools/install

  2. Rust依赖安装

rustup component add llvm-tools-preview
rustup component add rust-std-thumbv7em-none-eabihf rust-std-thumbv7em-none-eabi rust-std-thumbv7m-none-eabi
cargo install cargo-binutils
cargo install itmdump
  1. 其他辅助软件
  • 串口调试软件 sscom
  • [可选]ST-LINK USB Driver + J-Link硬件
  • CH340驱动 CH340驱动一定要插着设备安装!如果有问题,禁用Win10驱动签名功能
  • STM32下载软件,如FlyMcu
  • arm-none-eabi 套件 添加到Path
  1. 硬件
    我用的 普中F407-定通-T100
    STM32F407ZGT6,1024K Flash, 192K RAM, 32Bit, 168MHz
    自带按键,LED,USB2TTL,EEPROM,LCD接口,SD卡接口,miniUSB,NRF24L01接口,SPI-FLASH模块,时钟
    晶振8M

下载

如果使用Keil可以直接使用J-Link直接下载,使用Rust编译后的程序无法通过Keil下载,所以可以使用OpenOCD+J-Link方式替代。

但是,实际上OpenOCD使用比较麻烦,我们使用传统的方式ISP下载进行。

还有一个问题是,Rust编译出来的实际上是Arm程序,我们需要使用将其中的Hex或者Bin提取出来。
将Rust编译成的ELF文件提取Hex或者bin方法:

  • bin文件 arm-none-eabi-objcopy -O binary stm32app stm32app.bin
  • hex文件 arm-none-eabi-objcopy -O ihex stm32app stm32app.hex

备注:

  • 由于OpenOCD需要和JLink硬件配合使用,这里不适用此种方式下载和调试。
  • 固件下载目前使用USB2TTL的串口下载进行,ISP方式

参考:

  1. arm-none-eabi
  2. FlyMcu
  3. STM32F103 Rust
  4. https://www.cnblogs.com/whik/p/9953156.html
  5. https://www.cnblogs.com/yibanshouxi/p/4133471.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章