10个版本 (6个破坏性版本)
使用旧的Rust 2015
0.11.2 | 2018年7月26日 |
---|---|
0.10.1 | 2018年3月24日 |
0.9.0 | 2018年1月18日 |
0.8.1 | 2018年1月13日 |
0.5.8 | 2017年1月26日 |
1243 在 硬件支持 中排名
87 每月下载量
33KB
327 行
Stellaris Launchpad上的Rust
为Stellaris Launchpad(LM4F120开发板)编写的Rust(https://rust-lang.net.cn)裸机示例程序。也可能在非常相似的Tiva-C TM4C123 Launchpad上运行。
想法是将有用的功能移动到单独的crate中。我还在用tm4c123x-hal替换lm4f120 crate的过程中;TM4C123系列在几乎完全兼容的情况下替换了LM4F120。新的crate也以不同的方式做事,特别是在外围设备作为单例(这使您的代码更安全)方面。在某个时候,我将切换此crate以使用tm4c123x-hal。
要求
- rustc nightly
- arm-none-eabi-gcc
- arm-none-eabi-ar
- arm-none-eabi-objcopy
设置环境
git clone https://github.com/thejpster/launchpad-rs.git
cd ./launchpad-rs
rustup install nightly
rustup component add rust-src
rustup target add thumbv7em-none-eabihf
或者简单
git clone https://github.com/thejpster/launchpad-rs.git
cd ./launchpad-rs
make prerequisites
编译和上传
cargo build --example launchpad_blink
arm-none-eabi-objcopy -O binary target/thumbv7em-none-eabihf/debug/examples/launchpad_blink target/thumbv7em-none-eabihf/debug/examples/launchpad_blink.bin
sudo lm4flash target/thumbv7em-none-eabihf/debug/examples/launchpad_blink.bin
您还可以进行调试
~/launchpad-rs $ sudo openocd -f /usr/share/openocd/scripts/board/ek-lm4f120xl.cfg
~/launchpad-rs $ arm-none-eabi-gdb ./target/thumbv7em-none-eabihf/debug/examples/launchpad_blink
(gdb) target remote localhost:3333
(gdb) load
Loading section .text, size 0x1e98 lma 0x0
Loading section .ARM.exidx, size 0x8 lma 0x1e98
Loading section .data, size 0xc lma 0x1ea0
Start address 0x0, load size 7852
Transfer rate: 7 KB/sec, 2617 bytes/write.
(gdb) monitor reset halt
(gdb) break main
(gdb) continue
工作正常
- UART工作,使用板载UART-to-USB桥接器(115200 bps,8N1)
- PLL运行在66.7MHz
- SysTick在4MHz下工作,提供了一个当前用于忙等待的计时器
- GPIO工作 - 您可以控制板载RGB LED
- 定时器工作 - 您可以使用PWM驱动GPIO(包括LED)
- panic处理器工作 - 如果发生panic或硬错误,它将快速闪烁红色LED
依赖项
~4.5MB
~117K SLoC