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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章