Astrobe

Overview

Running code on two cores requires the segmentation of the memory space. At minimum, each core requires its own stack memory. With the RP2350, further segmentation will be required to run both Secure and Non-Secure code, but that’s a topic for another day. For now, we need configurations for the RP2040, and for the RP2350 in Secure, privileged mode to get off the ground.

As of November 2024, the Astrobe IDEs don’t have support for dual-core programs. Oberon RTK employs a module Config to complement the Astrobe settings regarding memory partitioning.

The basic concepts are, for both MCUs:

  • allocate a part of SRAM to each core
    • stack
    • heap
    • vector table
  • share code among the cores in the flash memory
  • allocate the module variables at the top of the memory space allocated to core 0

Heap and vector tables could basically be in a space shared by the cores, but this would require certain mutual synchronisation measures.

Memory Configuration

The following modules lists the memory settings for the respective Astrobe IDE in the file header, and provide a memory map:

The Astrobe settings are also part of the config .ini files, see below.

Search Path Configuration

Oberon RTK uses Astrobe’s modules MUA, LinkOptions, ResData, Error, and FPU (plus file boot2.bin for Astrobe for RP2040), so make sure they are on your library search path for the compiler and linker.

Oberon RTK v2

For Oberon RTK v2, please refer to the following Astrobe configuration files in the oberon-rtk repository:

Oberon RTK v1

For Oberon RTK v1, please refer to the following Astrobe configuration files:

The Astrobe Module Libraries

I never put any own code into the Astrobe library installation directory, which I keep pristine and only ever change with new releases of Astrobe. I also keep the Astrobe libraries in a (local) git repository, so any changes are easily “browsable” after upgrading to a new Astrobe release.

Documented Limitations

  • Astrobe forums: Bug Reports
  • Astrobe release notes, section Known Problems (or similar, if any)

Undocumented Limitations

None known.