GSOC:disable newlibc reentrancy
Alan Cudmore
Alan.P.Cudmore at nasa.gov
Thu May 8 16:57:49 UTC 2008
The announcement below may be of interest to the TinyRTEMS project.
An RTEMS API compatible RTOS. It is currently targeted to the Leon 2,
but it should be possible to port it to new architectures. The
announcement says it will be released under GPL this year.
Alan
------------
Austrian Aerospace announces the opening of the sources of ARTOS,
a light weight Real Time Operating System Kernel, for Leon-2.
The API of this free RTOS is compatible to RTEMS (www.rtems.org)
and exhibits a number of qualities that make it especially
suitable for space applications:
- there is no use of dynamic memory allocation
- task stack usage and interrupt stack usage can be
monitored on-the-fly
- detection of implausible values of the stack pointer
- detection of task control block damages
- heavy use of source code comments to ease
long life maintenance
- heavy use of assert()ions and defensive programming
style
- adherence to a locking discipline to ease thorough
testing for data races with tools based on the
lock set algorithm
- independence of the Standard-C library
- ARTOS is programmed according to a very
strict coding standard
- only 7KB memory footprint
This operating system is for single CPU use only and at
the time being features two different scheduling
strategies:
- priority based pre-emtive scheduling, where each task
has a unique priority
- priority based Run To Completion scheduling
Both schedulers allow to interface with our dynamic Worst
Case Execution Time measurement tool.
The kernel is configurable/scalable via ten well documented
preprocessor macros. The ARTOS test suite features 100%
unit test decision coverage, 100% structured integration
test coverage and 100% system level requirements coverage
tested on the AT697E for a given configuration. The test suite
sources, however, won't be released to the general public.
The RTOS allows the use of Leon-2's Interrupt Mask and
Priority Register (ITMP) to dynamically change the
priorities of interrupts or to mask interrupts. The
implementation of this feature works around the
unpredictable effect latency of writes to ITMP.
The following RTEMS system calls are supported by ARTOS:
rtems_initialize_executive_early
rtems_initialize_executive_late
rtems_set_error_handler
rtems_fatal_error_occurred
rtems_task_create
rtems_task_start
rtems_task_ident
rtems_semaphore_create
rtems_semaphore_ident
rtems_semaphore_release
rtems_semaphore_obtain
rtems_message_queue_create
rtems_message_queue_ident
rtems_message_queue_urgent
rtems_message_queue_send
rtems_message_queue_get_number_pending
rtems_message_queue_receive
rtems_event_send
rtems_event_receive
rtems_interrupt_enable
rtems_interrupt_disable
rtems_interrupt_is_in_progress
rtems_interrupt_catch
rtems_partition_create
rtems_partition_ident
rtems_partition_get_buffer
rtems_partition_return_buffer
The source code of ARTOS will be released under the GPL
mid of this year. Companies signing a non-disclosure
agreement with Austrian Aerospace, will have the
opportunity to obtain test versions of ARTOS earlier
than that.
In case of questions or requests you are welcomed to
contact stephan.gruenfelder at space.at
More information about the users
mailing list