Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 46 additions & 61 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 14 additions & 10 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ embassy-sync = { version = "0.7" }
embassy-usb = { version = "0.5", default-features = false }
embassy-usb-driver = { version = "0.2" }
embassy-futures = { version = "0.1" }
embassy-time = "0.4"
embassy-time = "0.5"
log = "0.4"
rtt-target = "0.6"
heapless = "0.8"
Expand All @@ -23,8 +23,8 @@ cortex-m = { version = "0.7.6", features = ["inline-asm", "critical-section-sing
# set-vtor and set-sp necessary when using xspiloader
cortex-m-rt = { version = "0.7.0", features = ["set-sp", "set-vtor"] }
panic-probe = { version = "1", features = ["print-rtt"] }
embassy-executor = { version = "0.8", features = ["executor-thread"] }
embassy-stm32 = { version = "0.3", features = ["time-driver-any", "stm32h7s3l8", "unstable-pac", "log"] }
embassy-executor = { version = "0.9", features = ["executor-thread"] }
embassy-stm32 = { version = "0.4", features = ["time-driver-any", "stm32h7s3l8", "unstable-pac", "log"] }

[dependencies]
embassy-executor = { workspace = true, features = [
Expand Down Expand Up @@ -63,15 +63,19 @@ num-derive = { version = "0.4", default-features = false }
num-traits = { version = "0.2", default-features = false }

[patch.crates-io]
# Patches since releases:
# "Fix vrefbuf trace with log" https://github.com/embassy-rs/embassy/pull/4553
embassy-stm32 = { git = "https://github.com/embassy-rs/embassy/", rev = "a5cb04bdab602bc3bd056d254a9d61cad55bd967" }
embassy-usb-synopsys-otg = { git = "https://github.com/embassy-rs/embassy/", rev = "a5cb04bdab602bc3bd056d254a9d61cad55bd967" }
# "otg: Use chunks_exact for more efficient rx copy" https://github.com/embassy-rs/embassy/pull/4566
embassy-stm32 = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }
embassy-usb-synopsys-otg = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }

embassy-time = { git = "https://github.com/embassy-rs/embassy/", rev = "a5cb04bdab602bc3bd056d254a9d61cad55bd967" }
embassy-time-driver = { git = "https://github.com/embassy-rs/embassy/", rev = "a5cb04bdab602bc3bd056d254a9d61cad55bd967" }
embassy-usb = { git = "https://github.com/embassy-rs/embassy/", rev = "a5cb04bdab602bc3bd056d254a9d61cad55bd967" }
embassy-usb-driver = { git = "https://github.com/embassy-rs/embassy/", rev = "a5cb04bdab602bc3bd056d254a9d61cad55bd967" }
embassy-executor = { git = "https://github.com/embassy-rs/embassy/", rev = "a5cb04bdab602bc3bd056d254a9d61cad55bd967" }
embassy-time = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }
embassy-time-driver = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }
embassy-usb = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }
embassy-usb-driver = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }
embassy-executor = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }
embassy-sync = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }
embassy-futures = { git = "https://github.com/embassy-rs/embassy/", rev = "25e0ebf5206fa2e2906f5826c0b1587739f628d8" }


# Updated for embassy-usb api change
Expand Down
57 changes: 33 additions & 24 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
#[allow(unused)]
use log::{debug, error, info, trace, warn};

use core::mem::MaybeUninit;

use heapless::Vec;
use static_cell::StaticCell;

Expand Down Expand Up @@ -251,44 +253,47 @@ fn run(low_spawner: Spawner, logger: &'static multilog::MultiLog) {

let (usb_sender, usb_receiver) = mctpusb.split();

let echo = echo_task(router, &BENCH_REQUEST);
let timeout = timeout_task(router);
let control = control_task(router, &CONTROL_NOTIFY);
let usb_send_loop = usb::usb_send_task(mctp_usb_bottom, usb_sender);
let echo = echo_task(router, &BENCH_REQUEST).unwrap();
let timeout = timeout_task(router).unwrap();
let control = control_task(router, &CONTROL_NOTIFY).unwrap();
let usb_send_loop =
usb::usb_send_task(mctp_usb_bottom, usb_sender).unwrap();
let usb_recv_loop =
usb::usb_recv_task(router, usb_receiver, Routes::USB_INDEX);
let app_loop = usbnvme_app_task(&USB_NOTIFY, &CONTROL_NOTIFY, &PEER_NOTIFY);

low_spawner.must_spawn(blink_task(led));
medium_spawner.must_spawn(echo);
medium_spawner.must_spawn(timeout);
medium_spawner.must_spawn(usb_recv_loop);
medium_spawner.must_spawn(control);
medium_spawner.must_spawn(app_loop);
usb::usb_recv_task(router, usb_receiver, Routes::USB_INDEX).unwrap();
let app_loop =
usbnvme_app_task(&USB_NOTIFY, &CONTROL_NOTIFY, &PEER_NOTIFY).unwrap();

low_spawner.spawn(blink_task(led).unwrap());
medium_spawner.spawn(echo);
medium_spawner.spawn(timeout);
medium_spawner.spawn(usb_recv_loop);
medium_spawner.spawn(control);
medium_spawner.spawn(app_loop);
// high priority for usb send
high_spawner.must_spawn(usb_send_loop);
high_spawner.spawn(usb_send_loop);

#[cfg(feature = "nvme-mi")]
{
let nvmemi = nvme_mi_task(router);
medium_spawner.must_spawn(nvmemi);
let nvmemi = nvme_mi_task(router).unwrap();
medium_spawner.spawn(nvmemi);
}
#[cfg(feature = "pldm-file")]
{
let pldm_file = pldm::pldm_file_task(router, &PEER_NOTIFY, hash);
medium_spawner.must_spawn(pldm_file);
let pldm_file =
pldm::pldm_file_task(router, &PEER_NOTIFY, hash).unwrap();
medium_spawner.spawn(pldm_file);
}
#[cfg(feature = "mctp-bench")]
{
let bench = bench_task(router, &BENCH_REQUEST);
low_spawner.must_spawn(bench);
let bench = bench_task(router, &BENCH_REQUEST).unwrap();
low_spawner.spawn(bench);
}
let _ = logger;
#[cfg(feature = "log-usbserial")]
{
let (sender, _) = usbserial.split();
let seriallog = multilog::log_usbserial_task(sender, logger);
low_spawner.must_spawn(seriallog);
let seriallog = multilog::log_usbserial_task(sender, logger).unwrap();
low_spawner.spawn(seriallog);
}
}

Expand Down Expand Up @@ -454,8 +459,12 @@ async fn bench_task(
) -> ! {
debug!("mctp-bench send running");

static BUF: StaticCell<[u8; BENCH_LEN]> = StaticCell::new();
let buf = BUF.init_with(|| [0u8; BENCH_LEN]);
#[link_section = ".sram2_uninit"]
static mut BUF: MaybeUninit<StaticCell<[u8; BENCH_LEN]>> =
MaybeUninit::uninit();
#[allow(static_mut_refs)]
let buf = unsafe { BUF.write(StaticCell::new()) };
let buf = buf.init_with(|| [0u8; _]);

let mut bench = ccvendor::MctpBench::new(buf).unwrap();

Expand Down
Loading