Merge branch 'master' into master
This commit is contained in:
Binary file not shown.
@ -25,7 +25,7 @@ pub const ERASE_SIZE: usize = 4096;
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
|
||||
pub enum Error {
|
||||
/// Opration using a location not in flash.
|
||||
/// Operation using a location not in flash.
|
||||
OutOfBounds,
|
||||
/// Unaligned operation or using unaligned buffers.
|
||||
Unaligned,
|
||||
|
@ -551,7 +551,7 @@ impl<'d, T: Instance + 'd, M: Mode> I2c<'d, T, M> {
|
||||
|
||||
if abort_reason.is_err() || (send_stop && last) {
|
||||
// If the transaction was aborted or if it completed
|
||||
// successfully wait until the STOP condition has occured.
|
||||
// successfully wait until the STOP condition has occurred.
|
||||
|
||||
while !p.ic_raw_intr_stat().read().stop_det() {}
|
||||
|
||||
|
@ -34,3 +34,9 @@ declare!(ADC_IRQ_FIFO);
|
||||
declare!(I2C0_IRQ);
|
||||
declare!(I2C1_IRQ);
|
||||
declare!(RTC_IRQ);
|
||||
declare!(SWI_IRQ_0);
|
||||
declare!(SWI_IRQ_1);
|
||||
declare!(SWI_IRQ_2);
|
||||
declare!(SWI_IRQ_3);
|
||||
declare!(SWI_IRQ_4);
|
||||
declare!(SWI_IRQ_5);
|
||||
|
@ -131,9 +131,32 @@ embassy_hal_common::peripherals! {
|
||||
WATCHDOG,
|
||||
}
|
||||
|
||||
#[link_section = ".boot2"]
|
||||
#[used]
|
||||
static BOOT2: [u8; 256] = *include_bytes!("boot2.bin");
|
||||
macro_rules! select_bootloader {
|
||||
( $( $feature:literal => $loader:ident, )+ default => $default:ident ) => {
|
||||
$(
|
||||
#[cfg(feature = $feature)]
|
||||
#[link_section = ".boot2"]
|
||||
#[used]
|
||||
static BOOT2: [u8; 256] = rp2040_boot2::$loader;
|
||||
)*
|
||||
|
||||
#[cfg(not(any( $( feature = $feature),* )))]
|
||||
#[link_section = ".boot2"]
|
||||
#[used]
|
||||
static BOOT2: [u8; 256] = rp2040_boot2::$default;
|
||||
}
|
||||
}
|
||||
|
||||
select_bootloader! {
|
||||
"boot2-at25sf128a" => BOOT_LOADER_AT25SF128A,
|
||||
"boot2-gd25q64cs" => BOOT_LOADER_GD25Q64CS,
|
||||
"boot2-generic-03h" => BOOT_LOADER_GENERIC_03H,
|
||||
"boot2-is25lp080" => BOOT_LOADER_IS25LP080,
|
||||
"boot2-ram-memcpy" => BOOT_LOADER_RAM_MEMCPY,
|
||||
"boot2-w25q080" => BOOT_LOADER_W25Q080,
|
||||
"boot2-w25x10cl" => BOOT_LOADER_W25X10CL,
|
||||
default => BOOT_LOADER_W25Q080
|
||||
}
|
||||
|
||||
pub mod config {
|
||||
use crate::clocks::ClockConfig;
|
||||
|
@ -544,7 +544,7 @@ pub(crate) unsafe fn on_interrupt<T: Instance>(_: *mut ()) {
|
||||
s.rx_waker.wake();
|
||||
}
|
||||
// Disable any further RX interrupts when the buffer becomes full or
|
||||
// errors have occured. this lets us buffer additional errors in the
|
||||
// errors have occurred. This lets us buffer additional errors in the
|
||||
// fifo without needing more error storage locations, and most applications
|
||||
// will want to do a full reset of their uart state anyway once an error
|
||||
// has happened.
|
||||
|
@ -231,7 +231,7 @@ impl<'d, T: Instance> UartTx<'d, T, Async> {
|
||||
}
|
||||
|
||||
impl<'d, T: Instance, M: Mode> UartRx<'d, T, M> {
|
||||
/// Create a new DMA-enabled UART which can only recieve data
|
||||
/// Create a new DMA-enabled UART which can only receive data
|
||||
pub fn new(
|
||||
_uart: impl Peripheral<P = T> + 'd,
|
||||
rx: impl Peripheral<P = impl RxPin<T>> + 'd,
|
||||
@ -690,7 +690,7 @@ impl<'d, T: Instance, M: Mode> Uart<'d, T, M> {
|
||||
self.tx.send_break(bits).await
|
||||
}
|
||||
|
||||
/// Split the Uart into a transmitter and receiver, which is particuarly
|
||||
/// Split the Uart into a transmitter and receiver, which is particularly
|
||||
/// useful when having two tasks correlating to transmitting and receiving.
|
||||
pub fn split(self) -> (UartTx<'d, T, M>, UartRx<'d, T, M>) {
|
||||
(self.tx, self.rx)
|
||||
|
Reference in New Issue
Block a user