Changes 2024-06-03

Module SPIdev

  • Conceptually and technically simplified device handling API for a complete initialisation and configuration, via the “standard” Init, Configure, and Enable idiom.
  • All used GPIO pins and pads are configured by the client module or program. I have considered passing a corresponding configuration procedure,1 defined in the client or program, to Configure, but this configuration procedure can also be called directly from there. This has the additional benefit that the config procedure can have any signature, so we can use parameters, eg. for configuring two set of pins and pads. See module Main for an example.
  • SPI device configuration changes, as needed for individual external peripherals, can be made – if required – based on the initial configuration as per Configure, or the currently active configuration. See GetBaseRunCfg, GetCurrentRunCfg, SetSclkRate, SetTxShift, and PutRunCfg.
  • See example program SPIrtc2.

Module UARTdev

  • As for SPI devices, all used GPIO pins and pads are configured by the client module or program.
  • Update modules Main and Terminals accordingly.

Modules Main and Terminals

  • See module UARTdev: configure GPIO pins and pads.

Module RTCds3234

  • Move module from /examples/spirtc to /lib/board/rp2040/any.
  • Generalise and adjust for updated SPIdev (see above).
  • Directory /examples/SPIrtc2 contains a test version RTCds3234test to demo dynamic configuration adaptations.
  • Directory /examples/SPIrtc still contains the former version.

Module GPIO

  • Rename PadConfig to PadCfg for consistency with device modules.
  • Rename two fields in PadCfg.

Library Directory Renaming

  • /lib/boards/m0 is now /lib/boards/rp2040.
  • Requires updating Astrobe’s library search path.
  • Config files RP2040-k1.ini and RP2040-k2.ini in /config/m0 are updated accordingly.

New Example Program SPIrtc2

  • Creatively named SPIrtc2, derived from SPIrtc, this example program shows the straightforward use of the updated SPIdev module.
  • See SPIrtc2.

  1. Borrowing a design concept from Astrobe’s corresponding modules. ↩︎