Home: https://ftp.rtems.org/pub/rtems/releases/5/rc/5.1.0-rc1
Release: 5.1.0-rc1
Date: 26 June 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.0-rc1 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.
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/ |
5.1.0-rc1 | Top level 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.0-rc1-release-notes.pdf | Detailed RTEMS Release notes |
sha512sum.txt | The SHA512 checksums for this directory |
Source Downloads | RTEMS Source Code |
---|---|
rtems-5.1.0-rc1.tar.xz | RTEMS kernel |
rtems-source-builder-5.1.0-rc1.tar.xz | RTEMS Source Builder |
rtems-tools-5.1.0-rc1.tar.xz | RTEMS Tools |
rtems-docs-5.1.0-rc1.tar.xz | RTEMS Documentation source |
rtems-libbsd-5.1.0-rc1.tar.xz | RTEMS LibBSD |
rtems-examples-5.1.0-rc1.tar.xz | RTEMS Examples |
sources | All source code for this release |
sha512sum.txt | SHA512 checksums for the sources directory |
The generated documentation can be found in the docs
directory.
The following manuals are available as compress HTML tar files or PDF:
For new user the Quick Start in the User Manual contains a details Quick Start guide. Download the User Manual:
https://ftp.rtems.org/pub/rtems/releases/5/rc/5.1.0-rc1/docs/rtems-5.1.0-rc1-user.pdf
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:
cd
mkdir -p development/rtems
cd development/rtems
wget https://ftp.rtems.org/pub/rtems/releases/5/rc/5.1.0-rc1/sources/rtems-source-builder-5.1.0-rc1.tar.xz
tar Jxf rtems-source-builder-5.1.0-rc1.tar.xz
cd rtems-source-builder-5.1.0-rc1/rtems
To build the tools for the ARM architecture:
../source-builder/sb-set-builder \
--prefix=$HOME/development/rtems/5.1.0-rc1 \
5/rtems-arm
To build the tools, kernel and all packages for the Beagleboneblack:
../source-builder/sb-set-builder \
--prefix=$HOME/development/rtems/5.1.0-rc1 \
5/bsps/beagleboneblack
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.
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:
Addition of new methods
Modifications to prototypes
Deletion of obsoleted methods
Implementation improvements usually fall into one of the following categories:
Algorithm improvements in execution time or memory usage
Critical section reduction
The header file <rtems.h> no longer includes <limits.h> and <string.h>.
Most services use now statically allocated resources and no longer need accounting in the application configuration.
The work area initialization (RTEMS Work Space and C Program Heap) changed. BSPs must provide now a _Memory_Get()
function.
POSIX timers and signals are now the only POSIX resources which are enabled by the POSIX API.
Support for recording of high-frequency events in particular on SMP systems
Termios supports now generation of signals.
New fatal sources:
RTEMS_FATAL_SOURCE_EXCEPTION
RTEMS_FATAL_SOURCE_PANIC
RTEMS_FATAL_SOURCE_SMP
RTEMS_FATAL_SOURCE_INVALID_HEAP_FREE
RTEMS_FATAL_SOURCE_HEAP
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()
Priority inheritance is now transitive.
POSIX key destructors are now called during thread restart.
More robust thread dispatching on SMP and ARM Cortex-M
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_NO_RETURN_ATTRIBUTE
is deprecated. Use RTEMS_NO_RETURN
instead.
RTEMS_COMPILER_PURE_ATTRIBUTE
is deprecated. Use RTEMS_PURE
instead.
RTEMS_COMPILER_DEPRECATED_ATTRIBUTE
is deprecated. Use RTEMS_DEPRECATED
instead.
RTEMS_COMPILER_UNUSED_ATTRIBUTE
is deprecated. Use RTEMS_UNUSED
instead.
RTEMS_COMPILER_PACKED_ATTRIBUTE
is deprecated. Use RTEMS_PACKED
instead.
Including <rtems/system.h> is deprecated. This header file will be removed in RTEMS 6.
rtems_clock_get()
API defined by <rtems/debug.h>
Task notepads
Task variables
Reimplemenation of the Multiprocessor Resource Sharing Protocol (MrsP) to address performance issues.
Implementation of the O(m) Independence-Preserving Protocol (OMIP).
Support for thread pinning (enables support for Epoch Based Reclamation; used by libbsd)
The default SMP scheduler supports now EDF scheduling, one-to-one and one-to-all thread to processor affinities, and thread pinning.
Timers (watchdogs) use now per-processor data structures.
Improved POSIX key to value look up.
The Ada runtime supports now SMP configurations.
All configuration options are now documented.
Most resources are now statically allocated and no longer use the workspace.
New configuration options:
CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
CONFIGURE_DIRTY_MEMORY
CONFIGURE_RECORD_EXTENSIONS_ENABLED
CONFIGURE_RECORD_FATAL_DUMP_BASE64
CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
CONFIGURE_IMFS_ENABLE_MKFIFO
CONFIGURE_IMFS_DISABLE_MKNOD_FILE
Renamed configuration options:
CONFIGURE_SMP_MAXIMUM_PROCESSORS
to CONFIGURE_MAXIMUM_PROCESSORS
CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
to CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
Removed configuration options:
CONFIGURE_SMP_APPLICATION
CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
CONFIGURE_HAS_OWN_BDBUF_TABLE
CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
CONFIGURE_HAS_OWN_FILESYSTEM_TABLE
CONFIGURE_HAS_OWN_INIT_TABLE
CONFIGURE_HAS_OWN_MOUNT_TABLE
CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE
CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
CONFIGURE_DISABLE_SMP_CONFIGURATION
CONFIGURE_MAXIMUM_DEVICES
The helper macro for the clustered scheduler configuration RTEMS_SCHEDULER_EDF_SMP()
has now only one parameter.
The following improvements were made to the RTEMS Shell:
joel
script output. Running a joel
script in a telnet session now sees the output. Nested joel
scripts also output to the telnet session.The system initialization is now performed by system initialization handlers registered in a special linker set (similar to global constructors in C++).
API header files have been collected from the various locations in the RTEMS source tree and placed under cputkit/include
and for BSPs under bsps/include
. There is no header pre-install phase when building RTEMS.
Improved parallel build performance. Nested make
calls now run in parallel.
Added support for the RISC-V 32-bit and 64-bit architecture.
Added support for the 64-bit PowerPC architecture using the ELFv2 ABI.
Synchronized support for Journalling Flash File System, Version 2 (JFFS2) with Linux 4.17.
Import of libfdt from device tree compiler project.
Added libdebugger
, a thread aware GDB debug server with TCP transport support. Currently the supported architectures are i386 and ARM. The ARM support is experimental.
Most BSP use now function and data sections to support the linker garbage collection.
This is the last release of RTEMS with the autoconf
/automake
build system. RTEMS will be moving to a waf
based build system driven from YAML specifications files. The effort is part of the on-going wotk in the RTEMS project to support qualification of the operating system.
Removed obsolete architectures:
AVR
H8300
M32C
M32R
Obsoleted architectures:
Epiphany
PowerPC SPE
General
c/src/lib/libbsp
to bsps
in the source tree. The configure and some other related pieces are still held in the original path.New BSPs
BSPs for ARM
atsamv
- Microchip (former Atmel) SAM V71 series
xilinx-zynqmp
- Xilinx Zynq UltraScale+ MPSoC platform
BSPs for RISC-V
riscv
- Family of generic BSPs
griscv
- BSP based on the GRLIB
Significant updates to existing BSPs
powerpc/qoriq
: 64-bit supportRemoval of obsoleted BSPs
arm/gdbarmsim
arm/nds
arm/gp32
arm/ep1a
arm/score603e
m68k/idp
Obsoleted BSPs
m68k/gen68302
m68k/ods68302
powerpc/brs5l
powerpc/brs6l
powerpc/dp2
powerpc/mbx8xx
powerpc/mpc5566evb_spe
powerpc/mpc5643l_dpu
powerpc/mpc5643l_evb
powerpc/mpc5674f_ecu508_app
powerpc/mpc5674f_ecu508_boot
powerpc/mpc5674fevb_spe
powerpc/mpc5674f_rsm6
Drivers
Drivers for getentropy()
New I2C device driver framework supporting the Linux user-space API
New SPI device driver framework supporting the Linux user-space API
time_t is now 64-bit to adress the year 2038 problem.
General improvements in the feature test macros support.
Newlib internal locks are now supported, e.g. for FILE objects.
The standard input, output, and error FILE objects are now global and no longer thread-specific.
Added support for C++17 std::aligned_alloc
RSB support to build a BSP software stack of tools, kernel, libbsd, and supported 3rd party packages.
RTEMS Tester (rtems-test
) support for DHCP/TFTP target hardware testing.
RTEMS Trace addition of a new trace record support for target tracing.
RTEMS Bootimage, a tool to portably create SD card images.
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 |