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"]