Compare commits
No commits in common. "d6213d2498462800de795324aa6eb08232431033" and "31b5d19127814c6c0280e0e9016cd0301d572f2e" have entirely different histories.
d6213d2498
...
31b5d19127
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,8 +1,5 @@
|
|||||||
# Cargo
|
# Cargo
|
||||||
target/
|
target/
|
||||||
|
|
||||||
# Firmware blobs
|
|
||||||
cyw43-firmware/
|
|
||||||
|
|
||||||
# VSCode
|
# VSCode
|
||||||
.vscode
|
.vscode
|
||||||
|
1734
Cargo.lock
generated
1734
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
20
Cargo.toml
20
Cargo.toml
@ -9,7 +9,7 @@ edition = "2021"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# Embassy
|
# Embassy
|
||||||
embassy-rp = { version = "0.4.0", features = [
|
embassy-rp = { version = "0.3.1", features = [
|
||||||
"rp235xa",
|
"rp235xa",
|
||||||
"binary-info",
|
"binary-info",
|
||||||
"critical-section-impl",
|
"critical-section-impl",
|
||||||
@ -24,19 +24,12 @@ embassy-executor = { version = "0.7.0", features = [
|
|||||||
embassy-time = "0.4.0"
|
embassy-time = "0.4.0"
|
||||||
embassy-embedded-hal = "0.3.0"
|
embassy-embedded-hal = "0.3.0"
|
||||||
embassy-futures = "0.1.1"
|
embassy-futures = "0.1.1"
|
||||||
embassy-sync = "0.6.2" # TODO: Update when embassy-embedded-hal on crates.io is tracking 0.7.0
|
embassy-sync = "0.6.2"
|
||||||
trouble-host = { version = "0.1.0", default-features = false, features = [
|
|
||||||
"peripheral",
|
|
||||||
"gatt",
|
|
||||||
"derive",
|
|
||||||
] }
|
|
||||||
|
|
||||||
# System
|
# System
|
||||||
cortex-m-rt = "0.7.5"
|
cortex-m-rt = "0.7.5"
|
||||||
cortex-m = "0.7.7"
|
cortex-m = "0.7.7"
|
||||||
critical-section = "1.2.0"
|
critical-section = "1.2.0"
|
||||||
cyw43 = { version = "0.3.0", features = ["bluetooth"] }
|
|
||||||
cyw43-pio = "0.4.0"
|
|
||||||
rtt-target = "0.6.1"
|
rtt-target = "0.6.1"
|
||||||
|
|
||||||
# embedded-graphics
|
# embedded-graphics
|
||||||
@ -51,16 +44,9 @@ display-interface-spi = "0.5.0"
|
|||||||
# Extra
|
# Extra
|
||||||
static_cell = "2.1.0"
|
static_cell = "2.1.0"
|
||||||
heapless = "0.8.0"
|
heapless = "0.8.0"
|
||||||
circular-buffer = { version = "1.1.0", default-features = false }
|
circular-buffer = { version = "1.0.0", default-features = false }
|
||||||
fixed = "1.29.0"
|
fixed = "1.29.0"
|
||||||
|
|
||||||
[build-dependencies]
|
|
||||||
reqwest = { version = "0.12.20", features = ["blocking"] }
|
|
||||||
|
|
||||||
[features]
|
|
||||||
# Skips downloading the Wi-Fi & Bluetooth chipset firmware, assumes that it is in `./cyw43-firmware`
|
|
||||||
skip-cyw43-firmware = []
|
|
||||||
|
|
||||||
[profile.dev]
|
[profile.dev]
|
||||||
opt-level = "s"
|
opt-level = "s"
|
||||||
|
|
||||||
|
41
build.rs
41
build.rs
@ -6,9 +6,6 @@ fn main() {
|
|||||||
let out = PathBuf::from(std::env::var_os("OUT_DIR").unwrap());
|
let out = PathBuf::from(std::env::var_os("OUT_DIR").unwrap());
|
||||||
println!("cargo:rustc-link-search={}", out.display());
|
println!("cargo:rustc-link-search={}", out.display());
|
||||||
|
|
||||||
#[cfg(not(feature = "skip-cyw43-firmware"))]
|
|
||||||
download_cyw43_firmware();
|
|
||||||
|
|
||||||
// ARM build
|
// ARM build
|
||||||
|
|
||||||
let memory_x = include_bytes!("memory.x");
|
let memory_x = include_bytes!("memory.x");
|
||||||
@ -25,41 +22,3 @@ fn main() {
|
|||||||
|
|
||||||
println!("cargo:rerun-if-changed=build.rs");
|
println!("cargo:rerun-if-changed=build.rs");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Downloads to firmware for the Wi-Fi / Bluetooth chipset on the RPi Pico 2 W
|
|
||||||
#[cfg(not(feature = "skip-cyw43-firmware"))]
|
|
||||||
fn download_cyw43_firmware() {
|
|
||||||
let download_folder = "cyw43-firmware";
|
|
||||||
let url_base = "https://raw.githubusercontent.com/embassy-rs/embassy/refs/tags/cyw43-v0.3.0/cyw43-firmware";
|
|
||||||
let file_names = [
|
|
||||||
"43439A0.bin",
|
|
||||||
"43439A0_btfw.bin",
|
|
||||||
"43439A0_clm.bin",
|
|
||||||
"LICENSE-permissive-binary-license-1.0.txt",
|
|
||||||
"README.md",
|
|
||||||
];
|
|
||||||
|
|
||||||
println!("cargo:rerun-if-changed=build.rs");
|
|
||||||
println!("cargo:rerun-if-changed={}", download_folder);
|
|
||||||
std::fs::create_dir_all(download_folder).expect("failed to create firmware directory");
|
|
||||||
|
|
||||||
// download each file into the directory "cyw43-firmware"
|
|
||||||
for file in file_names {
|
|
||||||
let url = format!("{}/{}", url_base, file);
|
|
||||||
// only fetch if it doesn't exist
|
|
||||||
if std::path::Path::new(download_folder).join(file).exists() {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
match reqwest::blocking::get(&url) {
|
|
||||||
Ok(response) => {
|
|
||||||
let content = response.bytes().expect("failed to read file content");
|
|
||||||
let file_path = PathBuf::from(download_folder).join(file);
|
|
||||||
std::fs::write(file_path, &content).expect("failed to write file");
|
|
||||||
}
|
|
||||||
Err(err) => panic!(
|
|
||||||
"failed to download the cyw43 firmware from {}: {}, required for BLE support",
|
|
||||||
url, err
|
|
||||||
),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user