Compare commits
	
		
			6 Commits
		
	
	
		
			embassy-ne
			...
			boot-nrf-s
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 896690c415 | ||
|  | c8eb128a56 | ||
|  | 22ee868f04 | ||
|  | 1c3cf347cb | ||
|  | 13c107e815 | ||
|  | f9d0daad80 | 
							
								
								
									
										4
									
								
								ci.sh
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								ci.sh
									
									
									
									
									
								
							| @@ -91,12 +91,12 @@ cargo batch  \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f417zg,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f423zh,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f427zi,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f429zi,log,exti,time-driver-any,embedded-sdmmc,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f429zi,log,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f437zi,log,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f439zi,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f446ze,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f469zi,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f479zi,defmt,exti,time-driver-any,embedded-sdmmc,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f479zi,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32f730i8,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32h753zi,defmt,exti,time-driver-any,time \ | ||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv7em-none-eabi --features stm32h735zg,defmt,exti,time-driver-any,time \ | ||||
|   | ||||
| @@ -4,6 +4,12 @@ name = "embassy-boot-nrf" | ||||
| version = "0.1.0" | ||||
| description = "Bootloader lib for nRF chips" | ||||
| license = "MIT OR Apache-2.0" | ||||
| repository = "https://github.com/embassy-rs/embassy" | ||||
| categories = [ | ||||
|     "embedded", | ||||
|     "no-std", | ||||
|     "asynchronous", | ||||
| ] | ||||
|  | ||||
| [package.metadata.embassy_docs] | ||||
| src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-nrf-v$VERSION/embassy-boot/nrf/src/" | ||||
| @@ -25,7 +31,7 @@ embedded-storage = "0.3.1" | ||||
| embedded-storage-async = { version = "0.4.1" } | ||||
| cfg-if = "1.0.0" | ||||
|  | ||||
| nrf-softdevice-mbr = { version = "0.1.0", git = "https://github.com/embassy-rs/nrf-softdevice.git", branch = "master", optional = true } | ||||
| nrf-softdevice-mbr = { version = "0.2.0", optional = true } | ||||
|  | ||||
| [features] | ||||
| defmt = [ | ||||
|   | ||||
| @@ -4,6 +4,12 @@ name = "embassy-boot-rp" | ||||
| version = "0.1.0" | ||||
| description = "Bootloader lib for RP2040 chips" | ||||
| license = "MIT OR Apache-2.0" | ||||
| repository = "https://github.com/embassy-rs/embassy" | ||||
| categories = [ | ||||
|     "embedded", | ||||
|     "no-std", | ||||
|     "asynchronous", | ||||
| ] | ||||
|  | ||||
| [package.metadata.embassy_docs] | ||||
| src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-rp-v$VERSION/src/" | ||||
|   | ||||
| @@ -4,6 +4,12 @@ name = "embassy-boot-stm32" | ||||
| version = "0.1.0" | ||||
| description = "Bootloader lib for STM32 chips" | ||||
| license = "MIT OR Apache-2.0" | ||||
| repository = "https://github.com/embassy-rs/embassy" | ||||
| categories = [ | ||||
|     "embedded", | ||||
|     "no-std", | ||||
|     "asynchronous", | ||||
| ] | ||||
|  | ||||
| [package.metadata.embassy_docs] | ||||
| src_base = "https://github.com/embassy-rs/embassy/blob/embassy-boot-nrf-v$VERSION/embassy-boot/stm32/src/" | ||||
|   | ||||
| @@ -6,7 +6,6 @@ keywords = ["embedded", "wiznet", "embassy-net", "embedded-hal-async", "ethernet | ||||
| categories = ["embedded", "hardware-support", "no-std", "network-programming", "async"] | ||||
| license = "MIT OR Apache-2.0" | ||||
| edition = "2021" | ||||
| repository = "https://github.com/embassy-rs/embassy" | ||||
|  | ||||
| [dependencies] | ||||
| embedded-hal = { version = "1.0.0-rc.3" } | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
| //! Wiznet W5100s and W5500 family driver. | ||||
| mod w5500; | ||||
| pub use w5500::W5500; | ||||
| mod w5100s; | ||||
| @@ -46,5 +45,4 @@ pub(crate) mod sealed { | ||||
|     } | ||||
| } | ||||
|  | ||||
| /// Trait for Wiznet chips. | ||||
| pub trait Chip: sealed::Chip {} | ||||
|   | ||||
| @@ -4,7 +4,6 @@ const SOCKET_BASE: u16 = 0x400; | ||||
| const TX_BASE: u16 = 0x4000; | ||||
| const RX_BASE: u16 = 0x6000; | ||||
|  | ||||
| /// Wizard W5100S chip. | ||||
| pub enum W5100S {} | ||||
|  | ||||
| impl super::Chip for W5100S {} | ||||
|   | ||||
| @@ -8,7 +8,6 @@ pub enum RegisterBlock { | ||||
|     RxBuf = 0x03, | ||||
| } | ||||
|  | ||||
| /// Wiznet W5500 chip. | ||||
| pub enum W5500 {} | ||||
|  | ||||
| impl super::Chip for W5500 {} | ||||
|   | ||||
| @@ -1,7 +1,6 @@ | ||||
| #![no_std] | ||||
| #![allow(async_fn_in_trait)] | ||||
| #![doc = include_str!("../README.md")] | ||||
| #![warn(missing_docs)] | ||||
|  | ||||
| pub mod chip; | ||||
| mod device; | ||||
| @@ -48,7 +47,6 @@ pub struct Runner<'d, C: Chip, SPI: SpiDevice, INT: Wait, RST: OutputPin> { | ||||
|  | ||||
| /// You must call this in a background task for the driver to operate. | ||||
| impl<'d, C: Chip, SPI: SpiDevice, INT: Wait, RST: OutputPin> Runner<'d, C, SPI, INT, RST> { | ||||
|     /// Run the driver. | ||||
|     pub async fn run(mut self) -> ! { | ||||
|         let (state_chan, mut rx_chan, mut tx_chan) = self.ch.split(); | ||||
|         let mut tick = Ticker::every(Duration::from_millis(500)); | ||||
|   | ||||
| @@ -56,7 +56,6 @@ cortex-m = "0.7.6" | ||||
| futures = { version = "0.3.17", default-features = false, features = ["async-await"] } | ||||
| rand_core = "0.6.3" | ||||
| sdio-host = "0.5.0" | ||||
| embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } | ||||
| critical-section = "1.1" | ||||
| stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-2234f380f51d16d0398b8e547088b33ea623cc7c" } | ||||
| vcell = "0.1.3" | ||||
|   | ||||
| @@ -1538,53 +1538,3 @@ foreach_peripheral!( | ||||
|         impl Instance for peripherals::$inst {} | ||||
|     }; | ||||
| ); | ||||
|  | ||||
| #[cfg(feature = "embedded-sdmmc")] | ||||
| mod sdmmc_rs { | ||||
|     use embedded_sdmmc::{Block, BlockCount, BlockDevice, BlockIdx}; | ||||
|  | ||||
|     use super::*; | ||||
|  | ||||
|     impl<'d, T: Instance, Dma: SdmmcDma<T>> BlockDevice for Sdmmc<'d, T, Dma> { | ||||
|         type Error = Error; | ||||
|  | ||||
|         async fn read( | ||||
|             &mut self, | ||||
|             blocks: &mut [Block], | ||||
|             start_block_idx: BlockIdx, | ||||
|             _reason: &str, | ||||
|         ) -> Result<(), Self::Error> { | ||||
|             let mut address = start_block_idx.0; | ||||
|  | ||||
|             for block in blocks.iter_mut() { | ||||
|                 let block: &mut [u8; 512] = &mut block.contents; | ||||
|  | ||||
|                 // NOTE(unsafe) Block uses align(4) | ||||
|                 let block = unsafe { &mut *(block as *mut _ as *mut DataBlock) }; | ||||
|                 self.read_block(address, block).await?; | ||||
|                 address += 1; | ||||
|             } | ||||
|             Ok(()) | ||||
|         } | ||||
|  | ||||
|         async fn write(&mut self, blocks: &[Block], start_block_idx: BlockIdx) -> Result<(), Self::Error> { | ||||
|             let mut address = start_block_idx.0; | ||||
|  | ||||
|             for block in blocks.iter() { | ||||
|                 let block: &[u8; 512] = &block.contents; | ||||
|  | ||||
|                 // NOTE(unsafe) DataBlock uses align 4 | ||||
|                 let block = unsafe { &*(block as *const _ as *const DataBlock) }; | ||||
|                 self.write_block(address, block).await?; | ||||
|                 address += 1; | ||||
|             } | ||||
|             Ok(()) | ||||
|         } | ||||
|  | ||||
|         fn num_blocks(&self) -> Result<BlockCount, Self::Error> { | ||||
|             let card = self.card()?; | ||||
|             let count = card.csd.block_count(); | ||||
|             Ok(BlockCount(count)) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -111,6 +111,20 @@ where | ||||
|         poll_fn(move |cx| self.poll_wait(cx)) | ||||
|     } | ||||
|  | ||||
|     /// non-blocking method to try and take the signal value. | ||||
|     pub fn try_take(&self) -> Option<T> { | ||||
|         self.state.lock(|cell| { | ||||
|             let state = cell.replace(State::None); | ||||
|             match state { | ||||
|                 State::Signaled(res) => Some(res), | ||||
|                 state => { | ||||
|                     cell.set(state); | ||||
|                     None | ||||
|                 } | ||||
|             } | ||||
|         }) | ||||
|     } | ||||
|  | ||||
|     /// non-blocking method to check whether this signal has been signaled. | ||||
|     pub fn signaled(&self) -> bool { | ||||
|         self.state.lock(|cell| { | ||||
|   | ||||
| @@ -6,7 +6,7 @@ license = "MIT OR Apache-2.0" | ||||
|  | ||||
| [dependencies] | ||||
| # Change stm32f429zi to your chip name, if necessary. | ||||
| embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f429zi", "unstable-pac", "memory-x", "time-driver-any", "exti", "embedded-sdmmc", "chrono"]  } | ||||
| embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f429zi", "unstable-pac", "memory-x", "time-driver-any", "exti", "chrono"]  } | ||||
| embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } | ||||
| embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["nightly", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } | ||||
| embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user