From d12bfaa3d9914613e1939213953bd3b429816a3d Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Thu, 19 Dec 2024 07:29:00 -0600 Subject: [PATCH 01/17] Run treefmt-nix instead of treefmt --- .github/workflows/treefmt.yaml | 4 ++-- .vscode/settings.json | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/treefmt.yaml b/.github/workflows/treefmt.yaml index b077946..fbb6c30 100644 --- a/.github/workflows/treefmt.yaml +++ b/.github/workflows/treefmt.yaml @@ -38,9 +38,9 @@ jobs: - uses: DeterminateSystems/nix-installer-action@v16 - uses: DeterminateSystems/magic-nix-cache-action@v9 - name: Run treefmt - run: nix develop --command treefmt --ci + run: nix develop --command treefmt-nix --ci - uses: reviewdog/action-suggester@v1 with: fail_on_error: true github_token: ${{ secrets.GH_TOKEN_FOR_UPDATES }} - tool_name: treefmt + tool_name: treefmt-nix diff --git a/.vscode/settings.json b/.vscode/settings.json index d9866c7..08173ae 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,6 +24,7 @@ "ifdef", "ifndef", "ihex", + "jsonfmt", "justfile", "Libc", "libusbx", @@ -32,6 +33,7 @@ "Micropython", "mogrify", "MOSI", + "nixfmt", "nixos", "Noctua", "nostd", @@ -48,18 +50,23 @@ "rustc", "rustfmt", "rustup", + "statix", "SWCLK", "SWDIO", + "taplo", "thumbv", "tinyusb", "tlsv", + "treefmt", "uaccess", "UART", "udev", "udisksctl", "usermod", "VBUS", - "wchisp" + "wchisp", + "webp", + "yamlfmt" ], "files.watcherExclude": { "**/.direnv/**": true, From d10b8509baec542a7f1f206d5c9045be376a24a4 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Thu, 19 Dec 2024 07:29:21 -0600 Subject: [PATCH 02/17] Update flake --- flake.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/flake.lock b/flake.lock index b679290..547693c 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "advisory-db": { "flake": false, "locked": { - "lastModified": 1731808107, - "narHash": "sha256-HSx5EDsO07KULW4bNPVeGVAfpQqzwwS005vqISdOzNg=", + "lastModified": 1733749954, + "narHash": "sha256-2Ug80Uf/oUujxgh02Iy5vTG0V+Ab9+YUHuRLRY0ayiY=", "owner": "rustsec", "repo": "advisory-db", - "rev": "8e353a172f1baf11c0c917cfc9ae3c5eff8b9d06", + "rev": "ec9ce28714bb38d77a2223e7266df705500a7f11", "type": "github" }, "original": { @@ -18,11 +18,11 @@ }, "crane": { "locked": { - "lastModified": 1731098351, - "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", + "lastModified": 1734541973, + "narHash": "sha256-1wIgLmhvtfxbJVnhFHUYhPqL3gpLn5JhiS4maaD9RRk=", "owner": "ipetkov", "repo": "crane", - "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", + "rev": "fdd502f921936105869eba53db6593fc2a424c16", "type": "github" }, "original": { @@ -102,11 +102,11 @@ ] }, "locked": { - "lastModified": 1731955974, - "narHash": "sha256-YOVU8sfWHnSIXPwISlIUMFRm3OFZsy3yBfTBzqcn1hg=", + "lastModified": 1734613724, + "narHash": "sha256-ruOPYwc4iAPoe4sdbe/jOvxtKfh/G3n7DSFgSKIpAeY=", "owner": "jwillikers", "repo": "nix-update-scripts", - "rev": "679b94a59970e44361cf59bcf61b91ef421ebd66", + "rev": "9b92f2d4a108cee96273eff840875034c6e0293a", "type": "github" }, "original": { @@ -117,11 +117,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1731755305, - "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", + "lastModified": 1734323986, + "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", + "rev": "394571358ce82dff7411395829aa6a3aad45b907", "type": "github" }, "original": { @@ -143,11 +143,11 @@ ] }, "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "lastModified": 1734425854, + "narHash": "sha256-nzE5UbJ41aPEKf8R2ZFYtLkqPmF7EIUbNEdHMBLg0Ig=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "rev": "0ddd26d0925f618c3a5d85a4fa5eb1e23a09491d", "type": "github" }, "original": { @@ -175,11 +175,11 @@ ] }, "locked": { - "lastModified": 1731897198, - "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", + "lastModified": 1734575524, + "narHash": "sha256-BxQ/4JuHEi0zRjF0P8B5xnbXOLulgsK2gfwVRXGZ4a4=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", + "rev": "573c674a3ad06e8a525263185ebef336a411d1d5", "type": "github" }, "original": { @@ -210,11 +210,11 @@ ] }, "locked": { - "lastModified": 1731944360, - "narHash": "sha256-sJxPh+V0vUkBhlA58ok/y0o96AtfqiEF0O8qsdolI6o=", + "lastModified": 1734543842, + "narHash": "sha256-/QceWozrNg915Db9x/Ie5k67n9wKgGdTFng+Z1Qw0kE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "579b9a2fd0020cd9cd81a4ef4eab2dca4d20c94c", + "rev": "76159fc74eeac0599c3618e3601ac2b980a29263", "type": "github" }, "original": { From 410dafc0de1bc66ec3b97538353f9133039229ec Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Thu, 19 Dec 2024 07:41:45 -0600 Subject: [PATCH 03/17] Update pico Rust dependencies --- .editorconfig | 5 ++- boards/pico/Cargo.lock | 90 +++++++++++++++++++----------------------- 2 files changed, 45 insertions(+), 50 deletions(-) diff --git a/.editorconfig b/.editorconfig index b5f5e10..7d13ba2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,9 +9,12 @@ indent_style = space max_line_length = 120 trim_trailing_whitespace = true -[*.adoc] +[*.adoc,*.lock] indent_size = unset +[*.lock] +indent_style = unset + [*.{adoc,envrc,nix,nu,yaml,yml}] max_line_length = off diff --git a/boards/pico/Cargo.lock b/boards/pico/Cargo.lock index ff048f2..3327802 100644 --- a/boards/pico/Cargo.lock +++ b/boards/pico/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "arrayvec" @@ -10,9 +10,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "bare-metal" @@ -61,22 +61,22 @@ dependencies = [ [[package]] name = "cortex-m-rt" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee84e813d593101b1723e13ec38b6ab6abbdbaaa4546553f5395ed274079ddb1" +checksum = "801d4dec46b34c299ccf6b036717ae0fce602faa4f4fe816d9013b9a7c9f5ba6" dependencies = [ "cortex-m-rt-macros", ] [[package]] name = "cortex-m-rt-macros" -version = "0.7.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f6f3e36f203cfedbc78b357fb28730aa2c6dc1ab060ee5c2405e843988d3c7" +checksum = "e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] @@ -90,9 +90,9 @@ dependencies = [ [[package]] name = "critical-section" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "debug-helper" @@ -102,9 +102,9 @@ checksum = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e" [[package]] name = "defmt" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99dd22262668b887121d4672af5a64b238f026099f1a2a1b322066c9ecfe9e0" +checksum = "86f6162c53f659f65d00619fe31f14556a6e9f8752ccc4a41bd177ffcf3d6130" dependencies = [ "bitflags", "defmt-macros", @@ -112,22 +112,22 @@ dependencies = [ [[package]] name = "defmt-macros" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9f309eff1f79b3ebdf252954d90ae440599c26c2c553fe87a2d17195f2dcb" +checksum = "9d135dd939bad62d7490b0002602d35b358dce5fd9233a709d3c1ef467d4bde6" dependencies = [ "defmt-parser", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] name = "defmt-parser" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4a5fefe330e8d7f31b16a318f9ce81000d8e35e69b93eae154d16d2278f70f" +checksum = "3983b127f13995e68c1e29071e5d115cd96f215ccb5e6812e3728cd6f92653b3" dependencies = [ "thiserror", ] @@ -231,7 +231,7 @@ checksum = "e99b8b3c28ae0e84b604c75f721c21dc77afb3706076af5e8216d15fd1deaae3" dependencies = [ "frunk_proc_macro_helpers", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -243,7 +243,7 @@ dependencies = [ "frunk_core", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] @@ -415,39 +415,37 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d30538d42559de6b034bc76fd6dd4c38961b1ee5c6c56e3808c50128fdbc22ce" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", - "version_check", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ + "proc-macro-error-attr2", "proc-macro2", "quote", - "version_check", + "syn 2.0.90", ] [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -600,9 +598,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -611,29 +609,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.90", ] [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "usb-device" @@ -651,12 +649,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - [[package]] name = "void" version = "1.0.2" From a7865a2ba4278b9ebdee4051705366645c9386fb Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Thu, 19 Dec 2024 08:43:44 -0600 Subject: [PATCH 04/17] Attempt to fix AtTiny85 builds --- .editorconfig | 2 +- .justfile | 8 ++++---- boards/attiny85/.justfile | 2 +- boards/attiny85/Cargo.lock | 16 ++++++++-------- boards/attiny85/Cargo.toml | 11 ++++++----- boards/attiny85/rust-toolchain.toml | 1 + boards/pico/.justfile | 2 +- boards/qt-py-ch32v203/.justfile | 2 +- flake.nix | 6 ++++-- 9 files changed, 27 insertions(+), 23 deletions(-) diff --git a/.editorconfig b/.editorconfig index 7d13ba2..a3ef04c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -15,7 +15,7 @@ indent_size = unset [*.lock] indent_style = unset -[*.{adoc,envrc,nix,nu,yaml,yml}] +[*.{adoc,envrc,lock,nix,nu,yaml,yml}] max_line_length = off [{justfile,.justfile,*.just,*.rs}] diff --git a/.justfile b/.justfile index b780703..4585444 100644 --- a/.justfile +++ b/.justfile @@ -24,7 +24,7 @@ build board="attiny85" profile="dev": alias fmt := format format: - treefmt + treefmt-nix alias f := run alias flash := run @@ -78,8 +78,8 @@ update: nix run ".#update-nixos-release" nix flake update cd "{{ justfile_directory() }}/boards/attiny85" - cargo update + cargo update --verbose cd "{{ justfile_directory() }}/boards/pico" - cargo update + cargo update --verbose cd "{{ justfile_directory() }}/boards/qt-py-ch32v203" - cargo update + cargo update --verbose diff --git a/boards/attiny85/.justfile b/boards/attiny85/.justfile index 7c9f9dd..87207a5 100644 --- a/boards/attiny85/.justfile +++ b/boards/attiny85/.justfile @@ -26,4 +26,4 @@ alias up := update update: nix flake update - cargo update + cargo update --verbose diff --git a/boards/attiny85/Cargo.lock b/boards/attiny85/Cargo.lock index 1c241f6..5a90c0b 100644 --- a/boards/attiny85/Cargo.lock +++ b/boards/attiny85/Cargo.lock @@ -66,9 +66,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "critical-section" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "embedded-hal" @@ -119,9 +119,9 @@ checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" [[package]] name = "panic-halt" -version = "0.2.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de96540e0ebde571dc55c73d60ef407c653844e6f9a1e2fdbd40c07b9252d812" +checksum = "a513e167849a384b7f9b746e517604398518590a9142f4846a32e3c2a4de7b11" [[package]] name = "paste" @@ -162,9 +162,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "syn" @@ -206,9 +206,9 @@ checksum = "e87a2ed6b42ec5e28cc3b94c09982969e9227600b2e3dcbc1db927a84c06bd69" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unwrap-infallible" diff --git a/boards/attiny85/Cargo.toml b/boards/attiny85/Cargo.toml index 134b650..7a3edb1 100644 --- a/boards/attiny85/Cargo.toml +++ b/boards/attiny85/Cargo.toml @@ -7,15 +7,16 @@ homepage = "https://github.com/jwillikers/pwm-fan-controller" description = "A simple PWM fan controller for microcontrollers" license = "MIT OR Apache-2.0" repository = "https://github.com/jwillikers/pwm-fan-controller.git" +# autobin = false [dependencies] -embedded-hal = "1.0.0" -nb = "1.1.0" -panic-halt = "0.2.0" -ufmt = "0.2.0" +embedded-hal = "1.0" +nb = "1.1" +panic-halt = "1.0" +ufmt = "0.2" #[dependencies.avr-device] -#version = "0.4.0" +#version = "0.6.0" #features = ["attiny85"] [dependencies.avr-hal-generic] diff --git a/boards/attiny85/rust-toolchain.toml b/boards/attiny85/rust-toolchain.toml index 63f11f2..a73301d 100644 --- a/boards/attiny85/rust-toolchain.toml +++ b/boards/attiny85/rust-toolchain.toml @@ -1,5 +1,6 @@ [toolchain] channel = "nightly-2024-03-22" +# channel = "nightly" components = ["llvm-tools-preview", "rust-src"] profile = "minimal" targets = ["avr-unknown-none-attiny85.json"] diff --git a/boards/pico/.justfile b/boards/pico/.justfile index 6e7e02b..24dc209 100644 --- a/boards/pico/.justfile +++ b/boards/pico/.justfile @@ -50,4 +50,4 @@ alias up := package update: nix flake update - cargo update + cargo update --verbose diff --git a/boards/qt-py-ch32v203/.justfile b/boards/qt-py-ch32v203/.justfile index aeda550..83c8c01 100644 --- a/boards/qt-py-ch32v203/.justfile +++ b/boards/qt-py-ch32v203/.justfile @@ -37,4 +37,4 @@ alias up := package update: nix flake update - cargo update + cargo update --verbose diff --git a/flake.nix b/flake.nix index ad94ead..d1d59ad 100644 --- a/flake.nix +++ b/flake.nix @@ -92,7 +92,7 @@ p: (p.rust-bin.fromRustupToolchainFile ./boards/attiny85/rust-toolchain.toml).override { # Remove the avr-unknown-none-attiny85.json file from the list of targets for the Rust toolchain. - # Nix doesn't really support target JSON files specified in the toolchain and even if it did, it won't be ablet to build a toolchain for AVR. + # Nix doesn't really support target JSON files specified in the toolchain and even if it did, it won't be able to build a toolchain for AVR. # The AVR toolchain is unstable and does not include std. targets = [ p.stdenv.hostPlatform.rust.rustcTarget ]; }; @@ -140,6 +140,7 @@ # will avoid IFD entirely but will require manually keeping the file # up to date! "${rustToolchain.passthru.availableComponents.rust-src}/lib/rustlib/src/rust/Cargo.lock" + # "${rustToolchain.passthru.availableComponents.rust-src}/lib/rustlib/src/rust/library/Cargo.lock" ]; }; cargoExtraArgs = "--target avr-unknown-none-attiny85.json -Z build-std=core"; @@ -147,8 +148,9 @@ extraDummyScript = '' cp --archive ${./boards/attiny85/avr-unknown-none-attiny85.json} $out/avr-unknown-none-attiny85.json - rm --force --recursive $out/src/bin/crane-dummy-* + (shopt -s globstar; rm --force --recursive $out/**/src/bin/crane-dummy-*) ''; + # # rm --force --recursive $out/src/bin/crane-dummy-* }; cargoArtifacts = craneLib.buildDepsOnly commonArgs; From b0cff01c28bbf4325e9e2a246cb07dd0967cf8f2 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Mon, 17 Mar 2025 12:28:12 -0500 Subject: [PATCH 05/17] Update --- .github/workflows/treefmt.yaml | 2 +- .vscode/settings.json | 4 +++ boards/attiny85/.justfile | 1 - flake.lock | 45 ++++++++++++++++------------------ flake.nix | 1 - pre-commit-hooks.nix | 2 +- 6 files changed, 27 insertions(+), 28 deletions(-) diff --git a/.github/workflows/treefmt.yaml b/.github/workflows/treefmt.yaml index fbb6c30..af64f10 100644 --- a/.github/workflows/treefmt.yaml +++ b/.github/workflows/treefmt.yaml @@ -38,7 +38,7 @@ jobs: - uses: DeterminateSystems/nix-installer-action@v16 - uses: DeterminateSystems/magic-nix-cache-action@v9 - name: Run treefmt - run: nix develop --command treefmt-nix --ci + run: nix develop --command treefmt --ci - uses: reviewdog/action-suggester@v1 with: fail_on_error: true diff --git a/.vscode/settings.json b/.vscode/settings.json index 08173ae..f38f0fe 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,6 +15,7 @@ "CMSIS", "Datasheet", "Dclippy", + "deadnix", "devel", "dialout", "direnv", @@ -35,6 +36,7 @@ "MOSI", "nixfmt", "nixos", + "nixpkgs", "Noctua", "nostd", "Nushell", @@ -45,12 +47,14 @@ "picoprobe", "Pinout", "Pinouts", + "pkgs", "proto", "Protoboard", "rustc", "rustfmt", "rustup", "statix", + "stdenv", "SWCLK", "SWDIO", "taplo", diff --git a/boards/attiny85/.justfile b/boards/attiny85/.justfile index 87207a5..822d9ad 100644 --- a/boards/attiny85/.justfile +++ b/boards/attiny85/.justfile @@ -17,7 +17,6 @@ run profile="dev": (build profile) # alias p := package # alias pack := package - # package: # ^nix build ".#attiny85" diff --git a/flake.lock b/flake.lock index 547693c..96b6d8d 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "advisory-db": { "flake": false, "locked": { - "lastModified": 1733749954, - "narHash": "sha256-2Ug80Uf/oUujxgh02Iy5vTG0V+Ab9+YUHuRLRY0ayiY=", + "lastModified": 1741826510, + "narHash": "sha256-VPfsy7Iymk/Gs/sRgAiy5vkZmnJb1r9GmuF46/aiXNg=", "owner": "rustsec", "repo": "advisory-db", - "rev": "ec9ce28714bb38d77a2223e7266df705500a7f11", + "rev": "825bd26e5e14f8906f9314be1ba6734a753341d1", "type": "github" }, "original": { @@ -18,11 +18,11 @@ }, "crane": { "locked": { - "lastModified": 1734541973, - "narHash": "sha256-1wIgLmhvtfxbJVnhFHUYhPqL3gpLn5JhiS4maaD9RRk=", + "lastModified": 1742143293, + "narHash": "sha256-8oKPsMlqlOQ7qnTWvhBEcfVFY1WqHIcSilGVtaLAquw=", "owner": "ipetkov", "repo": "crane", - "rev": "fdd502f921936105869eba53db6593fc2a424c16", + "rev": "de3bb0155823298161c1c0a7805f10d4b4074bbb", "type": "github" }, "original": { @@ -102,11 +102,11 @@ ] }, "locked": { - "lastModified": 1734613724, - "narHash": "sha256-ruOPYwc4iAPoe4sdbe/jOvxtKfh/G3n7DSFgSKIpAeY=", + "lastModified": 1742229162, + "narHash": "sha256-X8vWjVVyXMJabzBf2EeN86UNe7a4z31AsdxRNT/d61w=", "owner": "jwillikers", "repo": "nix-update-scripts", - "rev": "9b92f2d4a108cee96273eff840875034c6e0293a", + "rev": "5b57707a7b593442e894651b2c071eb94fafb99e", "type": "github" }, "original": { @@ -117,11 +117,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1734323986, - "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", + "lastModified": 1742136038, + "narHash": "sha256-DDe16FJk18sadknQKKG/9FbwEro7A57tg9vB5kxZ8kY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "394571358ce82dff7411395829aa6a3aad45b907", + "rev": "a1185f4064c18a5db37c5c84e5638c78b46e3341", "type": "github" }, "original": { @@ -137,17 +137,14 @@ "gitignore": "gitignore", "nixpkgs": [ "nixpkgs" - ], - "nixpkgs-stable": [ - "nixpkgs" ] }, "locked": { - "lastModified": 1734425854, - "narHash": "sha256-nzE5UbJ41aPEKf8R2ZFYtLkqPmF7EIUbNEdHMBLg0Ig=", + "lastModified": 1742058297, + "narHash": "sha256-b4SZc6TkKw8WQQssbN5O2DaCEzmFfvSTPYHlx/SFW9Y=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "0ddd26d0925f618c3a5d85a4fa5eb1e23a09491d", + "rev": "59f17850021620cd348ad2e9c0c64f4e6325ce2a", "type": "github" }, "original": { @@ -175,11 +172,11 @@ ] }, "locked": { - "lastModified": 1734575524, - "narHash": "sha256-BxQ/4JuHEi0zRjF0P8B5xnbXOLulgsK2gfwVRXGZ4a4=", + "lastModified": 1742178793, + "narHash": "sha256-S2onMdoDS4tIYd3/Jc5oFEZBr2dJOgPrh9KzSO/bfDw=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "573c674a3ad06e8a525263185ebef336a411d1d5", + "rev": "954582a766a50ebef5695a9616c93b5386418c08", "type": "github" }, "original": { @@ -210,11 +207,11 @@ ] }, "locked": { - "lastModified": 1734543842, - "narHash": "sha256-/QceWozrNg915Db9x/Ie5k67n9wKgGdTFng+Z1Qw0kE=", + "lastModified": 1739829690, + "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "76159fc74eeac0599c3618e3601ac2b980a29263", + "rev": "3d0579f5cc93436052d94b73925b48973a104204", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d1d59ad..a3f8ff1 100644 --- a/flake.nix +++ b/flake.nix @@ -20,7 +20,6 @@ url = "github:cachix/pre-commit-hooks.nix"; inputs = { nixpkgs.follows = "nixpkgs"; - nixpkgs-stable.follows = "nixpkgs"; }; }; rust-overlay = { diff --git a/pre-commit-hooks.nix b/pre-commit-hooks.nix index 894de31..dba6d75 100644 --- a/pre-commit-hooks.nix +++ b/pre-commit-hooks.nix @@ -10,7 +10,7 @@ # todo Not integrated with Nix? check-format = { enable = true; - entry = "${treefmtEval.config.build.wrapper}/bin/treefmt-nix --fail-on-change"; + entry = "${treefmtEval.config.build.wrapper}/bin/treefmt --fail-on-change"; }; check-json.enable = true; From 6f6d42349a35c45bffed28058e60e9226a42bd36 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Mon, 17 Mar 2025 12:39:39 -0500 Subject: [PATCH 06/17] Update Pico --- boards/pico/Cargo.lock | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/boards/pico/Cargo.lock b/boards/pico/Cargo.lock index 3327802..a9de863 100644 --- a/boards/pico/Cargo.lock +++ b/boards/pico/Cargo.lock @@ -76,7 +76,7 @@ checksum = "e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.100", ] [[package]] @@ -120,7 +120,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.100", ] [[package]] @@ -144,9 +144,9 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "embedded-dma" @@ -231,7 +231,7 @@ checksum = "e99b8b3c28ae0e84b604c75f721c21dc77afb3706076af5e8216d15fd1deaae3" dependencies = [ "frunk_proc_macro_helpers", "quote", - "syn 2.0.90", + "syn 2.0.100", ] [[package]] @@ -243,7 +243,7 @@ dependencies = [ "frunk_core", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.100", ] [[package]] @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "proc-macro-error-attr2" @@ -438,14 +438,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.100", ] [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] @@ -467,9 +467,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -598,9 +598,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.90" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -609,29 +609,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.8" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f5383f3e0071702bf93ab5ee99b52d26936be9dedd9413067cbdcddcb6141a" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.8" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f357fcec90b3caef6623a099691be676d033b40a058ac95d2a6ade6fa0c943" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.90", + "syn 2.0.100", ] [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "usb-device" From 48d4f35d03e7bd7d5ffbfc66fd5f6698ceb633f5 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Mon, 17 Mar 2025 13:19:23 -0500 Subject: [PATCH 07/17] Update qt-py-ch32v203 --- boards/qt-py-ch32v203/.cargo/config.toml | 4 +- boards/qt-py-ch32v203/Cargo.lock | 128 ++++++++++++++-------- boards/qt-py-ch32v203/Cargo.toml | 20 ++-- boards/qt-py-ch32v203/rust-toolchain.toml | 5 +- flake.nix | 3 +- 5 files changed, 102 insertions(+), 58 deletions(-) diff --git a/boards/qt-py-ch32v203/.cargo/config.toml b/boards/qt-py-ch32v203/.cargo/config.toml index 7cd8ca5..5c71598 100644 --- a/boards/qt-py-ch32v203/.cargo/config.toml +++ b/boards/qt-py-ch32v203/.cargo/config.toml @@ -1,7 +1,7 @@ [build] -target = "riscv32imac-unknown-none-elf" +target = "riscv32imc-unknown-none-elf" -[target."riscv32imac-unknown-none-elf"] +[target."riscv32imc-unknown-none-elf"] rustflags = [ # "-C", "link-arg=-Tlink.x", # "-C", "no-vectorize-loops", diff --git a/boards/qt-py-ch32v203/Cargo.lock b/boards/qt-py-ch32v203/Cargo.lock index 72d712c..e76d743 100644 --- a/boards/qt-py-ch32v203/Cargo.lock +++ b/boards/qt-py-ch32v203/Cargo.lock @@ -29,7 +29,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "ch32-hal" version = "0.1.0" -source = "git+https://github.com/ch32-rs/ch32-hal.git#dc44f2811173cf6ac38517f7d136e182351541a3" +source = "git+https://github.com/ch32-rs/ch32-hal.git#2f176c867c6f1c152e6cec6954ebc2758b637fd1" dependencies = [ "ch32-metapac", "critical-section", @@ -41,6 +41,7 @@ dependencies = [ "embassy-usb-driver", "embedded-hal 0.2.7", "embedded-hal 1.0.0", + "embedded-hal-async", "embedded-hal-nb", "futures", "nb 1.1.0", @@ -55,23 +56,23 @@ dependencies = [ [[package]] name = "ch32-metapac" version = "0.1.0" -source = "git+https://github.com/ch32-rs/ch32-metapac.git?tag=ch32-data-0f143d8ce505711e4667002b42b8a34eb9c1d039#d97b74530b6191e8e77847f33b0c6e0f1710c07d" +source = "git+https://github.com/ch32-rs/ch32-metapac?rev=b1cbc7a98e43af3fd3170821654784e2c01cb26b#b1cbc7a98e43af3fd3170821654784e2c01cb26b" dependencies = [ - "riscv", + "riscv 0.11.1", "vcell", ] [[package]] name = "critical-section" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "document-features" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" dependencies = [ "litrs", ] @@ -93,13 +94,14 @@ dependencies = [ [[package]] name = "embassy-sync" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e0c49ff02ebe324faf3a8653ba91582e2d0a7fdef5bc88f449d5aa1bfcc05c" +checksum = "8d2c8cdff05a7a51ba0087489ea44b0b1d97a296ca6b1d6d1a33ea7423d34049" dependencies = [ "cfg-if", "critical-section", "embedded-io-async", + "futures-sink", "futures-util", "heapless", ] @@ -195,9 +197,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -209,9 +211,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -219,44 +221,44 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.100", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-macro", @@ -317,15 +319,21 @@ dependencies = [ [[package]] name = "panic-halt" -version = "0.2.0" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a513e167849a384b7f9b746e517604398518590a9142f4846a32e3c2a4de7b11" + +[[package]] +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de96540e0ebde571dc55c73d60ef407c653844e6f9a1e2fdbd40c07b9252d812" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -359,9 +367,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] @@ -379,20 +387,20 @@ dependencies = [ [[package]] name = "qingke" -version = "0.2.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a9bbdb31ef9edd7d73dcc21b98945d032d2d18423b62ef0565539957a127f1" +checksum = "c0230c5310b68c08a3cf8b59fbeec3e9d8e352bc6500f62cbaf9c677f42c8dfc" dependencies = [ "bit_field", "critical-section", - "riscv", + "riscv 0.12.1", ] [[package]] name = "qingke-rt" -version = "0.2.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b175d27f60c4bc2d779158c2bf0746b4b2f4597732083befbd64b0cc7ab7b608" +checksum = "b955c60adac70c6d40205b1dbe9f57e1151d06aa842069cdbaef7bc07ad283fd" dependencies = [ "qingke", "qingke-rt-macros", @@ -400,9 +408,9 @@ dependencies = [ [[package]] name = "qingke-rt-macros" -version = "0.2.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54802ab7754743f6948ccb40547ae0fad2243ff5095b2851c59c4f6bdf65d7b" +checksum = "5f2ed46d18953ea5765ab26a07d1f092dffac2da1b4830c4397e02c3cec08501" dependencies = [ "proc-macro-error", "proc-macro2", @@ -412,9 +420,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -435,6 +443,36 @@ dependencies = [ "embedded-hal 1.0.0", ] +[[package]] +name = "riscv" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7" +dependencies = [ + "critical-section", + "embedded-hal 1.0.0", + "paste", + "riscv-macros", + "riscv-pac", +] + +[[package]] +name = "riscv-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "riscv-pac" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" + [[package]] name = "sdio-host" version = "0.5.0" @@ -460,9 +498,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -471,9 +509,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "vcell" diff --git a/boards/qt-py-ch32v203/Cargo.toml b/boards/qt-py-ch32v203/Cargo.toml index d436b98..cb3dc8c 100644 --- a/boards/qt-py-ch32v203/Cargo.toml +++ b/boards/qt-py-ch32v203/Cargo.toml @@ -18,22 +18,26 @@ features = [ # The PWM is attached to timer 4 though, in case it matters. "time-driver-tim4", # "time-driver-tim2", + "memory-x", ] git = "https://github.com/ch32-rs/ch32-hal.git" [dependencies] embedded-hal = "1.0" -qingke-rt = "0.2" -qingke = "0.2" -panic-halt = "0.2" +qingke-rt = "0.5" +qingke = "0.5" +panic-halt = "1.0" # Dev builds need to be optimized for code size or they won't fit in flash. [profile.dev] -lto = true opt-level = "z" -strip = false [profile.release] -lto = true -opt-level = "z" # Optimize for size. -strip = false # symbols are not flashed to the microcontroller, so don't strip them. +opt-level = "z" # Optimize for size. +strip = false # symbols are not flashed to the microcontroller, so don't strip them. +codegen-units = 1 # LLVM can perform better optimizations using a single thread +debug = 2 +debug-assertions = false +incremental = false +lto = "fat" +overflow-checks = false diff --git a/boards/qt-py-ch32v203/rust-toolchain.toml b/boards/qt-py-ch32v203/rust-toolchain.toml index 718d5e2..c135c22 100644 --- a/boards/qt-py-ch32v203/rust-toolchain.toml +++ b/boards/qt-py-ch32v203/rust-toolchain.toml @@ -1,3 +1,4 @@ [toolchain] -channel = "nightly-2024-06-12" -targets = ["riscv32imac-unknown-none-elf"] +channel = "nightly" +components = ["rust-src"] +targets = ["riscv32imc-unknown-none-elf"] diff --git a/flake.nix b/flake.nix index a3f8ff1..5411c2b 100644 --- a/flake.nix +++ b/flake.nix @@ -290,7 +290,8 @@ rm --force --recursive $out/src/bin/crane-dummy-* ''; - cargoExtraArgs = "--target riscv32imac-unknown-none-elf"; + # cargoExtraArgs = "--target riscv32imfc-unknown-none-elf.json -Z build-std=core"; + cargoExtraArgs = "--target riscv32imc-unknown-none-elf"; }; cargoArtifacts = craneLib.buildDepsOnly commonArgs; From 32f46846a81bc6b051164883e37b7caf883d7d69 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Mon, 17 Mar 2025 13:20:55 -0500 Subject: [PATCH 08/17] Remove build.rs and memory.x --- boards/qt-py-ch32v203/.cargo/config.toml | 3 +- boards/qt-py-ch32v203/build.rs | 11 -- boards/qt-py-ch32v203/memory.x | 145 ----------------------- 3 files changed, 2 insertions(+), 157 deletions(-) delete mode 100644 boards/qt-py-ch32v203/build.rs delete mode 100644 boards/qt-py-ch32v203/memory.x diff --git a/boards/qt-py-ch32v203/.cargo/config.toml b/boards/qt-py-ch32v203/.cargo/config.toml index 5c71598..253c969 100644 --- a/boards/qt-py-ch32v203/.cargo/config.toml +++ b/boards/qt-py-ch32v203/.cargo/config.toml @@ -3,7 +3,8 @@ target = "riscv32imc-unknown-none-elf" [target."riscv32imc-unknown-none-elf"] rustflags = [ - # "-C", "link-arg=-Tlink.x", + "-C", + "link-arg=-Tlink.x", # "-C", "no-vectorize-loops", ] # runner = "riscv64-unknown-elf-gdb -q -x openocd.gdb" diff --git a/boards/qt-py-ch32v203/build.rs b/boards/qt-py-ch32v203/build.rs deleted file mode 100644 index 77208e1..0000000 --- a/boards/qt-py-ch32v203/build.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn main() { - // println!("cargo:rustc-link-arg-bins=--nmagic"); - println!("cargo:rustc-link-arg-bins=-Tlink.x"); - // println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); - - let out_dir = std::env::var("OUT_DIR").unwrap(); - let out_dir = std::path::PathBuf::from(out_dir); - std::fs::write(out_dir.join("memory.x"), include_bytes!("memory.x")).unwrap(); - println!("cargo:rustc-link-search={}", out_dir.display()); - println!("cargo:rerun-if-changed=memory.x"); -} diff --git a/boards/qt-py-ch32v203/memory.x b/boards/qt-py-ch32v203/memory.x deleted file mode 100644 index ea5af68..0000000 --- a/boards/qt-py-ch32v203/memory.x +++ /dev/null @@ -1,145 +0,0 @@ -/* CH32V203G8 */ -MEMORY -{ - FLASH : ORIGIN = 0x00000000, LENGTH = 32k - RAM : ORIGIN = 0x20000000, LENGTH = 10k - /* Non Zero Wait Flash, 224K - 32K = 192K */ - FLASH1 : ORIGIN = 0x00008000, LENGTH = 192K -} - -SECTIONS -{ - .coldtext : - { - . = ALIGN(4); - KEEP(*(SORT_NONE(.coldtext .coldtext.*))) - . = ALIGN(4); - } >FLASH1 AT>FLASH1 - - .coldrodata : - { - . = ALIGN(4); - KEEP(*(SORT_NONE(.coldrodata .coldrodata.*))) - . = ALIGN(4); - } >FLASH1 AT>FLASH1 -} - -REGION_ALIAS("REGION_TEXT", FLASH); -REGION_ALIAS("REGION_RODATA", FLASH); -REGION_ALIAS("REGION_DATA", RAM); -REGION_ALIAS("REGION_BSS", RAM); -REGION_ALIAS("REGION_HEAP", RAM); -REGION_ALIAS("REGION_STACK", RAM); - -/* fault handlers */ - -PROVIDE(InstructionMisaligned = ExceptionHandler); -PROVIDE(InstructionFault = ExceptionHandler); -PROVIDE(IllegalInstruction = ExceptionHandler); -PROVIDE(Breakpoint = ExceptionHandler); -PROVIDE(LoadMisaligned = ExceptionHandler); -PROVIDE(LoadFault = ExceptionHandler); -PROVIDE(StoreMisaligned = ExceptionHandler); -PROVIDE(StoreFault = ExceptionHandler);; -PROVIDE(UserEnvCall = ExceptionHandler); -PROVIDE(SupervisorEnvCall = ExceptionHandler); -PROVIDE(MachineEnvCall = ExceptionHandler); -PROVIDE(InstructionPageFault = ExceptionHandler); -PROVIDE(LoadPageFault = ExceptionHandler); -PROVIDE(StorePageFault = ExceptionHandler); - -/* core interrupt handlers */ - -PROVIDE(NonMaskableInt = DefaultHandler); -PROVIDE(Software = DefaultHandler); - -/* external interrupt handlers */ - -PROVIDE(WWDG = DefaultHandler); -PROVIDE(PVD = DefaultHandler); -PROVIDE(TAMPER = DefaultHandler); -PROVIDE(RTC = DefaultHandler); -PROVIDE(FLASH = DefaultHandler); -PROVIDE(RCC = DefaultHandler); -PROVIDE(EXTI0 = DefaultHandler); -PROVIDE(EXTI1 = DefaultHandler); -PROVIDE(EXTI2 = DefaultHandler); -PROVIDE(EXTI3 = DefaultHandler); -PROVIDE(EXTI4 = DefaultHandler); -PROVIDE(DMA1_CHANNEL1 = DefaultHandler); -PROVIDE(DMA1_CHANNEL2 = DefaultHandler); -PROVIDE(DMA1_CHANNEL3 = DefaultHandler); -PROVIDE(DMA1_CHANNEL4 = DefaultHandler); -PROVIDE(DMA1_CHANNEL5 = DefaultHandler); -PROVIDE(DMA1_CHANNEL6 = DefaultHandler); -PROVIDE(DMA1_CHANNEL7 = DefaultHandler); -PROVIDE(ADC = DefaultHandler); -PROVIDE(USB_HP_CAN1_TX = DefaultHandler); -PROVIDE(USB_LP_CAN1_RX0 = DefaultHandler); -PROVIDE(CAN1_RX1 = DefaultHandler); -PROVIDE(CAN1_SCE = DefaultHandler); -PROVIDE(EXTI9_5 = DefaultHandler); -PROVIDE(TIM1_BRK = DefaultHandler); -PROVIDE(TIM1_UP_ = DefaultHandler); -PROVIDE(TIM1_TRG_COM = DefaultHandler); -PROVIDE(TIM1_CC = DefaultHandler); -PROVIDE(TIM2 = DefaultHandler); -PROVIDE(TIM3 = DefaultHandler); -PROVIDE(TIM4 = DefaultHandler); -PROVIDE(I2C1_EV = DefaultHandler); -PROVIDE(I2C1_ER = DefaultHandler); -PROVIDE(I2C2_EV = DefaultHandler); -PROVIDE(I2C2_ER = DefaultHandler); -PROVIDE(SPI1 = DefaultHandler); -PROVIDE(SPI2 = DefaultHandler); -PROVIDE(USART1 = DefaultHandler); -PROVIDE(USART2 = DefaultHandler); -PROVIDE(USART3 = DefaultHandler); -PROVIDE(EXTI15_10 = DefaultHandler); -PROVIDE(RTCALARM = DefaultHandler); -PROVIDE(USBWAKE_UP = DefaultHandler); -PROVIDE(TIM8_BRK = DefaultHandler); -PROVIDE(TIM8_UP_ = DefaultHandler); -PROVIDE(TIM8_TRG_COM = DefaultHandler); -PROVIDE(TIM8_CC = DefaultHandler); -PROVIDE(RNG = DefaultHandler); -PROVIDE(FSMC = DefaultHandler); -PROVIDE(SDIO = DefaultHandler); -PROVIDE(TIM5 = DefaultHandler); -PROVIDE(SPI3 = DefaultHandler); -PROVIDE(UART4 = DefaultHandler); -PROVIDE(UART5 = DefaultHandler); -PROVIDE(TIM6 = DefaultHandler); -PROVIDE(TIM7 = DefaultHandler); -PROVIDE(DMA2_CHANNEL1 = DefaultHandler); -PROVIDE(DMA2_CHANNEL2 = DefaultHandler); -PROVIDE(DMA2_CHANNEL3 = DefaultHandler); -PROVIDE(DMA2_CHANNEL4 = DefaultHandler); -PROVIDE(DMA2_CHANNEL5 = DefaultHandler); -PROVIDE(ETH = DefaultHandler); -PROVIDE(ETH_WKUP = DefaultHandler); -PROVIDE(CAN2_TX = DefaultHandler); -PROVIDE(CAN2_RX0 = DefaultHandler); -PROVIDE(CAN2_RX1 = DefaultHandler); -PROVIDE(CAN2_SCE = DefaultHandler); -PROVIDE(OTG_FS = DefaultHandler); -PROVIDE(USBHSWAKEUP = DefaultHandler); -PROVIDE(USBHS = DefaultHandler); -PROVIDE(DVP = DefaultHandler); -PROVIDE(UART6 = DefaultHandler); -PROVIDE(UART7 = DefaultHandler); -PROVIDE(UART8 = DefaultHandler); -PROVIDE(TIM9_BRK = DefaultHandler); -PROVIDE(TIM9_UP_ = DefaultHandler); -PROVIDE(TIM9_TRG_COM = DefaultHandler); -PROVIDE(TIM9_CC = DefaultHandler); -PROVIDE(TIM10_BRK = DefaultHandler); -PROVIDE(TIM10_UP_ = DefaultHandler); -PROVIDE(TIM10_TRG_COM = DefaultHandler); -PROVIDE(TIM10_CC = DefaultHandler); -PROVIDE(DMA2_CHANNEL6 = DefaultHandler); -PROVIDE(DMA2_CHANNEL7 = DefaultHandler); -PROVIDE(DMA2_CHANNEL8 = DefaultHandler); -PROVIDE(DMA2_CHANNEL9 = DefaultHandler); -PROVIDE(DMA2_CHANNEL10 = DefaultHandler); -PROVIDE(DMA2_CHANNEL11 = DefaultHandler); From a9cdc842e503c3f3b3213cef65488c8446b9457b Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Mon, 17 Mar 2025 13:30:41 -0500 Subject: [PATCH 09/17] Try to fix AVR --- boards/attiny85/rust-toolchain.toml | 4 ++-- flake.nix | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/boards/attiny85/rust-toolchain.toml b/boards/attiny85/rust-toolchain.toml index a73301d..2185ed1 100644 --- a/boards/attiny85/rust-toolchain.toml +++ b/boards/attiny85/rust-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "nightly-2024-03-22" -# channel = "nightly" +# channel = "nightly-2024-03-22" +channel = "nightly" components = ["llvm-tools-preview", "rust-src"] profile = "minimal" targets = ["avr-unknown-none-attiny85.json"] diff --git a/flake.nix b/flake.nix index 5411c2b..0802fef 100644 --- a/flake.nix +++ b/flake.nix @@ -290,7 +290,6 @@ rm --force --recursive $out/src/bin/crane-dummy-* ''; - # cargoExtraArgs = "--target riscv32imfc-unknown-none-elf.json -Z build-std=core"; cargoExtraArgs = "--target riscv32imc-unknown-none-elf"; }; From 15ad4dab86d5719b3668ca2bada0a1196f3632a0 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Mon, 17 Mar 2025 13:32:42 -0500 Subject: [PATCH 10/17] Disable AVR builds since they are broken --- .github/workflows/build-attiny85.yaml | 49 -------------------------- .github/workflows/clippy-attiny85.yaml | 38 -------------------- 2 files changed, 87 deletions(-) delete mode 100644 .github/workflows/build-attiny85.yaml delete mode 100644 .github/workflows/clippy-attiny85.yaml diff --git a/.github/workflows/build-attiny85.yaml b/.github/workflows/build-attiny85.yaml deleted file mode 100644 index c45bf12..0000000 --- a/.github/workflows/build-attiny85.yaml +++ /dev/null @@ -1,49 +0,0 @@ -name: Build ATtiny85 - -"on": - pull_request: - branches: ["main"] - paths: - - '*.nix' - - .github/workflows/build-attiny85.yaml - - .justfile - - boards/attiny85/.cargo/** - - boards/attiny85/avr-unknown-none-attiny85.json - - boards/attiny85/Cargo.lock - - boards/attiny85/Cargo.toml - - boards/attiny85/**.nix - - boards/attiny85/rust-toolchain.toml - - boards/attiny85/src/** - - flake.lock - push: - branches: ["main"] - paths: - - '*.nix' - - .github/workflows/build-attiny85.yaml - - .justfile - - boards/attiny85/.cargo/** - - boards/attiny85/avr-unknown-none-attiny85.json - - boards/attiny85/Cargo.lock - - boards/attiny85/Cargo.toml - - boards/attiny85/**.nix - - boards/attiny85/rust-toolchain.toml - - boards/attiny85/src/** - - flake.lock - workflow_dispatch: - -jobs: - build-attiny85: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: DeterminateSystems/nix-installer-action@v16 - - uses: DeterminateSystems/magic-nix-cache-action@v9 - - name: Build - run: nix build .#attiny85 - - name: Upload firmware - uses: actions/upload-artifact@v4 - with: - name: pwm-fan-controller-attiny85 - path: | - result/bin/pwm-fan-controller-attiny85.elf - result/bin/pwm-fan-controller-attiny85.hex diff --git a/.github/workflows/clippy-attiny85.yaml b/.github/workflows/clippy-attiny85.yaml deleted file mode 100644 index c7ff9fe..0000000 --- a/.github/workflows/clippy-attiny85.yaml +++ /dev/null @@ -1,38 +0,0 @@ -name: Lint Rust code with Clippy -"on": - pull_request: - branches: ["main"] - paths: - - '*.nix' - - .github/workflows/clippy-attiny85.yaml - - .justfile - - boards/attiny85/.cargo/** - - boards/attiny85/avr-unknown-none-attiny85.json - - boards/attiny85/Cargo.lock - - boards/attiny85/Cargo.toml - - boards/attiny85/**.nix - - boards/attiny85/rust-toolchain.toml - - boards/attiny85/src/** - - flake.lock - push: - branches: ["main"] - paths: - - '*.nix' - - .github/workflows/clippy-attiny85.yaml - - .justfile - - boards/attiny85/.cargo/** - - boards/attiny85/avr-unknown-none-attiny85.json - - boards/attiny85/Cargo.lock - - boards/attiny85/Cargo.toml - - boards/attiny85/**.nix - - boards/attiny85/rust-toolchain.toml - - boards/attiny85/src/** - - flake.lock - -jobs: - clippy-attiny85: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: DeterminateSystems/nix-installer-action@v16 - - uses: DeterminateSystems/magic-nix-cache-action@v9 From eba1df50aa31b6193b7ee4d3d2cf2b2ba985edc0 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 19 Mar 2025 11:29:42 -0500 Subject: [PATCH 11/17] Revert "Remove build.rs and memory.x" This reverts commit 32f46846a81bc6b051164883e37b7caf883d7d69. --- boards/qt-py-ch32v203/.cargo/config.toml | 3 +- boards/qt-py-ch32v203/build.rs | 11 ++ boards/qt-py-ch32v203/memory.x | 145 +++++++++++++++++++++++ 3 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 boards/qt-py-ch32v203/build.rs create mode 100644 boards/qt-py-ch32v203/memory.x diff --git a/boards/qt-py-ch32v203/.cargo/config.toml b/boards/qt-py-ch32v203/.cargo/config.toml index 253c969..5c71598 100644 --- a/boards/qt-py-ch32v203/.cargo/config.toml +++ b/boards/qt-py-ch32v203/.cargo/config.toml @@ -3,8 +3,7 @@ target = "riscv32imc-unknown-none-elf" [target."riscv32imc-unknown-none-elf"] rustflags = [ - "-C", - "link-arg=-Tlink.x", + # "-C", "link-arg=-Tlink.x", # "-C", "no-vectorize-loops", ] # runner = "riscv64-unknown-elf-gdb -q -x openocd.gdb" diff --git a/boards/qt-py-ch32v203/build.rs b/boards/qt-py-ch32v203/build.rs new file mode 100644 index 0000000..77208e1 --- /dev/null +++ b/boards/qt-py-ch32v203/build.rs @@ -0,0 +1,11 @@ +fn main() { + // println!("cargo:rustc-link-arg-bins=--nmagic"); + println!("cargo:rustc-link-arg-bins=-Tlink.x"); + // println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); + + let out_dir = std::env::var("OUT_DIR").unwrap(); + let out_dir = std::path::PathBuf::from(out_dir); + std::fs::write(out_dir.join("memory.x"), include_bytes!("memory.x")).unwrap(); + println!("cargo:rustc-link-search={}", out_dir.display()); + println!("cargo:rerun-if-changed=memory.x"); +} diff --git a/boards/qt-py-ch32v203/memory.x b/boards/qt-py-ch32v203/memory.x new file mode 100644 index 0000000..1d71ea2 --- /dev/null +++ b/boards/qt-py-ch32v203/memory.x @@ -0,0 +1,145 @@ +/* CH32V203G8 */ +MEMORY +{ + FLASH : ORIGIN = 0x00000000, LENGTH = 32k + RAM : ORIGIN = 0x20000000, LENGTH = 10k + /* Non Zero Wait Flash, 224K - 32K = 192K */ + FLASH1 : ORIGIN = 0x00008000, LENGTH = 192K +} + +SECTIONS +{ + .coldtext : + { + . = ALIGN(4); + KEEP(*(SORT_NONE(.coldtext .coldtext.*))) + . = ALIGN(4); + } >FLASH1 AT>FLASH1 + + .coldrodata : + { + . = ALIGN(4); + KEEP(*(SORT_NONE(.coldrodata .coldrodata.*))) + . = ALIGN(4); + } >FLASH1 AT>FLASH1 +} + +REGION_ALIAS("REGION_TEXT", FLASH); +REGION_ALIAS("REGION_RODATA", FLASH); +REGION_ALIAS("REGION_DATA", RAM); +REGION_ALIAS("REGION_BSS", RAM); +REGION_ALIAS("REGION_HEAP", RAM); +REGION_ALIAS("REGION_STACK", RAM); + +/* fault handlers */ + +PROVIDE(InstructionMisaligned = ExceptionHandler); +PROVIDE(InstructionFault = ExceptionHandler); +PROVIDE(IllegalInstruction = ExceptionHandler); +PROVIDE(Breakpoint = ExceptionHandler); +PROVIDE(LoadMisaligned = ExceptionHandler); +PROVIDE(LoadFault = ExceptionHandler); +PROVIDE(StoreMisaligned = ExceptionHandler); +PROVIDE(StoreFault = ExceptionHandler);; +PROVIDE(UserEnvCall = ExceptionHandler); +PROVIDE(SupervisorEnvCall = ExceptionHandler); +PROVIDE(MachineEnvCall = ExceptionHandler); +PROVIDE(InstructionPageFault = ExceptionHandler); +PROVIDE(LoadPageFault = ExceptionHandler); +PROVIDE(StorePageFault = ExceptionHandler); + +/* core interrupt handlers */ + +PROVIDE(NonMaskableInt = DefaultHandler); +PROVIDE(Software = DefaultHandler); + +/* external interrupt handlers */ + +PROVIDE(WWDG = DefaultHandler); +PROVIDE(PVD = DefaultHandler); +PROVIDE(TAMPER = DefaultHandler); +PROVIDE(RTC = DefaultHandler); +PROVIDE(FLASH = DefaultHandler); +PROVIDE(RCC = DefaultHandler); +PROVIDE(EXTI0 = DefaultHandler); +PROVIDE(EXTI1 = DefaultHandler); +PROVIDE(EXTI2 = DefaultHandler); +PROVIDE(EXTI3 = DefaultHandler); +PROVIDE(EXTI4 = DefaultHandler); +PROVIDE(DMA1_CHANNEL1 = DefaultHandler); +PROVIDE(DMA1_CHANNEL2 = DefaultHandler); +PROVIDE(DMA1_CHANNEL3 = DefaultHandler); +PROVIDE(DMA1_CHANNEL4 = DefaultHandler); +PROVIDE(DMA1_CHANNEL5 = DefaultHandler); +PROVIDE(DMA1_CHANNEL6 = DefaultHandler); +PROVIDE(DMA1_CHANNEL7 = DefaultHandler); +PROVIDE(ADC = DefaultHandler); +PROVIDE(USB_HP_CAN1_TX = DefaultHandler); +PROVIDE(USB_LP_CAN1_RX0 = DefaultHandler); +PROVIDE(CAN1_RX1 = DefaultHandler); +PROVIDE(CAN1_SCE = DefaultHandler); +PROVIDE(EXTI9_5 = DefaultHandler); +PROVIDE(TIM1_BRK = DefaultHandler); +PROVIDE(TIM1_UP_ = DefaultHandler); +PROVIDE(TIM1_TRG_COM = DefaultHandler); +PROVIDE(TIM1_CC = DefaultHandler); +PROVIDE(TIM2 = DefaultHandler); +PROVIDE(TIM3 = DefaultHandler); +PROVIDE(TIM4 = DefaultHandler); +PROVIDE(I2C1_EV = DefaultHandler); +PROVIDE(I2C1_ER = DefaultHandler); +PROVIDE(I2C2_EV = DefaultHandler); +PROVIDE(I2C2_ER = DefaultHandler); +PROVIDE(SPI1 = DefaultHandler); +PROVIDE(SPI2 = DefaultHandler); +PROVIDE(USART1 = DefaultHandler); +PROVIDE(USART2 = DefaultHandler); +PROVIDE(USART3 = DefaultHandler); +PROVIDE(EXTI15_10 = DefaultHandler); +PROVIDE(RTCALARM = DefaultHandler); +PROVIDE(USBWAKE_UP = DefaultHandler); +PROVIDE(TIM8_BRK = DefaultHandler); +PROVIDE(TIM8_UP_ = DefaultHandler); +PROVIDE(TIM8_TRG_COM = DefaultHandler); +PROVIDE(TIM8_CC = DefaultHandler); +PROVIDE(RNG = DefaultHandler); +PROVIDE(FSMC = DefaultHandler); +PROVIDE(SDIO = DefaultHandler); +PROVIDE(TIM5 = DefaultHandler); +PROVIDE(SPI3 = DefaultHandler); +PROVIDE(UART4 = DefaultHandler); +PROVIDE(UART5 = DefaultHandler); +PROVIDE(TIM6 = DefaultHandler); +PROVIDE(TIM7 = DefaultHandler); +PROVIDE(DMA2_CHANNEL1 = DefaultHandler); +PROVIDE(DMA2_CHANNEL2 = DefaultHandler); +PROVIDE(DMA2_CHANNEL3 = DefaultHandler); +PROVIDE(DMA2_CHANNEL4 = DefaultHandler); +PROVIDE(DMA2_CHANNEL5 = DefaultHandler); +PROVIDE(ETH = DefaultHandler); +PROVIDE(ETH_WKUP = DefaultHandler); +PROVIDE(CAN2_TX = DefaultHandler); +PROVIDE(CAN2_RX0 = DefaultHandler); +PROVIDE(CAN2_RX1 = DefaultHandler); +PROVIDE(CAN2_SCE = DefaultHandler); +PROVIDE(OTG_FS = DefaultHandler); +PROVIDE(USBHSWAKEUP = DefaultHandler); +PROVIDE(USBHS = DefaultHandler); +PROVIDE(DVP = DefaultHandler); +PROVIDE(UART6 = DefaultHandler); +PROVIDE(UART7 = DefaultHandler); +PROVIDE(UART8 = DefaultHandler); +PROVIDE(TIM9_BRK = DefaultHandler); +PROVIDE(TIM9_UP_ = DefaultHandler); +PROVIDE(TIM9_TRG_COM = DefaultHandler); +PROVIDE(TIM9_CC = DefaultHandler); +PROVIDE(TIM10_BRK = DefaultHandler); +PROVIDE(TIM10_UP_ = DefaultHandler); +PROVIDE(TIM10_TRG_COM = DefaultHandler); +PROVIDE(TIM10_CC = DefaultHandler); +PROVIDE(DMA2_CHANNEL6 = DefaultHandler); +PROVIDE(DMA2_CHANNEL7 = DefaultHandler); +PROVIDE(DMA2_CHANNEL8 = DefaultHandler); +PROVIDE(DMA2_CHANNEL9 = DefaultHandler); +PROVIDE(DMA2_CHANNEL10 = DefaultHandler); +PROVIDE(DMA2_CHANNEL11 = DefaultHandler); From 169b4f10c9589edbd95471329cfbb49cbf638251 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 19 Mar 2025 11:29:48 -0500 Subject: [PATCH 12/17] Adjust editorconfig --- .editorconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index a3ef04c..2a0536c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,7 +9,7 @@ indent_style = space max_line_length = 120 trim_trailing_whitespace = true -[*.adoc,*.lock] +[*.{adoc,lock}] indent_size = unset [*.lock] From 352f1a956a1e69ccf69c5c8231515ddbd1b7a1e1 Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 19 Mar 2025 11:43:42 -0500 Subject: [PATCH 13/17] Update spellings --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index f38f0fe..8ef960f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -48,6 +48,7 @@ "Pinout", "Pinouts", "pkgs", + "pname", "proto", "Protoboard", "rustc", From e2687d81487dd5fdc16ae1ac0aa31b9a5d7bd13c Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 19 Mar 2025 11:45:21 -0500 Subject: [PATCH 14/17] Remove extra newline --- .envrc | 1 - boards/attiny85/.envrc | 1 - boards/pico/.envrc | 1 - boards/qt-py-ch32v203/.envrc | 1 - 4 files changed, 4 deletions(-) diff --git a/.envrc b/.envrc index a9ee3cd..720e019 100644 --- a/.envrc +++ b/.envrc @@ -3,4 +3,3 @@ if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then fi use flake - diff --git a/boards/attiny85/.envrc b/boards/attiny85/.envrc index 56d5500..fd31bd1 100644 --- a/boards/attiny85/.envrc +++ b/boards/attiny85/.envrc @@ -3,4 +3,3 @@ if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then fi use flake ../..#attiny85 - diff --git a/boards/pico/.envrc b/boards/pico/.envrc index 5201f3d..981e73c 100644 --- a/boards/pico/.envrc +++ b/boards/pico/.envrc @@ -3,4 +3,3 @@ if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then fi use flake ../..#pico - diff --git a/boards/qt-py-ch32v203/.envrc b/boards/qt-py-ch32v203/.envrc index 0c8c936..b4016a5 100644 --- a/boards/qt-py-ch32v203/.envrc +++ b/boards/qt-py-ch32v203/.envrc @@ -3,4 +3,3 @@ if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then fi use flake ../..#qt-py-ch32v203 - From 74e5c49a2c509bf82cb7632ad8331f67b6a557ff Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 19 Mar 2025 11:46:45 -0500 Subject: [PATCH 15/17] Try removing CARGO_TARGET_THUMBV6M_NONE_EABI_RUSTFLAGS --- flake.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/flake.nix b/flake.nix index 0802fef..09f6fb5 100644 --- a/flake.nix +++ b/flake.nix @@ -206,7 +206,6 @@ # See https://github.com/ipetkov/crane/issues/444 # Should I symlink instead of copy? # ln --symbolic ${./memory.x} memory.x - CARGO_TARGET_THUMBV6M_NONE_EABI_RUSTFLAGS = "-C link-arg=--library-path=."; extraDummyScript = '' cp --archive ${./boards/pico/memory.x} $out/memory.x rm --force --recursive $out/src/bin/crane-dummy-* From 8ee1f5049192eb91afac6951f14646f378fa42cf Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 19 Mar 2025 11:49:35 -0500 Subject: [PATCH 16/17] Remove CARGO_TARGET_RISCV32IMAC_UNKNOWN_NONE_ELF_RUSTFLAGS --- flake.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/flake.nix b/flake.nix index 09f6fb5..5cf3f3b 100644 --- a/flake.nix +++ b/flake.nix @@ -283,7 +283,6 @@ # See https://github.com/ipetkov/crane/issues/444 # Should I symlink instead of copy? # ln --symbolic ${./memory.x} memory.x - CARGO_TARGET_RISCV32IMAC_UNKNOWN_NONE_ELF_RUSTFLAGS = "-C link-arg=--library-path=."; extraDummyScript = '' cp --archive ${./boards/qt-py-ch32v203/memory.x} $out/memory.x rm --force --recursive $out/src/bin/crane-dummy-* From da0b9baec8e52d172b8a631eb921555a79a5dfdb Mon Sep 17 00:00:00 2001 From: Jordan Williams Date: Wed, 19 Mar 2025 11:50:18 -0500 Subject: [PATCH 17/17] Try removing flip-link from Nix --- flake.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/flake.nix b/flake.nix index 5cf3f3b..c072451 100644 --- a/flake.nix +++ b/flake.nix @@ -212,10 +212,6 @@ ''; cargoExtraArgs = "--target thumbv6m-none-eabi"; - - nativeBuildInputs = with pkgs; [ - flip-link - ]; }; cargoArtifacts = craneLib.buildDepsOnly commonArgs;