Expand description
A Hardware Abstraction Layer for the Picoboy.
This crate serves as a HAL (Hardware Abstraction Layer) for the Picoboy. Since the Picoboy is based on the RP2040 chip, it re-exports the rp2040_hal crate which contains the tooling to work with the rp2040 chip.
§Examples:
The following example turns on the red LED. Note that most of the logic works through the rp2040_hal crate.
ⓘ
#![no_std]
#![no_main]
use embedded_hal::digital::OutputPin;
use picoboy::entry;
use panic_halt as _;
use picoboy::hal::pac;
use picoboy::hal;
#[entry]
fn does_not_have_to_be_main() -> ! {
let mut pac = pac::Peripherals::take().unwrap();
let sio = hal::Sio::new(pac.SIO);
let pins = picoboy::Pins::new(
pac.IO_BANK0,
pac.PADS_BANK0,
sio.gpio_bank0,
&mut pac.RESETS,
);
let mut led_pin = pins.led_red.into_push_pull_output();
led_pin.set_high().unwrap();
loop {
}
}Re-exports§
pub extern crate rp2040_hal as hal;pub use hal::pac;
Structs§
Constants§
Statics§
- BOOT2_
FIRMWARE - The linker will place this boot block at the start of our program image. We need this to help the ROM bootloader get our code up and running.
Type Aliases§
- Gp0I2
C0Sda - I2C Function alias for pin [crate::Pins::gpio0].
Alias for a configured
Pin - Gp0Pio0
- PIO0 Function alias for pin [crate::Pins::gpio0].
Alias for a configured
Pin - Gp0Pio1
- PIO1 Function alias for pin [crate::Pins::gpio0].
Alias for a configured
Pin - Gp0Pwm0A
- PWM Function alias for pin [crate::Pins::gpio0].
Alias for a configured
Pin - Gp0Spi0
Rx - SPI Function alias for pin [crate::Pins::gpio0].
Alias for a configured
Pin - Gp0Uart0
Tx - UART Function alias for pin [crate::Pins::gpio0].
Alias for a configured
Pin - Gp1I2
C0Scl - I2C Function alias for pin [crate::Pins::gpio1].
Alias for a configured
Pin - Gp1Pio0
- PIO0 Function alias for pin [crate::Pins::gpio1].
Alias for a configured
Pin - Gp1Pio1
- PIO1 Function alias for pin [crate::Pins::gpio1].
Alias for a configured
Pin - Gp1Pwm0B
- PWM Function alias for pin [crate::Pins::gpio1].
Alias for a configured
Pin - Gp1Spi0
Csn - SPI Function alias for pin [crate::Pins::gpio1].
Alias for a configured
Pin - Gp1Uart0
Rx - UART Function alias for pin [crate::Pins::gpio1].
Alias for a configured
Pin - Gp2I2
C1Sda - I2C Function alias for pin [crate::Pins::gpio2].
Alias for a configured
Pin - Gp2Pio0
- PIO0 Function alias for pin [crate::Pins::gpio2].
Alias for a configured
Pin - Gp2Pio1
- PIO1 Function alias for pin [crate::Pins::gpio2].
Alias for a configured
Pin - Gp2Pwm1A
- PWM Function alias for pin [crate::Pins::gpio2].
Alias for a configured
Pin - Gp2Spi0
Sck - SPI Function alias for pin [crate::Pins::gpio2].
Alias for a configured
Pin - Gp2Uart0
Cts - UART Function alias for pin [crate::Pins::gpio2].
Alias for a configured
Pin - Gp3I2
C1Scl - I2C Function alias for pin [crate::Pins::gpio3].
Alias for a configured
Pin - Gp3Pio0
- PIO0 Function alias for pin [crate::Pins::gpio3].
Alias for a configured
Pin - Gp3Pio1
- PIO1 Function alias for pin [crate::Pins::gpio3].
Alias for a configured
Pin - Gp3Pwm1B
- PWM Function alias for pin [crate::Pins::gpio3].
Alias for a configured
Pin - Gp3Spi0
Tx - SPI Function alias for pin [crate::Pins::gpio3].
Alias for a configured
Pin - Gp3Uart0
Rts - UART Function alias for pin [crate::Pins::gpio3].
Alias for a configured
Pin - Gp4I2
C0Sda - I2C Function alias for pin [crate::Pins::gpio4].
Alias for a configured
Pin - Gp4Pio0
- PIO0 Function alias for pin [crate::Pins::gpio4].
Alias for a configured
Pin - Gp4Pio1
- PIO1 Function alias for pin [crate::Pins::gpio4].
Alias for a configured
Pin - Gp4Pwm2A
- PWM Function alias for pin [crate::Pins::gpio4].
Alias for a configured
Pin - Gp4Spi0
Rx - SPI Function alias for pin [crate::Pins::gpio4].
Alias for a configured
Pin - Gp4Uart1
Tx - UART Function alias for pin [crate::Pins::gpio4].
Alias for a configured
Pin - Gp5I2
C0Scl - I2C Function alias for pin [crate::Pins::gpio5].
Alias for a configured
Pin - Gp5Pio0
- PIO0 Function alias for pin [crate::Pins::gpio5].
Alias for a configured
Pin - Gp5Pio1
- PIO1 Function alias for pin [crate::Pins::gpio5].
Alias for a configured
Pin - Gp5Pwm2B
- PWM Function alias for pin [crate::Pins::gpio5].
Alias for a configured
Pin - Gp5Spi0
Csn - SPI Function alias for pin [crate::Pins::gpio5].
Alias for a configured
Pin - Gp5Uart1
Rx - UART Function alias for pin [crate::Pins::gpio5].
Alias for a configured
Pin - Gp6I2
C1Sda - I2C Function alias for pin [crate::Pins::gpio6].
Alias for a configured
Pin - Gp6Pio0
- PIO0 Function alias for pin [crate::Pins::gpio6].
Alias for a configured
Pin - Gp6Pio1
- PIO1 Function alias for pin [crate::Pins::gpio6].
Alias for a configured
Pin - Gp6Pwm3A
- PWM Function alias for pin [crate::Pins::gpio6].
Alias for a configured
Pin - Gp6Spi0
Sck - SPI Function alias for pin [crate::Pins::gpio6].
Alias for a configured
Pin - Gp6Uart1
Cts - UART Function alias for pin [crate::Pins::gpio6].
Alias for a configured
Pin - Gp7I2
C1Scl - I2C Function alias for pin [crate::Pins::gpio7].
Alias for a configured
Pin - Gp7Pio0
- PIO0 Function alias for pin [crate::Pins::gpio7].
Alias for a configured
Pin - Gp7Pio1
- PIO1 Function alias for pin [crate::Pins::gpio7].
Alias for a configured
Pin - Gp7Pwm3B
- PWM Function alias for pin [crate::Pins::gpio7].
Alias for a configured
Pin - Gp7Spi0
Tx - SPI Function alias for pin [crate::Pins::gpio7].
Alias for a configured
Pin - Gp7Uart1
Rts - UART Function alias for pin [crate::Pins::gpio7].
Alias for a configured
Pin - Gp8I2
C0Sda - I2C Function alias for pin [crate::Pins::gpio8].
Alias for a configured
Pin - Gp8Pio0
- PIO0 Function alias for pin [crate::Pins::gpio8].
Alias for a configured
Pin - Gp8Pio1
- PIO1 Function alias for pin [crate::Pins::gpio8].
Alias for a configured
Pin - Gp8Pwm4A
- PWM Function alias for pin [crate::Pins::gpio8].
Alias for a configured
Pin - Gp8Spi1
Rx - SPI Function alias for pin [crate::Pins::gpio8].
Alias for a configured
Pin - Gp8Uart1
Tx - UART Function alias for pin [crate::Pins::gpio8].
Alias for a configured
Pin - Gp9I2
C0Scl - I2C Function alias for pin [crate::Pins::gpio9].
Alias for a configured
Pin - Gp9Pio0
- PIO0 Function alias for pin [crate::Pins::gpio9].
Alias for a configured
Pin - Gp9Pio1
- PIO1 Function alias for pin [crate::Pins::gpio9].
Alias for a configured
Pin - Gp9Pwm4B
- PWM Function alias for pin [crate::Pins::gpio9].
Alias for a configured
Pin - Gp9Spi1
Csn - SPI Function alias for pin [crate::Pins::gpio9].
Alias for a configured
Pin - Gp9Uart1
Rx - UART Function alias for pin [crate::Pins::gpio9].
Alias for a configured
Pin - Gp10
I2C1 Sda - I2C Function alias for pin [crate::Pins::gpio10].
Alias for a configured
Pin - Gp10
Pio0 - PIO0 Function alias for pin [crate::Pins::gpio10].
Alias for a configured
Pin - Gp10
Pio1 - PIO1 Function alias for pin [crate::Pins::gpio10].
Alias for a configured
Pin - Gp10
Pwm5A - PWM Function alias for pin [crate::Pins::gpio10].
Alias for a configured
Pin - Gp10
Spi1 Sck - SPI Function alias for pin [crate::Pins::gpio10].
Alias for a configured
Pin - Gp10
Uart1 Cts - UART Function alias for pin [crate::Pins::gpio10].
Alias for a configured
Pin - Gp11
I2C1 Scl - I2C Function alias for pin crate::Pins::gpio11.
Alias for a configured
Pin - Gp11
Pio0 - PIO0 Function alias for pin crate::Pins::gpio11.
Alias for a configured
Pin - Gp11
Pio1 - PIO1 Function alias for pin crate::Pins::gpio11.
Alias for a configured
Pin - Gp11
Pwm5B - PWM Function alias for pin crate::Pins::gpio11.
Alias for a configured
Pin - Gp11
Spi1 Tx - SPI Function alias for pin crate::Pins::gpio11.
Alias for a configured
Pin - Gp11
Uart1 Rts - UART Function alias for pin crate::Pins::gpio11.
Alias for a configured
Pin - Gp12
I2C0 Sda - I2C Function alias for pin crate::Pins::gpio12.
Alias for a configured
Pin - Gp12
Pio0 - PIO0 Function alias for pin crate::Pins::gpio12.
Alias for a configured
Pin - Gp12
Pio1 - PIO1 Function alias for pin crate::Pins::gpio12.
Alias for a configured
Pin - Gp12
Pwm6A - PWM Function alias for pin crate::Pins::gpio12.
Alias for a configured
Pin - Gp12
Spi1 Rx - SPI Function alias for pin crate::Pins::gpio12.
Alias for a configured
Pin - Gp12
Uart0 Tx - UART Function alias for pin crate::Pins::gpio12.
Alias for a configured
Pin - Gp13
I2C0 Scl - I2C Function alias for pin crate::Pins::gpio13.
Alias for a configured
Pin - Gp13
Pio0 - PIO0 Function alias for pin crate::Pins::gpio13.
Alias for a configured
Pin - Gp13
Pio1 - PIO1 Function alias for pin crate::Pins::gpio13.
Alias for a configured
Pin - Gp13
Pwm6B - PWM Function alias for pin crate::Pins::gpio13.
Alias for a configured
Pin - Gp13
Spi1 Csn - SPI Function alias for pin crate::Pins::gpio13.
Alias for a configured
Pin - Gp13
Uart0 Rx - UART Function alias for pin crate::Pins::gpio13.
Alias for a configured
Pin - Gp14
I2C1 Sda - I2C Function alias for pin crate::Pins::gpio14.
Alias for a configured
Pin - Gp14
Pio0 - PIO0 Function alias for pin crate::Pins::gpio14.
Alias for a configured
Pin - Gp14
Pio1 - PIO1 Function alias for pin crate::Pins::gpio14.
Alias for a configured
Pin - Gp14
Pwm7A - PWM Function alias for pin crate::Pins::gpio14.
Alias for a configured
Pin - Gp14
Spi1 Sck - SPI Function alias for pin crate::Pins::gpio14.
Alias for a configured
Pin - Gp14
Uart0 Cts - UART Function alias for pin crate::Pins::gpio14.
Alias for a configured
Pin - Gp15
I2C1 Scl - I2C Function alias for pin [crate::Pins::gpio15].
Alias for a configured
Pin - Gp15
Pio0 - PIO0 Function alias for pin [crate::Pins::gpio15].
Alias for a configured
Pin - Gp15
Pio1 - PIO1 Function alias for pin [crate::Pins::gpio15].
Alias for a configured
Pin - Gp15
Pwm7B - PWM Function alias for pin [crate::Pins::gpio15].
Alias for a configured
Pin - Gp15
Spi1 Tx - SPI Function alias for pin [crate::Pins::gpio15].
Alias for a configured
Pin - Gp15
Uart0 Rts - UART Function alias for pin [crate::Pins::gpio15].
Alias for a configured
Pin - Gp16
I2C0 Sda - I2C Function alias for pin crate::Pins::gpio16.
Alias for a configured
Pin - Gp16
Pio0 - PIO0 Function alias for pin crate::Pins::gpio16.
Alias for a configured
Pin - Gp16
Pio1 - PIO1 Function alias for pin crate::Pins::gpio16.
Alias for a configured
Pin - Gp16
Pwm0A - PWM Function alias for pin crate::Pins::gpio16.
Alias for a configured
Pin - Gp16
Spi0 Rx - SPI Function alias for pin crate::Pins::gpio16.
Alias for a configured
Pin - Gp16
Uart0 Tx - UART Function alias for pin crate::Pins::gpio16.
Alias for a configured
Pin - Gp17
I2C0 Scl - I2C Function alias for pin crate::Pins::gpio17.
Alias for a configured
Pin - Gp17
Pio0 - PIO0 Function alias for pin crate::Pins::gpio17.
Alias for a configured
Pin - Gp17
Pio1 - PIO1 Function alias for pin crate::Pins::gpio17.
Alias for a configured
Pin - Gp17
Pwm0B - PWM Function alias for pin crate::Pins::gpio17.
Alias for a configured
Pin - Gp17
Spi0 Csn - SPI Function alias for pin crate::Pins::gpio17.
Alias for a configured
Pin - Gp17
Uart0 Rx - UART Function alias for pin crate::Pins::gpio17.
Alias for a configured
Pin - Gp18
I2C1 Sda - I2C Function alias for pin [crate::Pins::gpio18].
Alias for a configured
Pin - Gp18
Pio0 - PIO0 Function alias for pin [crate::Pins::gpio18].
Alias for a configured
Pin - Gp18
Pio1 - PIO1 Function alias for pin [crate::Pins::gpio18].
Alias for a configured
Pin - Gp18
Pwm1A - PWM Function alias for pin [crate::Pins::gpio18].
Alias for a configured
Pin - Gp18
Spi0 Sck - SPI Function alias for pin [crate::Pins::gpio18].
Alias for a configured
Pin - Gp18
Uart0 Cts - UART Function alias for pin [crate::Pins::gpio18].
Alias for a configured
Pin - Gp19
I2C1 Scl - I2C Function alias for pin [crate::Pins::gpio19].
Alias for a configured
Pin - Gp19
Pio0 - PIO0 Function alias for pin [crate::Pins::gpio19].
Alias for a configured
Pin - Gp19
Pio1 - PIO1 Function alias for pin [crate::Pins::gpio19].
Alias for a configured
Pin - Gp19
Pwm1B - PWM Function alias for pin [crate::Pins::gpio19].
Alias for a configured
Pin - Gp19
Spi0 Tx - SPI Function alias for pin [crate::Pins::gpio19].
Alias for a configured
Pin - Gp19
Uart0 Rts - UART Function alias for pin [crate::Pins::gpio19].
Alias for a configured
Pin - Gp20
I2C0 Sda - I2C Function alias for pin [crate::Pins::gpio20].
Alias for a configured
Pin - Gp20
Pio0 - PIO0 Function alias for pin [crate::Pins::gpio20].
Alias for a configured
Pin - Gp20
Pio1 - PIO1 Function alias for pin [crate::Pins::gpio20].
Alias for a configured
Pin - Gp20
Pwm2A - PWM Function alias for pin [crate::Pins::gpio20].
Alias for a configured
Pin - Gp20
Spi0 Rx - SPI Function alias for pin [crate::Pins::gpio20].
Alias for a configured
Pin - Gp20
Uart1 Tx - UART Function alias for pin [crate::Pins::gpio20].
Alias for a configured
Pin - Gp21
I2C0 Scl - I2C Function alias for pin [crate::Pins::gpio21].
Alias for a configured
Pin - Gp21
Pio0 - PIO0 Function alias for pin [crate::Pins::gpio21].
Alias for a configured
Pin - Gp21
Pio1 - PIO1 Function alias for pin [crate::Pins::gpio21].
Alias for a configured
Pin - Gp21
Pwm2B - PWM Function alias for pin [crate::Pins::gpio21].
Alias for a configured
Pin - Gp21
Spi0 Csn - SPI Function alias for pin [crate::Pins::gpio21].
Alias for a configured
Pin - Gp21
Uart1 Rx - UART Function alias for pin [crate::Pins::gpio21].
Alias for a configured
Pin - Gp22
I2C1 Sda - I2C Function alias for pin crate::Pins::gpio22.
Alias for a configured
Pin - Gp22
Pio0 - PIO0 Function alias for pin crate::Pins::gpio22.
Alias for a configured
Pin - Gp22
Pio1 - PIO1 Function alias for pin crate::Pins::gpio22.
Alias for a configured
Pin - Gp22
Pwm3A - PWM Function alias for pin crate::Pins::gpio22.
Alias for a configured
Pin - Gp22
Spi0 Sck - SPI Function alias for pin crate::Pins::gpio22.
Alias for a configured
Pin - Gp22
Uart1 Cts - UART Function alias for pin crate::Pins::gpio22.
Alias for a configured
Pin - Gp26
I2C1 Sda - I2C Function alias for pin crate::Pins::gpio26.
Alias for a configured
Pin - Gp26
Pio0 - PIO0 Function alias for pin crate::Pins::gpio26.
Alias for a configured
Pin - Gp26
Pio1 - PIO1 Function alias for pin crate::Pins::gpio26.
Alias for a configured
Pin - Gp26
Pwm5A - PWM Function alias for pin crate::Pins::gpio26.
Alias for a configured
Pin - Gp26
Spi1 Sck - SPI Function alias for pin crate::Pins::gpio26.
Alias for a configured
Pin - Gp26
Uart1 Cts - UART Function alias for pin crate::Pins::gpio26.
Alias for a configured
Pin - Gp27
I2C1 Scl - I2C Function alias for pin crate::Pins::gpio27.
Alias for a configured
Pin - Gp27
Pio0 - PIO0 Function alias for pin crate::Pins::gpio27.
Alias for a configured
Pin - Gp27
Pio1 - PIO1 Function alias for pin crate::Pins::gpio27.
Alias for a configured
Pin - Gp27
Pwm5B - PWM Function alias for pin crate::Pins::gpio27.
Alias for a configured
Pin - Gp27
Spi1 Tx - SPI Function alias for pin crate::Pins::gpio27.
Alias for a configured
Pin - Gp27
Uart1 Rts - UART Function alias for pin crate::Pins::gpio27.
Alias for a configured
Pin - Gp28
I2C0 Sda - I2C Function alias for pin crate::Pins::gpio28.
Alias for a configured
Pin - Gp28
Pio0 - PIO0 Function alias for pin crate::Pins::gpio28.
Alias for a configured
Pin - Gp28
Pio1 - PIO1 Function alias for pin crate::Pins::gpio28.
Alias for a configured
Pin - Gp28
Pwm6A - PWM Function alias for pin crate::Pins::gpio28.
Alias for a configured
Pin - Gp28
Spi1 Rx - SPI Function alias for pin crate::Pins::gpio28.
Alias for a configured
Pin - Gp28
Uart0 Tx - UART Function alias for pin crate::Pins::gpio28.
Alias for a configured
Pin
Attribute Macros§
- entry
- The
entrymacro declares the starting function to the linker. This is similar to themainfunction in console applications.