From b6d9a71b59be7eb7c6989271c301660614fc0974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Hlusi=C4=8Dka?= Date: Tue, 3 Feb 2026 00:27:20 +0100 Subject: [PATCH] Fix build profiles --- firmware/Cargo.lock | 1 + firmware/Cargo.toml | 19 ++++++++++++++++++ firmware/acid-firmware/.cargo/config.toml | 4 ++-- firmware/acid-firmware/Cargo.toml | 22 --------------------- firmware/acid-firmware/README.md | 11 +++++++++++ firmware/acid-firmware/src/ffi/inout/mod.rs | 6 +++++- firmware/libsodium-compile.sh | 0 firmware/libxkbcommon-compile.sh | 0 firmware/redefine-syms.sh | 0 firmware/spectre-api-compile.sh | 0 10 files changed, 38 insertions(+), 25 deletions(-) mode change 100644 => 100755 firmware/libsodium-compile.sh mode change 100644 => 100755 firmware/libxkbcommon-compile.sh mode change 100644 => 100755 firmware/redefine-syms.sh mode change 100644 => 100755 firmware/spectre-api-compile.sh diff --git a/firmware/Cargo.lock b/firmware/Cargo.lock index 2fa8642..82c445f 100644 --- a/firmware/Cargo.lock +++ b/firmware/Cargo.lock @@ -6853,6 +6853,7 @@ checksum = "a0f368519fc6c85fc1afdb769fb5a51123f6158013e143656e25a3485a0d401c" [[package]] name = "spectre-api-sys" version = "0.1.0" +source = "git+https://github.com/Limeth/spectre-api-sys?rev=9e844eb056c3dfee8286ac21ec40fa689a8b8aa2#9e844eb056c3dfee8286ac21ec40fa689a8b8aa2" dependencies = [ "bindgen", "cc", diff --git a/firmware/Cargo.toml b/firmware/Cargo.toml index dc9431b..61da506 100644 --- a/firmware/Cargo.toml +++ b/firmware/Cargo.toml @@ -5,3 +5,22 @@ default-members = [] [workspace.dependencies] spectre-api-sys = { git = "https://github.com/Limeth/spectre-api-sys", rev = "9e844eb056c3dfee8286ac21ec40fa689a8b8aa2" } + + +[profile.dev.package.esp-storage] +opt-level = 3 + +[profile.dev] +# Rust debug is too slow. +# For debug builds always builds with some optimization +opt-level = "s" +lto = 'thin' + +[profile.release] +codegen-units = 1 # LLVM can perform better optimizations using a single thread +debug = 2 +debug-assertions = false +incremental = false +lto = 'thin' +opt-level = 3 +overflow-checks = false diff --git a/firmware/acid-firmware/.cargo/config.toml b/firmware/acid-firmware/.cargo/config.toml index df26a91..d180391 100644 --- a/firmware/acid-firmware/.cargo/config.toml +++ b/firmware/acid-firmware/.cargo/config.toml @@ -1,6 +1,6 @@ [target.'cfg(all(any(target_arch = "riscv32", target_arch = "xtensa"), target_os = "none"))'] -# runner = "espflash flash --monitor" -runner = "probe-rs run --chip esp32s3 --preverify" +runner = "espflash flash --monitor" +# runner = "probe-rs run --chip esp32s3 --preverify" [build] target = "xtensa-esp32s3-none-elf" diff --git a/firmware/acid-firmware/Cargo.toml b/firmware/acid-firmware/Cargo.toml index 897d112..9c29018 100644 --- a/firmware/acid-firmware/Cargo.toml +++ b/firmware/acid-firmware/Cargo.toml @@ -126,25 +126,3 @@ indoc = "2.0.7" name = "acid-firmware" test = false bench = false - -[profile.release-with-debug] -inherits = "release" -debug = true - - -[profile.dev.package.esp-storage] -opt-level = 3 - -[profile.dev] -# Rust debug is too slow. -# For debug builds always builds with some optimization -opt-level = "s" - -[profile.release] -codegen-units = 1 # LLVM can perform better optimizations using a single thread -debug = 2 -debug-assertions = false -incremental = false -lto = 'thin' -opt-level = 3 -overflow-checks = false diff --git a/firmware/acid-firmware/README.md b/firmware/acid-firmware/README.md index d0ded37..9e49b5c 100644 --- a/firmware/acid-firmware/README.md +++ b/firmware/acid-firmware/README.md @@ -46,6 +46,17 @@ Then compile the firmware with: $env:XKBCOMMON_BUILD_DIR="libxkbcommon/build-debug"; cargo build ``` +## Debugging via alternative UART pins + +Connect your serial debugger's TX to GPIO5 and its RX to GPIO12. +On Linux, listen to the serial stream using: + +```sh +tio -m INLCRNL /dev/ttyUSB1 +``` + +On Windows, use PuTTY with a baudrate of 115200. + ### Creating keymaps To generate an English (US) keymap, the following command may be used: diff --git a/firmware/acid-firmware/src/ffi/inout/mod.rs b/firmware/acid-firmware/src/ffi/inout/mod.rs index ee5b2fc..bad0665 100644 --- a/firmware/acid-firmware/src/ffi/inout/mod.rs +++ b/firmware/acid-firmware/src/ffi/inout/mod.rs @@ -26,7 +26,11 @@ pub mod file; pub unsafe extern "C" fn __xkbc_fopen(filename: *const c_char, mode: *const c_char) -> *mut FILE { warn!( "The xkbcommon library is attempting to open a file at path: {:?}", - unsafe { CStr::from_ptr(filename) } + if filename.is_null() { + None + } else { + Some(unsafe { CStr::from_ptr(filename) }) + } ); null_mut() } diff --git a/firmware/libsodium-compile.sh b/firmware/libsodium-compile.sh old mode 100644 new mode 100755 diff --git a/firmware/libxkbcommon-compile.sh b/firmware/libxkbcommon-compile.sh old mode 100644 new mode 100755 diff --git a/firmware/redefine-syms.sh b/firmware/redefine-syms.sh old mode 100644 new mode 100755 diff --git a/firmware/spectre-api-compile.sh b/firmware/spectre-api-compile.sh old mode 100644 new mode 100755