From d2772291bfcbec4eb9f0fa4f0a4f5e012ec038a0 Mon Sep 17 00:00:00 2001 From: finga Date: Thu, 3 Mar 2022 03:18:52 +0100 Subject: [PATCH] fw-rust: Add a makefile for cargo-make It has to be decided what kind of tooling should be used, for now cargo-make is used. This will probably be changed to use the tools provided by [probe.rs](https://probe.rs). --- firmware/rust/Makefile.toml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 firmware/rust/Makefile.toml diff --git a/firmware/rust/Makefile.toml b/firmware/rust/Makefile.toml new file mode 100644 index 0000000..166b05a --- /dev/null +++ b/firmware/rust/Makefile.toml @@ -0,0 +1,29 @@ +[env] +MCU = "atmega328p" +PROGRAMMER = "usbasp" +EXTENDED_FUSE = "0xFF" +HIGH_FUSE = "0xD6" +LOW_FUSE = "0xE2" + +[tasks.size] +description = "Print usage of memory segments" +dependencies = ["build"] +command = "avr-size" +args = ["--format=avr", "--mcu=${MCU}", "target/avr-atmega328p/debug/clock-generator.elf"] + +[tasks.copy_flash] +description = "Copy the flash" +dependencies = ["build"] +command = "avr-objcopy" +args = ["-O", "ihex", "-j", ".text", "-j", ".data", "target/avr-atmega328p/debug/clock-generator.elf", "target/avr-atmega328p/debug/clock-generator.hex"] + +[tasks.flash] +description = "Flash the firmware" +dependencies = ["copy_flash", "size"] +command = "avrdude" +args = ["-p", "${MCU}", "-c", "${PROGRAMMER}", "-U", "flash:w:target/avr-atmega328p/debug/clock-generator.hex:a"] + +[tasks.fuses] +description = "Burn the fuses" +command = "avrdude" +args = ["-p", "${MCU}", "-c", "${PROGRAMMER}", "-U", "efuse:w:${EXTENDED_FUSE}:m", "-U", "hfuse:w:${HIGH_FUSE}:m", "-U", "lfuse:w:${LOW_FUSE}:m"]