Oberon RTK

Change Note 2024-01-29

Text input, kernel, register address values, new example program.

Input from Serial Terminal

  • Read strings and integers from a serial terminal.
  • See [Text Output and Input]({{<relref "/concepts/architecture/text-io">}})
  • See modules
    • [In]({{<relref "/docs/lib/rp-any/In">}}) (new),
    • [Texts]({{<relref "/docs/lib/any/Texts">}}) (extended: input procedures),
    • [TextIO]({{<relref "/docs/lib/any/TextIO">}}) (extended: error codes, res parameter for reading),
    • [UARTstr]({{<relref "/docs/lib/rp-any/UARTstr">}}) (extended: input procedures),
    • [UARTkstr]({{<relref "/docs/lib/kernel-v1/uartkstr-v1">}}) (extended: input procedures)

Modules UARTd, UARTstr, UARTkstr

  • Added input procedures.
  • Added functionality to enquire the device status/flags, for example for checking on the FIFO buffer state, in lieu of the traditional TxAvailable and RxAvailable.

Module Kernel

  • Allocate CoreContext for a core in Kernel.Install, not in module initialisation.
  • Added functionality to change a thread's period and priority from "inside" a thread (in-thread API).
  • Renamed Kernel.AwaitDeviceSet to Kernel.AwaitDeviceFlags, extending its functionality to check for device flags set or cleared, using two masks (see [UARTkstr.mod]({{<relref "/docs/lib/kernel-v1/uartkstr-v1">}}) for a use case).
  • Extended the scheduler for Kernel.AwaitDeviceFlags.
  • Added Kernel.StartTimeout (see [UARTkstr.mod]({{<relref "/docs/lib/kernel-v1/uartkstr-v1">}}) for a use case).
  • Fixed a defect where a thread could be scheduled by time trigger while waiting for device flags.

Module MCU2

  • Introduced register addresses M0PLUS_* as per the datasheet. It's easier to discern the addresses that are core-specific, ie. not shared.
  • Kept current definitions as aliases.

New Example

  • [ReadTerminal]({{< relref "/docs/examples/v1/readterminal" >}})

Last updated: 29 January 2024