The Cortex-M3 and M4 targeted versions of Astrobe are designed to create a single embedded application that runs in isolation. There is no OS involved so you do need to use interrupt handlers to handle separate processes.
To get the sort of flexibility you want you would need to use the Workstation or Embedded FPGA-targeted versions of Astrobe
. These include the realtime tasking OS known as Project Oberon 2013. No static module linking is required. Tasks consist of related groups of compiled modules. Each module can contain one or more commands
(i.e. parameterless procedures). When a command is invoked at runtime, either interactively or programmatically, the corresponding compiled object file for the module, and any dependent module that is not already loaded, is automatically loaded. If dependent modules(s) are already resident in memory these are automatically reused with their existing global context. Unused modules can be unloaded on demand if required to free up space.
The only debugger we have ever used with Astrobe Oberon code is the one included with LPCXpresso. However that was only required to debug assembler-level code when we were working on the code generator of the compiler and were potentially generating invalid instructions and code sequences. With Oberon unless you deliberately go out of your way to break it, you rarely experience the weird and wonderful runtime errors that you frequently encounter when working with C. In our experience when developing realtime embedded applications in Oberon if the runtime error trap handlers can't pinpoint the errors for you, the chances are that you need a scope to work out what is going on.