RTEMS 5 Embedded Realtime Operating System

Home: https://ftp.rtems.org/pub/rtems/releases/5/5.1

Release: 5.1

Date: 26 August 2020

The Real-Time Executive for Multiprocessor Systems or RTEMS is an open source Real Time Operating System (RTOS) that supports open standard application programming interfaces (API) such as POSIX. It is used in space flight, medical, networking and many more embedded devices using processor architectures including ARM, PowerPC, SPARC, Intel, RISCV, MIPS, NIOS-II, Microblaze and more (a full list is provided at the end).

This release directory contains the source code for the RTEMS 5.1 operating system and tools. All the documenation provided in HTML and PDF formats.

Please drop by the Users mailing list (users@rtems.org) and let us know how you are using RTEMS. We love hearing about user projects.

Many thanks to everyone who helped create this release.

Regards The RTEMS Development Team.

RTEMS Web Sites

Home https://www.rtems.org/
Download https://ftp.rtems.org/pub/rtems/releases
Wiki https://devel.rtems.org/
Docs https://docs.rtems.org/
Bugs https://devel.rtems.org/query
Lists https://lists.rtems.org/
Developer https://devel.rtems.org/
GIT https://git.rtems.org/

Release Files

5.1 Top le vel directory
README.txt, index.html This document
contrib Directory contains extra release related files
docs The generated RTEMS documentation
sources Source code for this release
rtems-5.1-release-notes.pdf Detail ed RTEMS Release notes
sha512sum.txt The SHA512 checksums for this directory
Source Downloads RTEMS Source Code
rtems-5.1.tar.xz RTEMS kernel
rtems-source-builder-5.1.tar.xz RTEMS Source Builder
rtems-tools-5.1.tar.xz RTEMS Tools
rtems-docs-5.1.tar.xz RTEMS Documentation source
rtems-libbsd-5.1.tar.xz RTEMS LibBSD
rtems-examples-5.1.tar.xz RTEMS Examples
sources All source code for this release
sha512sum.txt SHA512 checksums for the sources directory

RTEMS Documentation

Online RTEMS 5.1 Documentation

The generated documentation packages can be found in the docs directory.

The following manuals are available as compressed HTML tar files or PDF:

RTEMS User Manual
RTEMS C User Manual
RTEMS Software Engineering Manual
RTEMS Networking User Manual
RTEMS Shell User Manual
RTEMS Doxygen

Quick Guide to Building

For new user the Quick Start in the User Manual contains a details Quick Start guide. Download the User Manual:


and follow the instructions in the Quick Start section. If are familiar with RTEMS or just want to get going the following steps will download the RTEMS Source Builder:

mkdir -p development/rtems
cd development/rtems
wget https://ftp.rtems.org/pub/rtems/releases/5/5.1/sources/rtems-source-builder-5.1.tar.xz
tar Jxf rtems-source-builder-5.1.tar.xz
cd rtems-source-builder-5.1/rtems

To build the tools for the ARM architecture:

../source-builder/sb-set-builder \
  --prefix=$HOME/development/rtems/5.1 \

To build the tools, kernel and all packages for the Beagleboneblack:

../source-builder/sb-set-builder \
  --prefix=$HOME/development/rtems/5.1 \

If you encounter a problem please post to the user@rtems.org mailing list. You can join the Users mailing at https://lists.rtems.org/.

If you find a bug please raise a ticket at https://devel.rtems.org/newticket.

RTEMS 5.1 Release Notes

RTEMS Improvements

In this section, we discuss public API level changes as well as improvements to the implementation of those API routines.

Public API changes usually fall into one of the following categories:

Implementation improvements usually fall into one of the following categories:

API Changes

API Additions

  • Support for recording of high-frequency events in particular on SMP systems

  • Termios supports now generation of signals.

  • New fatal sources:






  • New chain API function: rtems_chain_get_first_unprotected()

  • Add user defined thread names: pthread_setname_np() and pthread_getname_np()

  • Support for xz compression/decompression

  • Added rtems_scheduler_ident_by_processor()

  • Added rtems_scheduler_ident_by_processor_set()

  • Added RTEMS_PREDICT_TRUE() and RTEMS_PREDICT_FALSE() for static branch prediction hints

  • Added rtems_malloc() and rtems_calloc()

  • Added rtems_scheduler_get_maximum_priority()

  • Added rtems_scheduler_get_processor()

  • Added rtems_scheduler_get_processor_maximum()

