What's New in Astrobe

Arm Oberon Development System for Windows
Version 10.0.1 Copyright © 2006-2025 CFB Software
Email: support@astrobe.com
Website: www.astrobe.com
Last Updated 16 Apr 2025

Introduction

The following notes summarise the new features included in Astrobe v10.0 and the problems fixed in Astrobe since v9.3.0. They generally apply to Astrobe for Cortex-M0, Cortex-M3, Cortex-M4, Cortex-M7, RP2040 and RP2350 microcontrollers unless identified otherwise.

Every version of Astrobe now includes the source code of the library modules, the command line tools and the Module and Application disassemblers and can be used to develop commercial applications. However, less expensive versions are still available based on the level of support (Professional, Personal or Starter) required.


Conditional Compilation

In the process of testing a module it is often very useful to add diagnostic traces to monitor progress. As these diagnostics are generally only required for development they can be turned off for the release version of the application using various CONST declarations.

Conditional Compilation is a new optimisation which eliminates sections of code from the executable if they are included in an IF statement controlled by a BOOLEAN value declared in a CONST declaration as FALSE. The end result uses less memory and can result in improved performance.

For more details see the Astrobe Oberon Programming Guide and the article Conditional Compilation posted on the Astrobe Forum.


Compilation Limits

The maximum number of modules that can be imported in a module has been increased from 32 to 64. The maximum number of procedures that can be declared in a module has been increased from 256 to 512.


Command Line Tools

A new command-line tool AstrobeDecode which produces the same output as the Disassemble Application command on the Project menu of Astrobe is now included.

Windows dependencies (e.g. Windows Forms, Windows Registry) have been eliminated from the command-line tools with the aim of allowing them to be run on .NET framework implementations on non-Windows systems.

NOTE: Support can only be provided for any related reported problems if they can be reproduced on a native Windows system.

The command-line parameters are now:

  AstrobeCompile [astrobeFolder] configFilename sourceFilename
  AstrobeBuild   [astrobeFolder] configFilename sourceFilename
  AstrobeLink    [astrobeFolder] configFilename objectFilename
  AstrobeDecode  configFilename executableFilename

Where astrobeFolder is the (optional) name of the folder that is substituted for the %Astrobe..% parameter in the configuration file search paths.


Configuration Files

Extension Levels, the compiler option which is used to specify the number of levels of Type Extension allowed, is now set in Configuration files. Modules which were compiled with different levels configured can be linked without having to be recompiled. The linker output and map shows the maximum number of extension levels used by any of the modules which were linked.

The limit of the number of search paths that can be included in a configuration file has been increased from 10 to 32.

Relative path names ( ..\..\Lib\General for example) can be used in the search paths. The paths are evaluated before compilation / linking starts and are relative to the folder which contains the initial source file.


SYSTEM Procedures

SYSTEM.DATA

PROCEDURE DATA(data: INTEGER)

Inserts a 32-bit constant data value at the current code location. Use DATA instead of EMIT when you do not want the disassembler to interpret the value as an instruction.


Project Menu

Disassemble Module
Disassemble Application

Link

NOTE: If a user modifies a configuration file it is their responsibility to also implement alternative versions of boot2.bin or ImageDef if required to produce a valid executable file.


Library Modules (RP2040 and RP2350)

The library modules included with Astrobe are listed in the Astrobe for RP2040 and RP2350 Feature Matrix.

I2C

The I2C module has been implemented for I2C0/I2C1 in Master Transmitter / Receiver mode using polling. It is used in the Temperature example module.

GPIO

Includes additional procedures to utilise the GPIO features of the RP2040 and RP2350. Mode_InOut is added. The unused ModeAF and Mode_Analog have been removed.

RTC

The RP2350 does not have a dedicated RTC peripheral. The RTC module has now been implemented using the Always-On Timer instead of the timer TIM1 used in the previous release.

Timers

The RP2350 Timers module now supports the use of TIM1 as well as TIM0.


Library Modules (Cortex-M0, M3, M4 and M7)

Clock and Time have been removed. Similar functionality provided by DateTime and RTC should be used instead.


Examples

Details of the source code examples included with Astrobe can be found here:

The HCFiler library modules have been moved to the examples folders.

New examples are:

Temperature (RP2040 and RP2350)

Demonstrates the use of the I2C library module.

TestBits

Demonstrates bitwise operations on integers that can be performed using the Bits library module.

TestDateTime

The TestDateTime example replaces the ShowTime example. It demonstrates setting and reading the date and time values of the real-time clock.

TestStrings

Demonstrates string manipulation operations that can be performed using the Strings library module.

TestReals

Demonstrates different ways to output real numbers using the Reals library module.


Miscellaneous

When a file that has been edited is saved, a warning is displayed if the file it is replacing has been modified by another application i.e. it has a modification date that is later than when the file was originally opened or last updated in Astrobe. The user has the option to replace the existing file, to save it with a different name or in a different folder, or to cancel the Save operation.

The obsolete data type aliases, LONGINT and LONGREAL, have been removed. If there are any existing declarations that reference them they should be replaced by the corresponding INTEGER and REAL declarations instead. Alternatively a user-defined data type alias could be used.

The Trim and Line Number options in Tools > Preferences are ticked by default for new installations.

New registration details are required to activate this version. They consist of the email address of the registered user and a registration number.


Limitations (RP2040 and RP2350)

The Raspberry Pi microcontrollers have a number of unique advanced capabilities. These include, but are not limited to:

We intend to provide support for some of these in future releases of Astrobe according to feasibility and demand.

In the meantime you can find out how to exploit some of these features on the 3rd-party Oberon RTK website: https://oberon-rtk.org


Problems Fixed