Compare commits

..

2 commits

Author SHA1 Message Date
3f19ad6ee9 make: Set up release profile and update the readme
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Due to limiting the codegen units to 1 the size of the program memory
can be reduced roughly by 10% and the data memory by a bit more than
20%.
2022-04-08 01:03:16 +02:00
882e79f9b8 fw-rust: Update build dependencies
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-04-08 00:24:44 +02:00
3 changed files with 70 additions and 9 deletions

View file

@ -79,5 +79,6 @@ regulator is 3.3V.
### The Rust Firmware ### The Rust Firmware
To flash the firmware, connect the ICSP pins of the board to the To flash the firmware, connect the ICSP pins of the board to the
programmer and inside the `firmware/rust/` directory run `cargo make programmer and inside the `firmware/rust/` directory run `cargo make
all`. This burns the fuses, writes the default configuration values to --profile release all`. This compiles the firmware with the release
profile, burns the fuses, writes the default configuration values to
the EEPROM and flashes the firmware. the EEPROM and flashes the firmware.

View file

@ -112,9 +112,9 @@ checksum = "de96540e0ebde571dc55c73d60ef407c653844e6f9a1e2fdbd40c07b9252d812"
[[package]] [[package]]
name = "paste" name = "paste"
version = "1.0.6" version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc"
[[package]] [[package]]
name = "proc-macro-hack" name = "proc-macro-hack"
@ -124,18 +124,18 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.36" version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1"
dependencies = [ dependencies = [
"unicode-xid", "unicode-xid",
] ]
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.15" version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
@ -176,9 +176,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.86" version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",

View file

@ -6,35 +6,95 @@ HIGH_FUSE = "0xD6"
LOW_FUSE = "0xE2" LOW_FUSE = "0xE2"
[tasks.size] [tasks.size]
run_task = [
{ name = "size-development", condition = { profiles = [ "development" ] } },
{ name = "size-release", condition = { profiles = [ "release" ] } },
]
[tasks.size-development]
description = "Print usage of memory segments" description = "Print usage of memory segments"
dependencies = ["build"] dependencies = ["build"]
command = "avr-size" command = "avr-size"
args = ["--format=avr", "--mcu=${MCU}", "target/avr-atmega328p/debug/clock-generator.elf"] args = ["--format=avr", "--mcu=${MCU}", "target/avr-atmega328p/debug/clock-generator.elf"]
[tasks.size-release]
description = "Print usage of memory segments"
dependencies = ["build"]
command = "avr-size"
args = ["--format=avr", "--mcu=${MCU}", "target/avr-atmega328p/release/clock-generator.elf"]
[tasks.copy_flash] [tasks.copy_flash]
run_task = [
{ name = "copy_flash-development", condition = { profiles = [ "development" ] } },
{ name = "copy_flash-release", condition = { profiles = [ "release" ] } },
]
[tasks.copy_flash-development]
description = "Extract the flash" description = "Extract the flash"
dependencies = ["build"] dependencies = ["build"]
command = "avr-objcopy" command = "avr-objcopy"
args = ["-O", "ihex", "-j", ".text", "-j", ".data", "target/avr-atmega328p/debug/clock-generator.elf", "target/avr-atmega328p/debug/clock-generator.hex"] args = ["-O", "ihex", "-j", ".text", "-j", ".data", "target/avr-atmega328p/debug/clock-generator.elf", "target/avr-atmega328p/debug/clock-generator.hex"]
[tasks.copy_flash-release]
description = "Extract the flash"
dependencies = ["build"]
command = "avr-objcopy"
args = ["-O", "ihex", "-j", ".text", "-j", ".data", "target/avr-atmega328p/release/clock-generator.elf", "target/avr-atmega328p/release/clock-generator.hex"]
[tasks.flash] [tasks.flash]
run_task = [
{ name = "flash-development", condition = { profiles = [ "development" ] } },
{ name = "flash-release", condition = { profiles = [ "release" ] } },
]
[tasks.flash-development]
description = "Flash the firmware" description = "Flash the firmware"
dependencies = ["copy_flash", "size"] dependencies = ["copy_flash", "size"]
command = "avrdude" command = "avrdude"
args = ["-p", "${MCU}", "-c", "${PROGRAMMER}", "-U", "flash:w:target/avr-atmega328p/debug/clock-generator.hex:a"] args = ["-p", "${MCU}", "-c", "${PROGRAMMER}", "-U", "flash:w:target/avr-atmega328p/debug/clock-generator.hex:a"]
[tasks.flash-release]
description = "Flash the firmware"
dependencies = ["copy_flash", "size-release"]
command = "avrdude"
args = ["-p", "${MCU}", "-c", "${PROGRAMMER}", "-U", "flash:w:target/avr-atmega328p/release/clock-generator.hex:a"]
[tasks.copy_eeprom] [tasks.copy_eeprom]
run_task = [
{ name = "copy_eeprom-development", condition = { profiles = [ "development" ] } },
{ name = "copy_eeprom-release", condition = { profiles = [ "release" ] } },
]
[tasks.copy_eeprom-development]
description = "Extract the EEPROM" description = "Extract the EEPROM"
dependencies = ["build"] dependencies = ["build"]
command = "avr-objcopy" command = "avr-objcopy"
args = ["--change-section-lma", ".eeprom=0", "-O", "ihex", "-j", ".eeprom", "target/avr-atmega328p/debug/clock-generator.elf", "target/avr-atmega328p/debug/clock-generator.eep"] args = ["--change-section-lma", ".eeprom=0", "-O", "ihex", "-j", ".eeprom", "target/avr-atmega328p/debug/clock-generator.elf", "target/avr-atmega328p/debug/clock-generator.eep"]
[tasks.copy_eeprom-release]
description = "Extract the EEPROM"
dependencies = ["build"]
command = "avr-objcopy"
args = ["--change-section-lma", ".eeprom=0", "-O", "ihex", "-j", ".eeprom", "target/avr-atmega328p/release/clock-generator.elf", "target/avr-atmega328p/release/clock-generator.eep"]
[tasks.eeprom] [tasks.eeprom]
run_task = [
{ name = "eeprom-development", condition = { profiles = [ "development" ] } },
{ name = "eeprom-release", condition = { profiles = [ "release" ] } },
]
[tasks.eeprom-development]
description = "Flash the eeprom" description = "Flash the eeprom"
dependencies = ["copy_eeprom", "size"] dependencies = ["copy_eeprom", "size"]
command = "avrdude" command = "avrdude"
args = ["-p", "${MCU}", "-c", "${PROGRAMMER}", "-U", "eeprom:w:target/avr-atmega328p/debug/clock-generator.eep:a"] args = ["-p", "${MCU}", "-c", "${PROGRAMMER}", "-U", "eeprom:w:target/avr-atmega328p/debug/clock-generator.eep:a"]
[tasks.eeprom-release]
description = "Flash the eeprom"
dependencies = ["copy_eeprom", "size"]
command = "avrdude"
args = ["-p", "${MCU}", "-c", "${PROGRAMMER}", "-U", "eeprom:w:target/avr-atmega328p/release/clock-generator.eep:a"]
[tasks.fuses] [tasks.fuses]
description = "Burn the fuses" description = "Burn the fuses"
command = "avrdude" command = "avrdude"