Changes 2024-05-17

New Modules SPIdev

  • Defines the SPI device as implemented in the RP2040.
  • Initialise the data structures.
  • Configure and enable the hardware.
  • See example program SPIrtc.

New Module SPIdata

  • Make use of the SPI device as per SPIdev to transmit and receive data to SPI peripherals.
  • Master mode, 8 bits data size, MSB first for now.
  • Busy waiting (blocking), FIFO-buffered.
  • See example program SPIrtc.

Module GPIO

  • Procedure ConfigPad allows to change only specific configuration settings.
  • Export the fields of PadConfig (defect fixed, pretty useless without).

Module MCU2

  • Correct identifiers SPIO0_Base to SPI0_Base, and SPIO1_Base to SPI1_Base, respectively.
  • Clean up the assembly instruction CONSTs naming and comments.
  • New assembly instruction CONSTs to use r3 as target for moves from special regs.

Modules Kernel (v1 and v2)

  • Use updated assembly instruction CONSTs in module MCU2.

Module UARTd is now UARTdev

  • Rename module UARTd to UARTdev.
  • Update framework modules accordingly
    • Terminals.mod
    • UARTstr.mod, UARTkstr.mod

Module LEDext

  • Add four LEDs for a total of eight, useful for debugging under timing constraints where diagnostic messages are impossible.
  • Change the GPIO pins accordingly.
  • Add a procedure SetValue to display an 8 bit value.

New Example Program SPIrtc

  • Explain and test the added SPI functionality using a Maxim DS3242 real-time clock peripheral.
  • SPIrtc

Example Program TrapHandlers

  • Use r3 to read trap parameters from stack (before: r11).