From 949130a5377b9ec5426b80699e56f3e876b6be41 Mon Sep 17 00:00:00 2001 From: Rahix Date: Mon, 25 Nov 2024 17:55:42 +0100 Subject: [PATCH] ravedude: Suggest stable toolchain for installation Suggest users to use the `stable` toolchain when installing ravedude via cargo. Also, suggest using the `--locked` flag to ensure deterministic dependencies. --- ravedude/README.md | 54 +++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/ravedude/README.md b/ravedude/README.md index 6471e79d54..4136e21088 100644 --- a/ravedude/README.md +++ b/ravedude/README.md @@ -4,39 +4,50 @@ ravedude [![crates.io page](https://img.shields.io/crates/v/ravedude.svg)](https super smooth. It's a wrapper around `avrdude` and provides easy access to the target's serial console, similar to the Arduino IDE. + `ravedude` is meant to be used as a cargo "runner". This allows you to just use `cargo run` for building, deploying, and running your AVR code! + if you get an `Error: no matching serial port found, use -P or set RAVEDUDE_PORT in your environment` , run `cargo run` with set environment variable or adjust `runner = "ravedude {X} -cb {X} -P /dev/ttyUSB{X}"` inside `.cargo/config.toml` (replace {X} with your respective values) + ## Installation On Linux systems, you'll need pkg-config and libudev development files installed: + - *Archlinux*: `pacman -S systemd pkgconf` - *Ubuntu/Debian*: `apt install libudev-dev pkg-config` - *Fedora*: `dnf install systemd-devel pkgconf-pkg-config` + Next, install the latest version from crates.io with the following command: + ```bash -cargo install ravedude +cargo +stable install --locked ravedude ``` + Alternatively, if you're using Nix (the package manager) + Flakes, you can install `ravedude` by adding `inputs.ravedude.url = "github:Rahix/avr-hal?dir=ravedude";` and use the package `ravedude.packages."${system}".default`. + Now you need to add *ravedude* to your project. For example in a project for Arduino Uno, place the following into your `.cargo/config.toml` (**not in `Cargo.toml`**): + ```toml [target.'cfg(target_arch = "avr")'] runner = "ravedude uno --open-console --baudrate 57600" ``` + And that's all, now just call `cargo run` and watch it do its magic: +
avr-hal/examples/arduino-uno on ravedude via v1.51.0-nightly 
  cargo run --bin uno-i2cdetect
    Compiling arduino-uno-examples v0.0.0 (avr-hal/examples/arduino-uno)
@@ -45,62 +56,41 @@ And that's all, now just call `cargo run` and watch it do its magic:
        Board Arduino Uno
  Programming avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf => /dev/ttyACM0
 
+
 avrdude: AVR device initialized and ready to accept instructions
 
+
 Reading | ################################################## | 100% 0.00s
 
+
 avrdude: Device signature = 0x1e950f (probably m328p)
 avrdude: erasing chip
 avrdude: reading input file "avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf"
 avrdude: writing flash (1654 bytes):
 
+
 Writing | ################################################## | 100% 0.27s
 
+
 avrdude: 1654 bytes of flash written
 avrdude: verifying flash memory against avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf:
 avrdude: load data flash data from input file avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf:
 avrdude: input file avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf contains 1654 bytes
 avrdude: reading on-chip flash data:
 
+
 Reading | ################################################## | 100% 0.21s
 
+
 avrdude: verifying ...
 avrdude: 1654 bytes of flash verified
 
+
 avrdude: safemode: Fuses OK (E:00, H:00, L:00)
 
+
 avrdude done.  Thank you.
 
+
   Programmed avr-hal/target/avr-atmega328p/debug/uno-i2cdetect.elf
      Console /dev/ttyACM0 at 57600 baud
-
-Write direction test:
--    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
-00:       -- -- -- -- -- -- -- -- -- -- -- -- -- --
-10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-30: -- -- -- -- -- -- -- -- 38 39 -- -- -- -- -- --
-40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
-50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-70: -- -- -- -- -- -- -- --
-
-Read direction test:
--    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
-00:       -- -- -- -- -- -- -- -- -- -- -- -- -- --
-10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-30: -- -- -- -- -- -- -- -- 38 39 -- -- -- -- -- --
-40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
-50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-70: -- -- -- -- -- -- -- --
-
- -## License -*ravedude* is licensed under either of - - * Apache License, Version 2.0 ([LICENSE-APACHE](../LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) - * MIT license ([LICENSE-MIT](../LICENSE-MIT) or http://opensource.org/licenses/MIT) - -at your option.