API Implementation Improvements

  • Priority inheritance is now transitive.

  • POSIX key destructors are now called during thread restart.

  • More robust thread dispatching on SMP and ARM Cortex-M

API Deprecations

  • rtems_iterate_over_all_threads(). Use rtems_task_iterate() instead.

  • rtems_get_current_processor(). Use rtems_scheduler_get_processor() instead.

  • rtems_get_processor_count(). Use rtems_scheduler_get_processor_maximum() instead.

  • boolean is deprecated. Use bool instead.

  • single_precision is deprecated. Use float instead.

  • double_precision is deprecated. Use double instead.

  • proc_ptr is deprecated. Use a proper function pointer type.

  • rtems_context

  • rtems_context_fp

  • rtems_extension

  • rtems_io_lookup_name() is deprecated. Use stat() instead.

  • region_information_block

  • rtems_thread_cpu_usage_t is deprecated. Use struct timespec instead.

  • rtems_rate_monotonic_period_time_t is deprecated. Use struct timespec instead.

  • _Copyright_Notice is deprecated. Use rtems_get_copyright_notice() instead.

  • _RTEMS_version is deprecated. Use rtems_get_version_string() instead.

  • RTEMS_MAXIMUM_NAME_LENGTH is deprecated. Use sizeof(rtems_name) instead.


  • RTEMS_COMPILER_PURE_ATTRIBUTE is deprecated. Use RTEMS_PURE instead.




  • Including <rtems/system.h> is deprecated. This header file will be removed in RTEMS 6.

API Removals

  • rtems_clock_get()

  • API defined by <rtems/debug.h>

  • Task notepads

  • Task variables

SMP Support Improvements

Configuration Changes

RTEMS Shell Improvements

The following improvements were made to the RTEMS Shell:



Removed obsolete architectures:

Obsoleted architectures:

BSPs and Device Drivers

Newlib Changes


Architectures and BSPs

Architectures: 18
BSP Families: 85
BSPs: 199

