Advance v9.0 Astrobe for Cortex-M information

General discussions about working with the Astrobe IDE and programming ARM Cortex-M0, M3, M4 and M7 microcontrollers.
Post Reply
cfbsoftware
Site Admin
Posts: 525
Joined: Fri Dec 31, 2010 12:30 pm
Contact:

Advance v9.0 Astrobe for Cortex-M information

Post by cfbsoftware » Thu May 04, 2023 6:42 am

With the experience gained from writing the code generator for Astrobe for Cortex-M0 we have enhanced the code generator for Astrobe for Cortex-M3, M4 and M7 for version 9.0 due for release in Q4 2023. This advance information is intended to allow you prepare for these changes:
  • Registers are allocated from R0 up to R11 rather than R11 down to R0. This allows us to make more use of 16-bit instructions with the associated reduction in code size.
  • The frame pointer (FP = R12) is no longer used. This results in less overhead on procedure entry code.
Generic Oberon-07 code should work as before. The changes should only concern you if:
  • You have used SYSTEM.EMIT with specific registers.
    The register numbers will probably need to be changed.
  • You have used SYSTEM.FP
    This is no longer available and will require a coding change.
  • You have used SYSTEM.LDREG or SYSTEM.REG.
    The register numbers will probably need to change.
  • You have modified the default trap-handling library module Traps.
    This should be reviewed against the v9.0 version of Traps.
  • You have used the Oberon-07 extension which allowed local variables declared as single-dimension dynamic arrays.
    These need to be replaced with array variables with a fixed size.
If you have already successfully ported any of your Cortex-M3, M4 or M7 code to Astrobe for Cortex-M0 then you either do not use any of these features or you already know what the necessary changes are.

Existing supported registered users have access to the release candidates. Hopefully the impact on your work will be minimal but we will provide priority email access as usual if you do encounter any problems.

Post Reply