Library Modules
See library modules.
MultiCore
- New procedure
StartCoreOne
, taking a procedure to initialise core 1 for parameters that must be set from code running on core 1, ie. cannot be done from core 0.
New: InitCoreOne
- Example module to initialise core 1 via
MultiCore.StartCoreOne
. - As of now (RP23050 only): enable FPU, enable MCU faults.
RuntimeErrors
- Export Error and Fault handlers. This allows to (re-) assign the handlers from other modules (see example program
SysCall
, below). - New procedure
EnableFaults
to enable the MCU faults from code executing on both cores (RP2350 only, there are no MCU faults to enable on the RP2040).
Main
- Use
RuntimeErrors.EnableFaults
to enable MCU faults on core 0.
Exceptions
- Add memory barriers for procedures making changes for the System Control Space, mainly the NVIC, but also the registers controlling the system exceptions.
FPUctrl
- Add memory barriers.
MCU2
- Add
DSB
andSVC
assembly instruction codes.
Errors
- Renumber run-time Error codes to fit into the interval 0 to 63.
Example/Test Programs
- SysCall:
- get precisely synchronous exceptions from software using the
SVC
instruction and handler; - two test cases, with and without kernel threads, running on two cores;
- extends and re-uses Stacktrace
- get precisely synchronous exceptions from software using the
- Stacktrace:
- update the programs to use
MultiCore.StartCoreOne
; - update the description to cover memory barriers.
- update the programs to use
Repo Updates
- The repository may get updated between change notes, if there’s a fixed defect.
- However, changes to a module’s API or behaviour are only pushed together with a corresponding change note.