[Oberon] Real-time multitasking using interrupt handlers
chris at cfbsoftware.com
Sun Oct 5 05:37:07 CEST 2014
On the contrary - the ARM Oberon compiler allows an Astrobe user to develop realtime multitasking software. E.g. an Astrobe program could 'simultaneously' take temperature / pressure/ acceleration / compass readings and log them to an SD Card and communicate 'at the same time' with another system over a serial RS232 or wireless network link.
In an ARM microcontroller program deevloped using Astrobe tasks are defined at the procedure level (using interrupt handlers) within a single application (process). A hierarchical interrupt system determines which task should be started / restarted next. These tasks are initiated on demand by the microcontroller itself using a system of prioritised interrupts that is defined by the programmer.
This is different from application level (non-realtime) multitasking where each task is handled by a separate process which is typically scheduled to run in a time-slices under the control of an external operating system
Note that the use of procedures as interrupt handlers as implemented in the ARM Oberon compiler used in Astrobe is an extension to the Oberon Programming Language. For more information refer to Chapter 23 'Interrupt procedures' in the document 'An Oberon Compiler for the ARM Processor' by Niklaus Wirth:
> -----Original Message-----
> From: eas lab [mailto:lab.eas at gmail.com]
> Sent: Saturday, 4 October 2014 10:32 PM
> To: chris at cfbsoftware.com; ETH Oberon and related systems
> Subject: Re: [Oberon] Microcontroller (SOC) power consumption
> OK, so it's not intended for multitasking.
> We need to distinguish between ETHO & Oberon.
> Oberon for Cortex, would have access to machine-code level.
> Later I want to write about a <universal assembler>, and perhaps some
> related ideas re. intercommunication between different natural
> languages: like music notation doesn't depend on English.
> == Chris Glur.
> On 10/4/14, Chris Burrows <chris at cfbsoftware.com> wrote:
> >> -----Original Message-----
> >> From: eas lab [mailto:lab.eas at gmail.com]
> >> Sent: Saturday, 4 October 2014 2:23 PM
> >> To: ETH Oberon and related systems
> >> Subject: Re: [Oberon] Oberon bare metal on the Raspberry Pi
> >> ==============
> >> Re. Astrobe - LPC1769 Microcontrollers:
> >> I failed to find [via http] the comparative power consumption.
> > It depends directly on which functions you are using and what speed
> > you are running at. Astrobe Oberon / LPC17xx allows you to have very
> > fine control over the power consumption of the targeted system on a
> > chip (SOC). You can individually power on/off the on-chip peripheral
> > devices, control clock speeds and switch into various power-conserving
> > sleep modes. The following article on the mbed (an LPC1768 device)
> website gives a good overview:
> > "mbed Power Control/Consumption"
> > http://developer.mbed.org/users/no2chem/notebook/mbed-power-
> > sumpti
> > on/
> > Alternatively you can refer to Chapter 10 'Static Characteristics'
> > etc. of the LPC1769/68/67/66/65/64/63 Product DataSheet:
> >> IMO rPi IS a remarkable substitute-PC; but the extra layers make it
> > unsuitable
> >> for eg. controller applications.
> >> Would Astrobe-Oberon7 also be subject to random delays due to GC?
> > Not at all. Astrobe-Oberon-07 neither has nor needs a garbage collector.
> > Astrobe's purpose is to create OS-free, single, dedicated,
> > Oberon-language applications for real-time embedded controller
> > systems. Hence, memory management is not an issue.
> > Regards,
> > Chris
> > Chris Burrows
> > CFB Software
> > Oberon for Cortex-M4, M3 and ARM7 Microcontrollers
> > http://www.astrobe.com
> > --
> > Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related
> > systems https://lists.inf.ethz.ch/mailman/listinfo/oberon
More information about the Oberon