diff --git a/drivers/0x01_uart_rust/src/board.rs b/drivers/0x01_uart_rust/src/board.rs index 35cc046..c9fe6d3 100644 --- a/drivers/0x01_uart_rust/src/board.rs +++ b/drivers/0x01_uart_rust/src/board.rs @@ -25,9 +25,14 @@ //! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //! SOFTWARE. +//! @file board.rs +//! @brief Board-level HAL helpers for the UART driver +//! @author Kevin Thomas +//! @date 2025 + +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; diff --git a/drivers/0x01_uart_rust/src/main.rs b/drivers/0x01_uart_rust/src/main.rs index 70425c4..2ccb850 100644 --- a/drivers/0x01_uart_rust/src/main.rs +++ b/drivers/0x01_uart_rust/src/main.rs @@ -40,28 +40,36 @@ #![no_std] #![no_main] +// Board-level helpers: constants, type aliases, and init functions mod board; +// UART driver module mod uart; +// Debugging output over RTT use defmt_rtt as _; +// Panic handler for RISC-V targets #[cfg(target_arch = "riscv32")] use panic_halt as _; +// Panic handler for ARM targets #[cfg(target_arch = "arm")] use panic_probe as _; +// HAL entry-point macro use hal::entry; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; +// Second-stage boot loader for RP2040 #[unsafe(link_section = ".boot2")] #[used] #[cfg(rp2040)] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080; +// Boot metadata for the RP2350 Boot ROM #[unsafe(link_section = ".start_block")] #[used] #[cfg(rp2350)] @@ -97,6 +105,7 @@ fn main() -> ! { } } +// Picotool binary info metadata #[unsafe(link_section = ".bi_entries")] #[used] pub static PICOTOOL_ENTRIES: [hal::binary_info::EntryAddr; 5] = [ diff --git a/drivers/0x02_blink_rust/src/board.rs b/drivers/0x02_blink_rust/src/board.rs index 7307136..8d596e8 100644 --- a/drivers/0x02_blink_rust/src/board.rs +++ b/drivers/0x02_blink_rust/src/board.rs @@ -25,14 +25,23 @@ //! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //! SOFTWARE. +//! @file board.rs +//! @brief Board-level HAL helpers for the blink driver +//! @author Kevin Thomas +//! @date 2025 + +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// GPIO pin types and function selectors use hal::gpio::{FunctionNull, FunctionUart, Pin, PullDown, PullNone}; +// UART configuration and peripheral types use hal::uart::{DataBits, Enabled, StopBits, UartConfig, UartPeripheral}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; diff --git a/drivers/0x02_blink_rust/src/main.rs b/drivers/0x02_blink_rust/src/main.rs index 7f9ecd7..2654dba 100644 --- a/drivers/0x02_blink_rust/src/main.rs +++ b/drivers/0x02_blink_rust/src/main.rs @@ -37,29 +37,37 @@ #![no_std] #![no_main] +// Board-level helpers: constants, type aliases, and init functions mod board; +// Blink driver module — suppress warnings for unused public API functions #[allow(dead_code)] mod blink; +// Debugging output over RTT use defmt_rtt as _; +// Panic handler for RISC-V targets #[cfg(target_arch = "riscv32")] use panic_halt as _; +// Panic handler for ARM targets #[cfg(target_arch = "arm")] use panic_probe as _; +// HAL entry-point macro use hal::entry; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; +// Second-stage boot loader for RP2040 #[unsafe(link_section = ".boot2")] #[used] #[cfg(rp2040)] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080; +// Boot metadata for the RP2350 Boot ROM #[unsafe(link_section = ".start_block")] #[used] #[cfg(rp2350)] @@ -96,6 +104,7 @@ fn main() -> ! { } } +// Picotool binary info metadata #[unsafe(link_section = ".bi_entries")] #[used] pub static PICOTOOL_ENTRIES: [hal::binary_info::EntryAddr; 5] = [ diff --git a/drivers/0x03_button_rust/src/board.rs b/drivers/0x03_button_rust/src/board.rs index 47220a3..c716164 100644 --- a/drivers/0x03_button_rust/src/board.rs +++ b/drivers/0x03_button_rust/src/board.rs @@ -25,14 +25,23 @@ //! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //! SOFTWARE. +//! @file board.rs +//! @brief Board-level HAL helpers for the button driver +//! @author Kevin Thomas +//! @date 2025 + +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// GPIO pin types and function selectors use hal::gpio::{FunctionNull, FunctionUart, Pin, PullDown, PullNone}; +// UART configuration and peripheral types use hal::uart::{DataBits, Enabled, StopBits, UartConfig, UartPeripheral}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; diff --git a/drivers/0x03_button_rust/src/main.rs b/drivers/0x03_button_rust/src/main.rs index 76c8b41..aa54628 100644 --- a/drivers/0x03_button_rust/src/main.rs +++ b/drivers/0x03_button_rust/src/main.rs @@ -39,30 +39,39 @@ #![no_std] #![no_main] +// Board-level helpers: constants, type aliases, and init functions mod board; +// Button driver module — suppress warnings for unused public API functions #[allow(dead_code)] mod button; +// Debugging output over RTT use defmt_rtt as _; +// Panic handler for RISC-V targets #[cfg(target_arch = "riscv32")] use panic_halt as _; +// Panic handler for ARM targets #[cfg(target_arch = "arm")] use panic_probe as _; +// Interior mutability for shared peripheral access use core::cell::RefCell; +// HAL entry-point macro use hal::entry; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; +// Second-stage boot loader for RP2040 #[unsafe(link_section = ".boot2")] #[used] #[cfg(rp2040)] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080; +// Boot metadata for the RP2350 Boot ROM #[unsafe(link_section = ".start_block")] #[used] #[cfg(rp2350)] @@ -109,6 +118,7 @@ fn main() -> ! { } } +// Picotool binary info metadata #[unsafe(link_section = ".bi_entries")] #[used] pub static PICOTOOL_ENTRIES: [hal::binary_info::EntryAddr; 5] = [ diff --git a/drivers/0x04_pwm_rust/src/board.rs b/drivers/0x04_pwm_rust/src/board.rs index 145701d..4868ac8 100644 --- a/drivers/0x04_pwm_rust/src/board.rs +++ b/drivers/0x04_pwm_rust/src/board.rs @@ -25,15 +25,25 @@ //! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //! SOFTWARE. +//! @file board.rs +//! @brief Board-level HAL helpers for the PWM driver +//! @author Kevin Thomas +//! @date 2025 + +// PWM duty-cycle trait for .set_duty_cycle() use embedded_hal::pwm::SetDutyCycle; +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// GPIO pin types and function selectors use hal::gpio::{FunctionNull, FunctionUart, Pin, PullDown, PullNone}; +// UART configuration and peripheral types use hal::uart::{DataBits, Enabled, StopBits, UartConfig, UartPeripheral}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; diff --git a/drivers/0x04_pwm_rust/src/main.rs b/drivers/0x04_pwm_rust/src/main.rs index d8bb514..c0ccc5d 100644 --- a/drivers/0x04_pwm_rust/src/main.rs +++ b/drivers/0x04_pwm_rust/src/main.rs @@ -40,30 +40,39 @@ #![no_std] #![no_main] +// Board-level helpers: constants, type aliases, and init functions mod board; +// PWM driver module — suppress warnings for unused public API functions #[allow(dead_code)] mod pwm; +// Debugging output over RTT use defmt_rtt as _; +// Panic handler for RISC-V targets #[cfg(target_arch = "riscv32")] use panic_halt as _; +// Panic handler for ARM targets #[cfg(target_arch = "arm")] use panic_probe as _; +// Clock trait for accessing system clock frequency use hal::Clock; +// HAL entry-point macro use hal::entry; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; +// Second-stage boot loader for RP2040 #[unsafe(link_section = ".boot2")] #[used] #[cfg(rp2040)] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080; +// Boot metadata for the RP2350 Boot ROM #[unsafe(link_section = ".start_block")] #[used] #[cfg(rp2350)] @@ -106,6 +115,7 @@ fn main() -> ! { } } +// Picotool binary info metadata #[unsafe(link_section = ".bi_entries")] #[used] pub static PICOTOOL_ENTRIES: [hal::binary_info::EntryAddr; 5] = [ diff --git a/drivers/0x05_servo_rust/src/board.rs b/drivers/0x05_servo_rust/src/board.rs index 9ad8261..76d0bc4 100644 --- a/drivers/0x05_servo_rust/src/board.rs +++ b/drivers/0x05_servo_rust/src/board.rs @@ -25,15 +25,25 @@ //! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //! SOFTWARE. +//! @file board.rs +//! @brief Board-level HAL helpers for the servo driver +//! @author Kevin Thomas +//! @date 2025 + +// PWM duty-cycle trait for .set_duty_cycle() use embedded_hal::pwm::SetDutyCycle; +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// GPIO pin types and function selectors use hal::gpio::{FunctionNull, FunctionUart, Pin, PullDown, PullNone}; +// UART configuration and peripheral types use hal::uart::{DataBits, Enabled, StopBits, UartConfig, UartPeripheral}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; diff --git a/drivers/0x05_servo_rust/src/main.rs b/drivers/0x05_servo_rust/src/main.rs index da6c297..d0e1955 100644 --- a/drivers/0x05_servo_rust/src/main.rs +++ b/drivers/0x05_servo_rust/src/main.rs @@ -39,30 +39,39 @@ #![no_std] #![no_main] +// Board-level helpers: constants, type aliases, and init functions mod board; +// Servo driver module — suppress warnings for unused public API functions #[allow(dead_code)] mod servo; +// Debugging output over RTT use defmt_rtt as _; +// Panic handler for RISC-V targets #[cfg(target_arch = "riscv32")] use panic_halt as _; +// Panic handler for ARM targets #[cfg(target_arch = "arm")] use panic_probe as _; +// Clock trait for accessing system clock frequency use hal::Clock; +// HAL entry-point macro use hal::entry; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; +// Second-stage boot loader for RP2040 #[unsafe(link_section = ".boot2")] #[used] #[cfg(rp2040)] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080; +// Boot metadata for the RP2350 Boot ROM #[unsafe(link_section = ".start_block")] #[used] #[cfg(rp2350)] @@ -105,6 +114,7 @@ fn main() -> ! { } } +// Picotool binary info metadata #[unsafe(link_section = ".bi_entries")] #[used] pub static PICOTOOL_ENTRIES: [hal::binary_info::EntryAddr; 5] = [ diff --git a/drivers/0x06_adc_rust/src/board.rs b/drivers/0x06_adc_rust/src/board.rs index 1867e2a..7e65d6c 100644 --- a/drivers/0x06_adc_rust/src/board.rs +++ b/drivers/0x06_adc_rust/src/board.rs @@ -25,14 +25,23 @@ //! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //! SOFTWARE. +//! @file board.rs +//! @brief Board-level HAL helpers for the ADC driver +//! @author Kevin Thomas +//! @date 2025 + +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// GPIO pin types and function selectors use hal::gpio::{FunctionNull, FunctionUart, Pin, PullDown, PullNone}; +// UART configuration and peripheral types use hal::uart::{DataBits, Enabled, StopBits, UartConfig, UartPeripheral}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; diff --git a/drivers/0x06_adc_rust/src/main.rs b/drivers/0x06_adc_rust/src/main.rs index 4cd8c5a..92b55a4 100644 --- a/drivers/0x06_adc_rust/src/main.rs +++ b/drivers/0x06_adc_rust/src/main.rs @@ -39,30 +39,39 @@ #![no_std] #![no_main] +// Board-level helpers: constants, type aliases, and init functions mod board; +// ADC driver module — suppress warnings for unused public API functions #[allow(dead_code)] mod adc; +// Debugging output over RTT use defmt_rtt as _; +// Panic handler for RISC-V targets #[cfg(target_arch = "riscv32")] use panic_halt as _; +// Panic handler for ARM targets #[cfg(target_arch = "arm")] use panic_probe as _; +// Legacy embedded-hal 0.2 ADC OneShot trait for .read() use cortex_m::prelude::_embedded_hal_adc_OneShot; +// HAL entry-point macro use hal::entry; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; +// Second-stage boot loader for RP2040 #[unsafe(link_section = ".boot2")] #[used] #[cfg(rp2040)] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080; +// Boot metadata for the RP2350 Boot ROM #[unsafe(link_section = ".start_block")] #[used] #[cfg(rp2350)] @@ -104,6 +113,7 @@ fn main() -> ! { } } +// Picotool binary info metadata #[unsafe(link_section = ".bi_entries")] #[used] pub static PICOTOOL_ENTRIES: [hal::binary_info::EntryAddr; 5] = [ diff --git a/drivers/0x07_i2c_rust/src/board.rs b/drivers/0x07_i2c_rust/src/board.rs index 2b2ca12..74b2bf5 100644 --- a/drivers/0x07_i2c_rust/src/board.rs +++ b/drivers/0x07_i2c_rust/src/board.rs @@ -25,15 +25,25 @@ //! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //! SOFTWARE. +//! @file board.rs +//! @brief Board-level HAL helpers for the I2C driver +//! @author Kevin Thomas +//! @date 2025 + +// I2C bus trait for device probing use embedded_hal::i2c::I2c; +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// GPIO pin types and function selectors use hal::gpio::{FunctionNull, FunctionUart, Pin, PullDown, PullNone}; +// UART configuration and peripheral types use hal::uart::{DataBits, Enabled, StopBits, UartConfig, UartPeripheral}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; diff --git a/drivers/0x07_i2c_rust/src/main.rs b/drivers/0x07_i2c_rust/src/main.rs index d089136..aa9dfb9 100644 --- a/drivers/0x07_i2c_rust/src/main.rs +++ b/drivers/0x07_i2c_rust/src/main.rs @@ -41,32 +41,43 @@ #![no_std] #![no_main] +// Board-level helpers: constants, type aliases, and init functions mod board; +// I2C driver module — suppress warnings for unused public API functions #[allow(dead_code)] mod i2c; +// Debugging output over RTT use defmt_rtt as _; +// Panic handler for RISC-V targets #[cfg(target_arch = "riscv32")] use panic_halt as _; +// Panic handler for ARM targets #[cfg(target_arch = "arm")] use panic_probe as _; +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// HAL entry-point macro use hal::entry; +// GPIO traits for I2C pin reconfiguration use hal::gpio::{FunctionI2C, PullUp}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; +// Second-stage boot loader for RP2040 #[unsafe(link_section = ".boot2")] #[used] #[cfg(rp2040)] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080; +// Boot metadata for the RP2350 Boot ROM #[unsafe(link_section = ".start_block")] #[used] #[cfg(rp2350)] @@ -111,6 +122,7 @@ fn main() -> ! { } } +// Picotool binary info metadata #[unsafe(link_section = ".bi_entries")] #[used] pub static PICOTOOL_ENTRIES: [hal::binary_info::EntryAddr; 5] = [ diff --git a/drivers/0x08_lcd1602_rust/src/board.rs b/drivers/0x08_lcd1602_rust/src/board.rs index c6f4400..f110994 100644 --- a/drivers/0x08_lcd1602_rust/src/board.rs +++ b/drivers/0x08_lcd1602_rust/src/board.rs @@ -25,15 +25,25 @@ //! OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE //! SOFTWARE. +//! @file board.rs +//! @brief Board-level HAL helpers for the LCD 1602 driver +//! @author Kevin Thomas +//! @date 2025 + +// I2C bus trait for LCD communication use embedded_hal::i2c::I2c; +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// GPIO pin types and function selectors use hal::gpio::{FunctionNull, FunctionUart, Pin, PullDown, PullNone}; +// UART configuration and peripheral types use hal::uart::{DataBits, Enabled, StopBits, UartConfig, UartPeripheral}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; diff --git a/drivers/0x08_lcd1602_rust/src/main.rs b/drivers/0x08_lcd1602_rust/src/main.rs index 347f8fb..0c815a0 100644 --- a/drivers/0x08_lcd1602_rust/src/main.rs +++ b/drivers/0x08_lcd1602_rust/src/main.rs @@ -41,32 +41,43 @@ #![no_std] #![no_main] +// Board-level helpers: constants, type aliases, and init functions mod board; +// LCD1602 driver module — suppress warnings for unused public API functions #[allow(dead_code)] mod lcd1602; +// Debugging output over RTT use defmt_rtt as _; +// Panic handler for RISC-V targets #[cfg(target_arch = "riscv32")] use panic_halt as _; +// Panic handler for ARM targets #[cfg(target_arch = "arm")] use panic_probe as _; +// Rate extension trait for .Hz() baud rate construction use fugit::RateExtU32; +// Clock trait for accessing system clock frequency use hal::Clock; +// HAL entry-point macro use hal::entry; +// GPIO traits for I2C pin reconfiguration use hal::gpio::{FunctionI2C, PullUp}; +// Alias our HAL crate #[cfg(rp2350)] use rp235x_hal as hal; - #[cfg(rp2040)] use rp2040_hal as hal; +// Second-stage boot loader for RP2040 #[unsafe(link_section = ".boot2")] #[used] #[cfg(rp2040)] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080; +// Boot metadata for the RP2350 Boot ROM #[unsafe(link_section = ".start_block")] #[used] #[cfg(rp2350)] @@ -103,6 +114,7 @@ fn main() -> ! { } } +// Picotool binary info metadata #[unsafe(link_section = ".bi_entries")] #[used] pub static PICOTOOL_ENTRIES: [hal::binary_info::EntryAddr; 5] = [