Expand description

Peripheral access API for RP2040 microcontrollers (generated using svd2rust v0.21.0 ( ))

You can find an overview of the generated API here.

API features to be included in the next svd2rust release can be generated by cloning the svd2rust repository, checking out the above commit, and running cargo doc --open.

Re-exports

pub use pll_sys as pll_usb;
pub use uart0 as uart1;
pub use spi0 as spi1;
pub use i2c0 as i2c1;
pub use pio0 as pio1;

Modules

Control and data interface to SAR ADC

Register block for busfabric control signals and performance counters

CLOCKS

DMA with separate read and write masters

Common register and bit access and modify traits

DW_apb_i2c address block

IO_BANK0

IO_QSPI

PADS_BANK0

PADS_QSPI

Programmable IO block

PLL_SYS

PPB

PSM

Simple PWM

RESETS

ROSC

Register block to control RTC

Single-cycle IO block
Provides core-local and inter-core hardware for the two processors, with single-cycle access.

SPI0

Register block for various chip control signals

SYSINFO

Testbench manager. Allows the programmer to know what platform their software is running on.

Controls time and alarms
time is a 64 bit value indicating the time in usec since power-on
timeh is the top 32 bits of time & timel is the bottom 32 bits
to change time write to timelw before timehw
to read time read from timelr before timehr
An alarm is set by setting alarm_enable and writing to the corresponding alarm register
When an alarm is pending, the corresponding alarm_running signal will be high
An alarm can be cancelled before it has finished by clearing the alarm_enable
When an alarm fires, the corresponding alarm_irq is set and alarm_running is cleared
To clear the interrupt write a 1 to the corresponding alarm_irq

UART0

DPRAM layout for USB device.

USB FS/LS controller device registers

control and status for on-chip voltage regulator and chip level reset subsystem

WATCHDOG

QSPI flash execute-in-place block

DW_apb_ssi has the following features:

Controls the crystal oscillator

Structs

Control and data interface to SAR ADC

Register block for busfabric control signals and performance counters

Cache and branch predictor maintenance operations

CLOCKS

CPUID

Core peripherals

Debug Control Block

DMA with separate read and write masters

Data Watchpoint and Trace unit

Flash Patch and Breakpoint unit

DW_apb_i2c address block

DW_apb_i2c address block

IO_BANK0

IO_QSPI

Instrumentation Trace Macrocell

Memory Protection Unit

Nested Vector Interrupt Controller

PADS_BANK0

PADS_QSPI

Programmable IO block

Programmable IO block

PLL_SYS

PLL_USB

PPB

PSM

Simple PWM

All the peripherals

RESETS

ROSC

Register block to control RTC

System Control Block

Single-cycle IO block
Provides core-local and inter-core hardware for the two processors, with single-cycle access.

SPI0

SPI1

Register block for various chip control signals

SYSINFO

SysTick: System Timer

Testbench manager. Allows the programmer to know what platform their software is running on.

Controls time and alarms
time is a 64 bit value indicating the time in usec since power-on
timeh is the top 32 bits of time & timel is the bottom 32 bits
to change time write to timelw before timehw
to read time read from timelr before timehr
An alarm is set by setting alarm_enable and writing to the corresponding alarm register
When an alarm is pending, the corresponding alarm_running signal will be high
An alarm can be cancelled before it has finished by clearing the alarm_enable
When an alarm fires, the corresponding alarm_irq is set and alarm_running is cleared
To clear the interrupt write a 1 to the corresponding alarm_irq

Trace Port Interface Unit

UART0

UART1

DPRAM layout for USB device.

USB FS/LS controller device registers

control and status for on-chip voltage regulator and chip level reset subsystem

WATCHDOG

QSPI flash execute-in-place block

DW_apb_ssi has the following features:

Controls the crystal oscillator

Enums

Enumeration of all the interrupts.

Constants

Number available in the NVIC for configuring priority