commit
2e7a2b6127
@ -109,7 +109,7 @@ embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "7703f
|
|||||||
embassy-stm32 = { git = "https://github.com/embassy-rs/embassy", rev = "7703f47c1ecac029f603033b7977d9a2becef48c" }
|
embassy-stm32 = { git = "https://github.com/embassy-rs/embassy", rev = "7703f47c1ecac029f603033b7977d9a2becef48c" }
|
||||||
----
|
----
|
||||||
|
|
||||||
There are a few other dependencies we need to build the project, but fortunately they’re much simpler to install. Copy their lines from the example `Cargo.toml` to the the `[dependencies]` section in the new `Cargo.toml`:
|
There are a few other dependencies we need to build the project, but fortunately they’re much simpler to install. Copy their lines from the example `Cargo.toml` to the `[dependencies]` section in the new `Cargo.toml`:
|
||||||
|
|
||||||
[source,toml]
|
[source,toml]
|
||||||
----
|
----
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
# ESP-Hosted `embassy-net` integration
|
# ESP-Hosted `embassy-net` integration
|
||||||
|
|
||||||
[`embassy-net`](https://crates.io/crates/embassy-net) integration for Espressif SoCs running the the [ESP-Hosted](https://github.com/espressif/esp-hosted) stack.
|
[`embassy-net`](https://crates.io/crates/embassy-net) integration for Espressif SoCs running the [ESP-Hosted](https://github.com/espressif/esp-hosted) stack.
|
||||||
|
|
||||||
See [`examples`](https://github.com/embassy-rs/embassy/tree/main/examples/nrf52840) directory for usage examples with the nRF52840.
|
See [`examples`](https://github.com/embassy-rs/embassy/tree/main/examples/nrf52840) directory for usage examples with the nRF52840.
|
||||||
|
|
||||||
|
|||||||
@ -40,7 +40,7 @@ where
|
|||||||
// using a wrong divisor, but we'll restore the divisor and result ourselves correctly.
|
// using a wrong divisor, but we'll restore the divisor and result ourselves correctly.
|
||||||
// This sets DIRTY, so any interruptor will save the state.
|
// This sets DIRTY, so any interruptor will save the state.
|
||||||
sio.div().udividend().write_value(dividend);
|
sio.div().udividend().write_value(dividend);
|
||||||
// If we are interrupted here, the the interruptor may start the calculation using
|
// If we are interrupted here, the interruptor may start the calculation using
|
||||||
// incorrectly signed inputs, but we'll restore the result ourselves.
|
// incorrectly signed inputs, but we'll restore the result ourselves.
|
||||||
// This sets DIRTY, so any interruptor will save the state.
|
// This sets DIRTY, so any interruptor will save the state.
|
||||||
sio.div().udivisor().write_value(divisor);
|
sio.div().udivisor().write_value(divisor);
|
||||||
|
|||||||
@ -335,10 +335,9 @@ core::arch::global_asm!(
|
|||||||
// result ourselves correctly. This sets DIRTY, so any interruptor will
|
// result ourselves correctly. This sets DIRTY, so any interruptor will
|
||||||
// save the state.
|
// save the state.
|
||||||
"str r3, [r2, #0x060]", // DIV_UDIVIDEND
|
"str r3, [r2, #0x060]", // DIV_UDIVIDEND
|
||||||
// If we are interrupted here, the the interruptor may start the
|
// If we are interrupted here, the interruptor may start the calculation
|
||||||
// calculation using incorrectly signed inputs, but we'll restore the
|
// using incorrectly signed inputs, but we'll restore the result ourselves.
|
||||||
// result ourselves. This sets DIRTY, so any interruptor will save the
|
// This sets DIRTY, so any interruptor will save the state.
|
||||||
// state.
|
|
||||||
"str r4, [r2, #0x064]", // DIV_UDIVISOR
|
"str r4, [r2, #0x064]", // DIV_UDIVISOR
|
||||||
// If we are interrupted here, the interruptor will have restored
|
// If we are interrupted here, the interruptor will have restored
|
||||||
// everything but the quotient may be wrongly signed. If the calculation
|
// everything but the quotient may be wrongly signed. If the calculation
|
||||||
|
|||||||
@ -910,7 +910,7 @@ impl<'d, T: Instance, Dma: SdmmcDma<T> + 'd> Sdmmc<'d, T, Dma> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn get_scr(&mut self, card: &mut Card) -> Result<(), Error> {
|
async fn get_scr(&mut self, card: &mut Card) -> Result<(), Error> {
|
||||||
// Read the the 64-bit SCR register
|
// Read the 64-bit SCR register
|
||||||
Self::cmd(Cmd::set_block_length(8), false)?; // CMD16
|
Self::cmd(Cmd::set_block_length(8), false)?; // CMD16
|
||||||
Self::cmd(Cmd::app_cmd(card.rca << 16), false)?;
|
Self::cmd(Cmd::app_cmd(card.rca << 16), false)?;
|
||||||
|
|
||||||
|
|||||||
@ -747,7 +747,7 @@ impl<'d> Drop for BufferedUartRx<'d> {
|
|||||||
unsafe {
|
unsafe {
|
||||||
state.rx_buf.deinit();
|
state.rx_buf.deinit();
|
||||||
|
|
||||||
// TX is inactive if the the buffer is not available.
|
// TX is inactive if the buffer is not available.
|
||||||
// We can now unregister the interrupt handler
|
// We can now unregister the interrupt handler
|
||||||
if state.tx_buf.len() == 0 {
|
if state.tx_buf.len() == 0 {
|
||||||
self.info.interrupt.disable();
|
self.info.interrupt.disable();
|
||||||
@ -768,7 +768,7 @@ impl<'d> Drop for BufferedUartTx<'d> {
|
|||||||
unsafe {
|
unsafe {
|
||||||
state.tx_buf.deinit();
|
state.tx_buf.deinit();
|
||||||
|
|
||||||
// RX is inactive if the the buffer is not available.
|
// RX is inactive if the buffer is not available.
|
||||||
// We can now unregister the interrupt handler
|
// We can now unregister the interrupt handler
|
||||||
if state.rx_buf.len() == 0 {
|
if state.rx_buf.len() == 0 {
|
||||||
self.info.interrupt.disable();
|
self.info.interrupt.disable();
|
||||||
|
|||||||
@ -140,7 +140,7 @@ pub struct WebUsb<'d, D: Driver<'d>> {
|
|||||||
impl<'d, D: Driver<'d>> WebUsb<'d, D> {
|
impl<'d, D: Driver<'d>> WebUsb<'d, D> {
|
||||||
/// Builder for the WebUSB capability implementation.
|
/// Builder for the WebUSB capability implementation.
|
||||||
///
|
///
|
||||||
/// Pass in a USB `Builder`, a `State`, which holds the the control endpoint state, and a `Config` for the WebUSB configuration.
|
/// Pass in a USB `Builder`, a `State`, which holds the control endpoint state, and a `Config` for the WebUSB configuration.
|
||||||
pub fn configure(builder: &mut Builder<'d, D>, state: &'d mut State<'d>, config: &'d Config<'d>) {
|
pub fn configure(builder: &mut Builder<'d, D>, state: &'d mut State<'d>, config: &'d Config<'d>) {
|
||||||
let mut func = builder.function(USB_CLASS_VENDOR, USB_SUBCLASS_NONE, USB_PROTOCOL_NONE);
|
let mut func = builder.function(USB_CLASS_VENDOR, USB_SUBCLASS_NONE, USB_PROTOCOL_NONE);
|
||||||
let mut iface = func.interface();
|
let mut iface = func.interface();
|
||||||
|
|||||||
@ -120,7 +120,7 @@ pub trait Handler {
|
|||||||
/// # Returns
|
/// # Returns
|
||||||
///
|
///
|
||||||
/// If you didn't handle this request (for example if it's for the wrong interface), return
|
/// If you didn't handle this request (for example if it's for the wrong interface), return
|
||||||
/// `None`. In this case, the the USB stack will continue calling the other handlers, to see
|
/// `None`. In this case, the USB stack will continue calling the other handlers, to see
|
||||||
/// if another handles it.
|
/// if another handles it.
|
||||||
///
|
///
|
||||||
/// If you did, return `Some` with either `Accepted` or `Rejected`. This will make the USB stack
|
/// If you did, return `Some` with either `Accepted` or `Rejected`. This will make the USB stack
|
||||||
@ -142,7 +142,7 @@ pub trait Handler {
|
|||||||
/// # Returns
|
/// # Returns
|
||||||
///
|
///
|
||||||
/// If you didn't handle this request (for example if it's for the wrong interface), return
|
/// If you didn't handle this request (for example if it's for the wrong interface), return
|
||||||
/// `None`. In this case, the the USB stack will continue calling the other handlers, to see
|
/// `None`. In this case, the USB stack will continue calling the other handlers, to see
|
||||||
/// if another handles it.
|
/// if another handles it.
|
||||||
///
|
///
|
||||||
/// If you did, return `Some` with either `Accepted` or `Rejected`. This will make the USB stack
|
/// If you did, return `Some` with either `Accepted` or `Rejected`. This will make the USB stack
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user