A collection of crates for Rust development on the Teensy 4. Supports the following boards:
- Teensy 4.0
- Teensy 4.1
- Teensy MicroMod
-
A Rust installation. Install Rust using
rustup
. We support the latest, stable Rust toolchain. -
The
thumbv7em-none-eabihf
Rust target, which may be installed usingrustup
:rustup target add thumbv7em-none-eabihf
-
A capable
objcopy
for transforming Rust binaries into hex files. The documentation and tooling in the project uses the LLVMobjcopy
provided bycargo-binutils
. Installcargo-binutils
if you want to precisely follow this documentation. -
To download programs to your Teensy 4, you'll need either a build of
teensy_loader_cli
, or the Teensy Loader Application. The latter is available with the Teensyduino add-ons.
Use our cargo-generate
template, teensy4-rs-template
, to bootstrap
your own teensy4-rs
project based on these libraries:
cargo install cargo-generate
cargo generate --git https://github.com/mciantyre/teensy4-rs-template --name hello-world
cd hello-world
cargo objcopy --release -- -O ihex hello-world.hex
Download hello-world.hex
to your Teensy 4!
See the Rust documentation for API information. In particular, study the
imxrt-hal
APIs, since the BSP forwards many of the HAL's interfaces:
cargo doc --open
Try the various examples in this project's examples
directory if
you'd like to test your system.
We welcome support! A great way to contribute is to start using the crates to develop Teensy 4 applications. Submit an issue to help us identify bugs, feature requests, or documentation gaps. See CONTRIBUTING.md to learn about the best issue tracker for your request.
If you want to directly contribute to the teensy4-rs
project, read the
development guidance in CONTRIBUTING.md.
- The Teensy 4 is wonderful, and that's thanks to the hard work of PJRC and friends. We can find the Teensy code used in the Arduino plugins here. The code greatly influenced this library.
- The Rust Cortex M team, specifically the
cortex-m-rt
crate.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.