Using rust for embedded development is much more easier than setting up a C/C++ environment now. You will be able to program and flash your firmware to an Arduino in just a few minutes.
First setting up an environment may take a little while and then it is as swift as cloning a repository. Let's jump to the initial environment setup.
- Run this to install AVR compiler and library header files
sudo apt install avr-libc gcc-avr pkg-config avrdude
- We need cargo-generate to get project template from git
cargo install cargo-generate
- Also to run the program once you compiled it you can use the ravedude cargo package
cargo install ravedude
That's all. The configuration part is over.
Now whenever you want to start a new project you can just run
cargo generate --git https://github.com/Rahix/avr-hal-template.git
You will be prompted to enter a name for your project, and the board that you have.(Arduino Uno, Mega etc.,)
will build and flash the program to your embedded system but before running it you need to tell the ravedude which of your serial port is connected to arduino.
Replace ttyUSB0 with the name of the port your arduino is connected to.
Once the default project from the template is flashed you will be greeted with the blinking led in your arduino. You can edit the
src/main.rs file to control the Universe... Nope! Just your Arduino.😄
That's how easy it is to start programming embedded systems in Rust.
P.S: I am new to blogging so if you find anything odd in this blog let me know.