Replaced exclude_firmwares feature with include_firmwares and added invert_rx feature

This commit is contained in:
Dreaded_X 2023-09-13 02:50:04 +02:00
parent eed8db4863
commit 419a960500
Signed by: Dreaded_X
GPG Key ID: FA5F485356B0D2D4
3 changed files with 14 additions and 10 deletions

View File

@ -114,7 +114,8 @@ dotenvy = "0.15"
[features] [features]
# With this feature enabled the cyw43 fiwmares are not included in the build and need to be manually flashed # With this feature enabled the cyw43 fiwmares are not included in the build and need to be manually flashed
# This helps speed up development # This helps speed up development
exclude_firmwares = [] include_firmwares = []
invert_rx = []
[profile.release] [profile.release]
debug = true debug = true

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
mkdir -p target/firmware mkdir -p target/firmware
cargo objcopy --release -- -O binary target/firmware/firmware cargo objcopy --release --features=include_firmwares,invert_rx -- -O binary target/firmware/firmware
shasum -a 512 -b target/firmware/firmware | dd ibs=128 count=1 | xxd -p -r > target/firmware/checksum shasum -a 512 -b target/firmware/firmware | dd ibs=128 count=1 | xxd -p -r > target/firmware/checksum
signify -S -m target/firmware/checksum -s ~/Projects/crypt/R0/private/keys/firmware/pico_p1.sec -x target/firmware/checksum.sig signify -S -m target/firmware/checksum -s ~/Projects/crypt/R0/private/keys/firmware/pico_p1.sec -x target/firmware/checksum.sig
tail -n1 target/firmware/checksum.sig | base64 -d -i | dd ibs=10 skip=1 > target/firmware/signed tail -n1 target/firmware/checksum.sig | base64 -d -i | dd ibs=10 skip=1 > target/firmware/signed

View File

@ -177,7 +177,7 @@ async fn uart_rx_task(
/// Get the cyw43 firmware blobs /// Get the cyw43 firmware blobs
/// ///
/// # Safety /// # Safety
/// When building with `exclude_firmwares` make sure to flash the firmwares using the following /// When building without `include_firmwares` make sure to flash the firmwares using the following
/// commands: /// commands:
/// ```bash /// ```bash
/// probe-rs download firmware/43439A0.bin --format bin --chip RP2040 --base-address 0x101BE000 /// probe-rs download firmware/43439A0.bin --format bin --chip RP2040 --base-address 0x101BE000
@ -185,7 +185,12 @@ async fn uart_rx_task(
/// ``` /// ```
unsafe fn get_firmware() -> (&'static [u8], &'static [u8]) { unsafe fn get_firmware() -> (&'static [u8], &'static [u8]) {
cfg_if::cfg_if! { cfg_if::cfg_if! {
if #[cfg(feature = "exclude_firmwares")] { if #[cfg(feature = "include_firmwares")] {
let fw = include_bytes!("../firmware/43439A0.bin");
let clm = include_bytes!("../firmware/43439A0_clm.bin");
(fw, clm)
} else {
// TODO: It would be nice if it could automatically get the correct size // TODO: It would be nice if it could automatically get the correct size
extern "C" { extern "C" {
#[link_name = "__fw_start"] #[link_name = "__fw_start"]
@ -195,11 +200,6 @@ unsafe fn get_firmware() -> (&'static [u8], &'static [u8]) {
} }
(&fw, &clm) (&fw, &clm)
} else {
let fw = include_bytes!("../firmware/43439A0.bin");
let clm = include_bytes!("../firmware/43439A0_clm.bin");
(fw, clm)
} }
} }
} }
@ -214,7 +214,10 @@ async fn main(spawner: Spawner) {
// === UART === // === UART ===
let mut config = uart::Config::default(); let mut config = uart::Config::default();
config.parity = Parity::ParityNone; config.parity = Parity::ParityNone;
// config.invert_rx = true; #[cfg(feature = "invert_rx")]
{
config.invert_rx = true;
}
let rx = UartRx::new(p.UART0, p.PIN_17, Irqs, p.DMA_CH0, config); let rx = UartRx::new(p.UART0, p.PIN_17, Irqs, p.DMA_CH0, config);