How rtems/rtems works
RTEMS is an embedded real-time executive. The principal workflow is an application using RTEMS interfaces to create and manage work; the executive schedules and dispatches threads, while optional services provide communication, timing, storage, and device access. The tree and excerpts show representative implementations, not the whole kernel; the broader capability branches below are retained from the README. Edges cite README-level capability statements where sampled source does not establish a specific runtime call.
Main entry points: tasksetpriority.c Scheduling · threadhandler.c Thread startup · src Multiprocessing · start Board startup
Components 18
Application interfaces
- Runtime configuration
cpukit/include/rtems/config.h - Classic tasks
cpukit/include/rtems/rtems/tasks.h
Executive core
- Scheduling
cpukit/rtems/src/tasksetpriority.c - Thread startup
cpukit/score/src/threadhandler.c - Multiprocessing
cpukit/score/src
Kernel services
- Communication and sync
cpukit/rtems/src - Timers and timeouts
cpukit/rtems/src - Memory allocation
cpukit/score/src - File systems
cpukit/libfs/src - Dynamic loading
cpukit - Event recording
cpukit/libtrace/record/record-client.c - Object monitoring
cpukit/libmisc/monitor/mon-manager.c
Platform support
- Board startup
bsps/aarch64/shared/start - Clock management
bsps/arm/altera-cyclone-v/contrib/hwlib/src/hwmgr/alt_clock_manager.c
Device drivers
- Board device drivers
bsps/aarch64/raspberrypi - Hardware key manager
bsps/arm/imxrt/mcux-sdk/drivers/key_manager/fsl_key_manager.c
Other components
- Embedded application
- Embedded hardware
Connections 16
- Embedded application → Runtime configuration: configures
- Embedded application → Classic tasks: uses
- Embedded application → Scheduling: sets scheduling
- Embedded application → Communication and sync: communicates
- Embedded application → Timers and timeouts: uses timing
- Embedded application → Memory allocation: allocates memory
- Embedded application → File systems: uses files
- Embedded application → Dynamic loading: loads code
- Embedded application → Event recording: records events
- Embedded application → Object monitoring: monitors objects
- Board startup → Embedded hardware: initializes
- Clock management → Embedded hardware: controls clocks
- Board device drivers → Embedded hardware: drives devices
- Hardware key manager → Embedded hardware: configures keys
- Multiprocessing → Scheduling: coordinates processors
- Thread startup → Scheduling: dispatches work