RISC OS Open
Safeguarding the past, present and future of RISC OS for everyone
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

RTSupport (changes)

Showing changes from revision #0 to #1: Added | Removed | Changed

Programmer's Reference Manuals
» List of modules
» RTSupport

The RTSupport module provides facilities supporting real-time code, at a priority just below that of the interrupt dispatch system, and above that of any SWIs being handled by the foreground application. Multiple priority levels are supported, so routines with tighter timing constraints can pre-empt other real-time routines. Code can be designed either using a callback model (where the system makes a function call to your entry point) or using a thread model (where the rest of the system gets CPU time while your thread sleeps).

Code typically executes in system (SYS) mode and has its own SYS and SVC stacks, and it may call SWIs (but only re-entrant SWIs) without preventing higher-priority routines from executing. There is no automatic time-slicing of routines; it is assumed that the application takes responsibility for ensuring that the system is not overloaded (although there is a relief valve to cope with overloaded systems, which ensures that the foreground process gets a little CPU time at least a few times per second).

Possible future enhancements:

  • Per-routine option of maintaining a floating point context for the routine (traps would need to be disabled while real-time routines execute)
  • Per-routine data storage (for example to support C++ exception handling)
  • Reusing spare stack frames in the IRQ stack when nearing overflow (useful for timeslicing schemes)
  • The facility to recache the priority lookup file after module initialisation

Details

  • SWI Calls
Created on November 17, 2016 09:30:09 by Alan Robertson (52) (58.110.70.190)
Edit | Views: Print | Source | Linked from: Software information: RTSupport, HALDeviceAudio_AudC, Error Handler, List of modules, Program Environment, Debugger Exception Dumps, RTSupport SWI Calls, RT_Register, RT_Deregister, RT_Yield, RT_TimedYield, RT_ChangePriority, RT_ReadInfo, Service_SDIOSlotReleased, SeriousErrorV

Search the Wiki

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2018 except where indicated
The RISC OS Open Instiki theme is based on Insitki's default layout

Valid XHTML 1.0  |  Valid CSS

Instiki 0.19.1(MML+)
This site runs on Rails

Hosted by Arachsys