arm families:21 bsps:57
altcycv_devkit altera-cyclone-v
atsamv atsam
bbxm beagle
beagleboardorig beagle
beagleboardxm beagle
beagleboneblack beagle
beaglebonewhite beagle
csb336 csb336
csb337 csb337
csb637 csb337
kit637_v6 csb337
edb7312 edb7312
gumstix gumstix
imx7 imx
lm3s3749 lm3s69xx
lm3s6965 lm3s69xx
lm3s6965_qemu lm3s69xx
lm4f120 lm3s69xx
lpc1768_mbed lpc176x
lpc1768_mbed_ahb_ram lpc176x
lpc1768_mbed_ahb_ram_eth lpc176x
lpc17xx_ea_ram lpc24xx
lpc17xx_ea_rom_int lpc24xx
lpc17xx_plx800_ram lpc24xx
lpc17xx_plx800_rom_int lpc24xx
lpc2362 lpc24xx
lpc23xx_tli800 lpc24xx
lpc24xx_ea lpc24xx
lpc24xx_ncs_ram lpc24xx
lpc24xx_ncs_rom_ext lpc24xx
lpc24xx_ncs_rom_int lpc24xx
lpc24xx_plx800_ram lpc24xx
lpc24xx_plx800_rom_int lpc24xx
lpc40xx_ea_ram lpc24xx
lpc40xx_ea_rom_int lpc24xx
lpc32xx_mzx lpc32xx
lpc32xx_mzx_stage_1 lpc32xx
lpc32xx_mzx_stage_2 lpc32xx
lpc32xx_phycore lpc32xx
raspberrypi raspberrypi
raspberrypi2 raspberrypi
realview_pbx_a9_qemu realview-pbx-a9
rtl22xx rtl22xx
rtl22xx_t rtl22xx
smdk2410 smdk2410
stm32f105rc stm32f4
stm32f4 stm32f4
tms570ls3137_hdk tms570
tms570ls3137_hdk_intram tms570
tms570ls3137_hdk_sdram tms570
tms570ls3137_hdk_with_loader tms570
xen_virtual xen
xilinx_zynq_a9_qemu xilinx-zynq
xilinx_zynq_zc702 xilinx-zynq
xilinx_zynq_zc706 xilinx-zynq
xilinx_zynq_zedboard xilinx-zynq
xilinx_zynqmp_ultra96 xilinx-zynqmp
bfin families:3 bsps:3
TLL6527M TLL6527M
bf537Stamp bf537Stamp
eZKit533 eZKit533
epiphany families:1 bsps:1
epiphany_sim epiphany_sim
i386 families:1 bsps:6
pc386 pc386
pc486 pc386
pc586 pc386
pc586-sse pc386
pc686 pc386
pcp4 pc386
lm32 families:2 bsps:3
lm32_evr lm32_evr
lm32_evr_gdbsim lm32_evr
milkymist milkymist
m68k families:16 bsps:20
av5282 av5282
csb360 csb360
gen68340 gen68340
gen68360 gen68360
gen68360_040 gen68360
pgh360 gen68360
COBRA5475 genmcf548x
m5484FireEngine genmcf548x
mcf5206elite mcf5206elite
mcf52235 mcf52235
mcf5225x mcf5225x
mcf5235 mcf5235
mcf5329 mcf5329
mrm332 mrm332
mvme147 mvme147
mvme147s mvme147s
mvme162 mvme162
mvme162lx mvme162
mvme167 mvme167
uC5282 uC5282
mips families:6 bsps:6
csb350 csb350
hurricane hurricane
jmr3904 jmr3904
malta malta
rbtx4925 rbtx4925
rbtx4938 rbtx4938
moxie families:1 bsps:1
moxiesim moxiesim
nios2 families:1 bsps:1
nios2_iss nios2_iss
no_cpu families:1 bsps:1
no_bsp no_bsp
or1k families:1 bsps:1
generic_or1k generic_or1k
powerpc families:18 bsps:48
beatnik beatnik
brs5l gen5200
brs6l gen5200
dp2 gen5200
icecube gen5200
pm520_cr825 gen5200
pm520_ze30 gen5200
br_uid gen83xx
hsc_cm01 gen83xx
mpc8309som gen83xx
mpc8313erdb gen83xx
mpc8349eamds gen83xx
haleakala haleakala
mcp750 motorola_powerpc
mtx603e motorola_powerpc
mvme2100 motorola_powerpc
mvme2307 motorola_powerpc
qemuprep motorola_powerpc
qemuprep-altivec motorola_powerpc
gwlcfm mpc55xxevb
mpc5566evb mpc55xxevb
mpc5566evb_spe mpc55xxevb
mpc5643l_dpu mpc55xxevb
mpc5643l_evb mpc55xxevb
mpc5668g mpc55xxevb
mpc5674f_ecu508_app mpc55xxevb
mpc5674f_ecu508_boot mpc55xxevb
mpc5674f_rsm6 mpc55xxevb
mpc5674fevb mpc55xxevb
mpc5674fevb_spe mpc55xxevb
phycore_mpc5554 mpc55xxevb
mpc8260ads mpc8260ads
mvme3100 mvme3100
mvme5500 mvme5500
psim psim
qemuppc qemuppc
qoriq_core_0 qoriq
qoriq_core_1 qoriq
qoriq_e500 qoriq
qoriq_e6500_32 qoriq
qoriq_e6500_64 qoriq
ss555 ss555
t32mppc t32mppc
pghplus tqm8xx
tqm8xx_stk8xx tqm8xx
virtex virtex
virtex4 virtex4
virtex5 virtex5
riscv families:2 bsps:27
griscv griscv
grv32i griscv
grv32im griscv
grv32imac griscv
grv32imafdc griscv
frdme310arty riscv
rv32i riscv
rv32i_clang riscv
rv32iac riscv
rv32iac_clang riscv
rv32im riscv
rv32im_clang riscv
rv32imac riscv
rv32imac_clang riscv
rv32imafc riscv
rv32imafc_clang riscv
rv32imafd riscv
rv32imafd_clang riscv
rv32imafdc riscv
rv32imafdc_clang riscv
rv64imac riscv
rv64imac_medany riscv
rv64imafd riscv
rv64imafd_medany riscv
rv64imafdc riscv
rv64imafdc_clang riscv
rv64imafdc_medany riscv
sh families:4 bsps:7
gensh1 gensh1
gensh2 gensh2
gensh4 gensh4
simsh1 shsim
simsh2 shsim
simsh2e shsim
simsh4 shsim
sparc families:3 bsps:8
erc32 erc32
at697f leon2
leon2 leon2
gr712rc leon3
gr740 leon3
leon3 leon3
ut699 leon3
ut700 leon3
sparc64 families:2 bsps:2
niagara niagara
usiii usiii
v850 families:1 bsps:6
v850e1sim gdbv850sim
v850e2sim gdbv850sim
v850e2v3sim gdbv850sim
v850esim gdbv850sim
v850essim gdbv850sim
v850sim gdbv850sim
x86_64 families:1 bsps:1
amd64 amd64