Astrobe for Cortex-M0

Overview

Oberon RTK is developed to be used with Astrobe for Cortex-M0. At the time of this writing, the current version is v9.1, which is the required baseline for things to work.

All workarounds in the RTK framework for former versions of Astrobe have been removed. Any workarounds for the current version are still in place. As soon as the next version of Astrobe for Cortex-M0 will be publicly available as (free) Personal Edition, it will become the new base requirement for Oberon RTK.

Memory Configuration

The memory parameter settings for Astrobe are listed in module Config. This module is an extension to LinkOptions to account for the additional settings required for the second core.

At the time of this writing, the memory settings for Astrobe are (with the Pico board):

Data Range: 020000000H, 020030000H
Code Range: 010000100H, 010200000H
Heap Start: 020000200H
Heap Limit: 000000000H

Please refer to module Config.mod on how these values are used and extended for the RP2040.

Two Processor Cores explains the memory map used.

Start-up explains the above code addresses.

Search Path Configuration

Oberon RTK uses Astrobe’s modules MUA, LinkOptions, ResData, and Error, so make sure they are on your library search path for the compiler and linker.

For the use of the Kernel-v1, the search path for Oberon RTK should be, in this order:

(...)\lib\mcu\m0\rp2040\kernel-v1
(...)\lib\mcu\m0\rp2040
(...)\lib\board\m0\pico
(...)\lib\any

with (…) being the path to the RTK installation directory.

For the use of Kernel-v2, the search path for Oberon RTK should be, in this order:

(...)\lib\mcu\m0\rp2040\kernel-v2
(...)\lib\mcu\m0\rp2040\kernel-v1
(...)\lib\mcu\m0\rp2040
(...)\lib\board\m0\pico
(...)\lib\any

with (…) being the path to the RTK installation directory.

The modules from the Astrobe library as listed above are in:

(...)\Lib\General

with (…) being the path to the installation directory of Astrobe for Cortex-M0’s module library.

My search path looks currently like this:

%AstrobeM0%\oberon-rtk\lib\mcu\m0\rp2040\kernel-v2
%AstrobeM0%\oberon-rtk\lib\mcu\m0\rp2040\kernel-v1
%AstrobeM0%\oberon-rtk\lib\mcu\m0\rp2040
%AstrobeM0%\oberon-rtk\lib\board\m0\pico
%AstrobeM0%\oberon-rtk\lib\any
%AstrobeM0%\astrobe-mx\m0\Lib\General

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 git repository, so any changes are easily “browsable” after upgrading to a new Astrobe release.

But – I still want to use %AstrobeM0% for the search path to the RTK libs, so I have done some Windows registry surgery to get a path entry point that’s higher up in the directory structure. The directory designated by my %AstrobeM0% contains all project directories, as well as the Astrobe installations, on the same level, each with is own git repo.

%AstrobeM0%\
  + oberon-rtk\
    .git
    + lib\
      + any\
      + board\
      + mcu\
    + examples\
    + config\
  + astrobe-mx\
    .git
    + m0\
      + Lib\
        + General\
      + Examples\
      + Configs\
    + m3\
      + ...
  + ...