HOME

TheInfoList



OR:

FreeRTOS is a
real-time operating system A real-time operating system (RTOS) is an operating system (OS) for real-time applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which m ...
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learnin ...
for
embedded device An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' as ...
s that has been ported to 35
microcontroller A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable i ...
platforms. It is distributed under the
MIT License The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license comp ...
.


History

The FreeRTOS kernel was originally developed by Richard Barry around 2003, and was later developed and maintained by Barry's company, Real Time Engineers Ltd. In 2017, the firm passed stewardship of the FreeRTOS project to
Amazon Web Services Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon.com, Amazon that provides Software as a service, on-demand cloud computing computing platform, platforms and Application programming interface, APIs to individuals, companies, and gover ...
(AWS). Barry continues to work on FreeRTOS as part of an AWS team.


Implementation

FreeRTOS is designed to be small and simple. It is mostly written in the
C programming language ''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as ...
to make it easy to port and maintain. It also comprises a few
assembly language In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
functions where needed, mostly in architecture-specific scheduler routines.


Process management

FreeRTOS provides methods for multiple threads or tasks,
mutex In computer science, a lock or mutex (from mutual exclusion) is a synchronization primitive: a mechanism that enforces limits on access to a resource when there are many threads of execution. A lock is designed to enforce a mutual exclusion concu ...
es, semaphores and
software timer A timer is a specialized type of clock used for measuring specific time intervals. Timers can be categorized into two main types. The word "timer" is usually reserved for devices that counts down from a specified time interval, while devices th ...
s. A tickless mode is provided for low power applications. Thread priorities are supported. FreeRTOS applications can be statically allocated, but objects can also be dynamically allocated with five schemes of
memory management Memory management is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when ...
(allocation): * allocate only; * allocate and free with a very simple, fast, algorithm; * a more complex but fast allocate and free algorithm with memory coalescence; * an alternative to the more complex scheme that includes memory coalescence that allows a heap to be broken across multiple memory areas. * and C library allocate and free with some mutual exclusion protection. RTOSes typically do not have the more advanced features that are found in
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s like
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
and
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
, such as
device driver In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and ot ...
s, advanced memory management, and user accounts. The emphasis is on compactness and speed of execution. FreeRTOS can be thought of as a thread library rather than an operating system, although command line interface and POSIX-like
input/output In computing, input/output (I/O, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system. Inputs are the signals ...
(I/O) abstraction are available. FreeRTOS implements multiple threads by having the host program call a thread tick method at regular short intervals. The thread tick method switches tasks depending on priority and a
round-robin scheduling Round-robin (RR) is one of the algorithms employed by process and network schedulers in computing.Guowang Miao, Jens Zander, Ki Won Sung, and Ben Slimane, Fundamentals of Mobile Data Networks, Cambridge University Press, , 2016. As the term is ...
scheme. The usual interval is 1 to 10 milliseconds ( to of a second) via an interrupt from a hardware timer, but this interval is often changed to suit a given application. The software distribution contains prepared configurations and demonstrations for every port and compiler, allowing rapid application design. The project website provides documentation and RTOS tutorials, and details of the RTOS design.


Key features

* Book and reference manuals. * Small memory size, low overhead, and fast execution. * Tick-less option for low power applications. * Intended for both hobbyists and professional developers working on commercial products. * Scheduler can be configured for both preemptive or cooperative multitasking. *
Coroutine Coroutines are computer program components that generalize subroutines for non-preemptive multitasking, by allowing execution to be suspended and resumed. Coroutines are well-suited for implementing familiar program components such as cooperative ...
support (coroutines in FreeRTOS are simple and lightweight tasks with limited use of the
call stack In computer science, a call stack is a stack data structure that stores information about the active subroutines of a computer program. This kind of stack is also known as an execution stack, program stack, control stack, run-time stack, or ma ...
) * Trace support through generic trace macros. Tools such as Tracealyzer, a commercial tool by FreeRTOS partner Percepio, can thereby record and visualize the runtime behavior of FreeRTOS-based systems for debugging and verification. This includes task scheduling and kernel calls for semaphore and queue operations.


Supported architectures

*
Altera Altera Corporation was a manufacturer of programmable logic devices (PLDs) headquartered in San Jose, California. It was founded in 1983 and acquired by Intel in 2015. The main product lines from Altera were the flagship Stratix series, mid-rang ...
Nios II Nios II is a 32-bit embedded processor architecture designed specifically for the Altera family of field-programmable gate array (FPGA) integrated circuits. Nios II incorporates many enhancements over the original Nios architecture, making it mo ...
*
ARM architecture ARM (stylised in lowercase as arm, formerly an acronym for Advanced RISC Machines and originally Acorn RISC Machine) is a family of reduced instruction set computer (RISC) instruction set architectures for computer processors, configured ...
**
ARM7 ARM7 is a group of 32-bit RISC ARM processor cores licensed by ARM Holdings for microcontroller use. The ARM7 core family consists of ARM700, ARM710, ARM7DI, ARM710a, ARM720T, ARM740T, ARM710T, ARM7TDMI, ARM7TDMI-S, ARM7EJ-S. The ARM7TDMI a ...
**
ARM9 ARM9 is a group of 32-bit RISC ARM processor cores licensed by ARM Holdings for microcontroller use. The ARM9 core family consists of ARM9TDMI, ARM940T, ARM9E-S, ARM966E-S, ARM920T, ARM922T, ARM946E-S, ARM9EJ-S, ARM926EJ-S, ARM968E-S, ARM996 ...
**
ARM Cortex-M The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by Arm Holdings. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices. Thou ...
**
ARM Cortex-A The ARM Cortex-A is a group of 32-bit and 64-bit RISC ARM processor cores licensed by Arm Holdings. The cores are intended for application use. The group consists of 32-bit only cores: ARM Cortex-A5, ARM Cortex-A7, ARM Cortex-A8, ARM Cortex- ...
*
Atmel Atmel Corporation was a creator and manufacturer of semiconductors before being subsumed by Microchip Technology in 2016. Atmel was founded in 1984. The company focused on embedded systems built around microcontrollers. Its products included micr ...
**
Atmel AVR AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit Reduced instruction set computer, RISC single-chip microcontrollers. AVR was one of the f ...
**
AVR32 AVR32 is a 32-bit RISC microcontroller architecture produced by Atmel. The microcontroller architecture was designed by a handful of people educated at the Norwegian University of Science and Technology, including lead designer Øyvind Strøm an ...
** SAM3, SAM4 ** SAM7, SAM9 ** SAMD20, SAML21 *
Ceva Ceva, the ancient Ceba, is a small Italian town in the province of Cuneo, region of Piedmont, east of Cuneo. It lies on the right bank of the Tanaro on a wedge of land between that river and the Cevetta stream. History In the pre-Roman period th ...
**Ceva-BXx **SensPro **Ceva-XC16 **Ceva-XM6 **Ceva-Xx **Ceva-XM4 * Cortus ** APS1 ** APS3 ** APS3R ** APS5 ** FPS6 ** FPS8 *
Cypress Cypress is a common name for various coniferous trees or shrubs of northern temperate regions that belong to the family Cupressaceae. The word ''cypress'' is derived from Old French ''cipres'', which was imported from Latin ''cypressus'', the ...
**
PSoC PSoC (programmable system on a chip) is a family of microcontroller integrated circuits by Cypress Semiconductor. These chips include a CPU core and mixed-signal arrays of configurable integrated analog and digital peripherals. History ...
*
Energy Micro Energy Micro AS, acquired by Silicon Labs in 2013, was a Norwegian fabless semiconductor company specializing in 32-bit RISC ARM chips. The company focused on ultra low energy consumption MCUs, SoC radios and RF Transceiver. Its EFM32 microc ...
**
EFM32 EFM32 Gecko MCUs are a family of mixed-signal 32-bit microcontroller integrated circuits from Energy Micro (now Silicon Labs) based on ARM Cortex-M CPUs, including the Cortex-M0+, Cortex-M3 and Cortex-M4. Overview EFM32 microcontrollers have a m ...
*
eSi-RISC eSi-RISC is a configurable CPU architecture. It is available in five implementations: the eSi-1600, eSi-1650, eSi-3200, eSi-3250 and eSi-3264. The eSi-1600 and eSi-1650 feature a 16-bit data-path, while the eSi-32x0s feature 32-bit data-paths, ...
** eSi-16x0 ** eSi-32x0 *
DSP Group DSP Group, Inc. was an American company that manufactured chipsets for VoIP, multimedia, and digital cordless applications. Founded in 1987 with headquarters in San Jose, California, DSP Group employed over 400 people at three US sites and offices ...
** DBMD7 * Espressif **
ESP8266 The ESP8266 is a low-cost Wi-Fi microchip, with built-in TCP/IP stack, TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China. The chip was popularized in the English-speaking maker culture ...
**
ESP32 ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth. The ESP32 series employs either a Tensilica Xtensa LX6 microprocessor in both dual-core and single-core variations, Xtensa L ...
*
Fujitsu is a Japanese multinational information and communications technology equipment and services corporation, established in 1935 and headquartered in Tokyo. Fujitsu is the world's sixth-largest IT services provider by annual revenue, and the la ...
** FM3 ** MB91460 ** MB96340 *
Freescale Freescale Semiconductor, Inc. was an American semiconductor manufacturer. It was created by the divestiture of the Semiconductor Products Sector of Motorola in 2004. Freescale focused their integrated circuit products on the automotive, embed ...
**
Coldfire The NXP ColdFire is a microprocessor that derives from the Motorola 68000 family architecture, manufactured for embedded systems development by NXP Semiconductors. It was formerly manufactured by Freescale Semiconductor (formerly the semiconductor ...
V1, V2 ** HCS12 ** Kinetis * IBM ** PPC404, PPC405 *
Infineon Infineon Technologies AG is a German semiconductor manufacturer founded in 1999, when the semiconductor operations of the former parent company Siemens AG were spun off. Infineon has about 50,280 employees and is one of the ten largest semicond ...
**
TriCore TriCore is a 32-bit microcontroller architecture from Infineon. It unites the elements of a RISC processor core, a microcontroller and a DSP in one chip package. History and background In 1999, Infineon launched the first generation of AUDO (Au ...
**
Infineon XMC4000 XMC is a family of microcontroller Integrated circuit, ICs by Infineon. The XMC microcontrollers use the 32-bit reduced instruction set computer, RISC ARM processor cores from ARM Holdings, such as ARM Cortex-M4F, Cortex-M4F and ARM Cortex-M0, Cor ...
*
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
**
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introd ...
**
8052 The Intel MCS-51 (commonly termed 8051) is a single chip microcontroller (MCU) series developed by Intel in 1980 for use in embedded systems. The architect of the Intel MCS-51 instruction set was John H. Wharton. Intel's original versions were p ...
*
Microchip Technology Microchip Technology Inc. is a publicly-listed American corporation that manufactures microcontroller, mixed-signal, analog and Flash-IP integrated circuits. Its products include microcontrollers ( PIC, dsPIC, AVR and SAM), Serial EEPROM ...
** PIC18, PIC24, dsPIC ** PIC32 *
Microsemi Microsemi Corporation was an Aliso Viejo, California-based provider of semiconductor and system solutions for aerospace & defense, communications, data center and industrial markets. In February 2018, it was announced that Chandler, Arizona-base ...
**
SmartFusion SmartFusion is a family of microcontrollers with an integrated FPGA of Actel. The device includes an ARM Cortex-M3 hard processor core (with up to 512kB of flash and 64kB of RAM) and analog peripherals such as a multi-channel ADC and DACs in addit ...
*
Multiclet MultiClet is an ongoing innovation project for a microprocessor that claims to be the first post von Neumann, multicellular microprocessor, breaking the paradigm for computing technology that has been in place for more than 60 years. There have be ...
** P1 *
NXP NXP Semiconductors N.V. (NXP) is a Dutch semiconductor designer and manufacturer with headquarters in Eindhoven, Netherlands. The company employs approximately 31,000 people in more than 30 countries. NXP reported revenue of $11.06 billion in 2 ...
** LPC1000 ** LPC2000 **
LPC4300 LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors (formerly Philips Semiconductors). The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M4 ...
*
Renesas is a Japanese semiconductor manufacturer headquartered in Tokyo, Japan, initially incorporated in 2002 as Renesas Technology, the consolidated entity of the semiconductor units of Hitachi and Mitsubishi excluding their dynamic random-access memo ...
** 78K0R ** RL78 ** H8/S ** RX600 ** RX200 **
SuperH SuperH (or SH) is a 32-bit reduced instruction set computing (RISC) instruction set architecture (ISA) developed by Hitachi and currently produced by Renesas. It is implemented by microcontrollers and microprocessors for embedded systems. At t ...
**
V850 V850 is a 32-bit RISC CPU architecture produced by Renesas Electronics for embedded microcontrollers. It was designed by NEC as a replacement for their earlier NEC V60 family, and was introduced shortly before NEC sold their designs to Renesas ...
*
RISC-V RISC-V (pronounced "risk-five" where five refers to the number of generations of RISC architecture that were developed at the University of California, Berkeley since 1981) is an open standard instruction set architecture (ISA) based on estab ...
** RV32I ** RV64I ** PULP RI5CY *
Silicon Labs Silicon Laboratories, Inc. (Silicon Labs) is a fabless global technology company that designs and manufactures semiconductors, other silicon devices and software, which it sells to electronics design engineers and manufacturers in Internet of Th ...
** Gecko (ARM Cortex) *
STMicroelectronics STMicroelectronics N.V. commonly referred as ST or STMicro is a Dutch multinational corporation and technology company of French-Italian origin headquartered in Plan-les-Ouates near Geneva, Switzerland and listed on the French stock market. ST ...
**
STM32 STM32 is a family of 32-bit microcontroller integrated circuits by STMicroelectronics. The STM32 chips are grouped into related series that are based around the same 32-bit ARM architecture, ARM processor core, such as the ARM Cortex-M#Cortex ...
** STR7 *
Texas Instruments Texas Instruments Incorporated (TI) is an American technology company headquartered in Dallas, Texas, that designs and manufactures semiconductors and various integrated circuits, which it sells to electronics designers and manufacturers globall ...
** C2000 series (TMS320F28x) **
MSP430 The MSP430 is a mixed-signal microcontroller family from Texas Instruments, first introduced on 14 February 1992. Built around a CPU, the MSP430 is designed for low cost and, specifically, low power consumption embedded applications. Applic ...
** Stellaris **
Hercules Hercules (, ) is the Roman equivalent of the Greek divine hero Heracles, son of Jupiter and the mortal Alcmena. In classical mythology, Hercules is famous for his strength and for his numerous far-ranging adventures. The Romans adapted the Gr ...
(TMS570LS04 & RM42) *
Xilinx Xilinx, Inc. ( ) was an American technology and semiconductor company that primarily supplied programmable logic devices. The company was known for inventing the first commercially viable field-programmable gate array (FPGA) and creating the fi ...
** MicroBlaze ** Zynq-7000


Derivations


Amazon FreeRTOS

Amazon Amazon most often refers to: * Amazons, a tribe of female warriors in Greek mythology * Amazon rainforest, a rainforest covering most of the Amazon basin * Amazon River, in South America * Amazon (company), an American multinational technology c ...
provides an extension of FreeRTOS, referred to as ''a:FreeRTOS''. This is FreeRTOS with libraries for
Internet of things The Internet of things (IoT) describes physical objects (or groups of such objects) with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other comm ...
(IoT) support, specifically for
Amazon Web Services Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon.com, Amazon that provides Software as a service, on-demand cloud computing computing platform, platforms and Application programming interface, APIs to individuals, companies, and gover ...
. Since version 10.0.0 in 2017, Amazon has taken stewardship of the FreeRTOS code, including any updates to the original kernel.


SAFERTOS

SAFERTOS was developed as a complementary version of FreeRTOS, with common functions, but designed for safety-critical implementation. FreeRTOS was subject to
hazard and operability study A hazard and operability study (HAZOP) is a structured and systematic examination of a complex plan or operation in order to identify and evaluate problems that may represent risks to personnel or equipment. The intention of performing a HAZOP is to ...
(HAZOP), and weaknesses were identified and resolved. The result was put through a full
IEC 61508 IEC 61508 is an international standard published by the International Electrotechnical Commission consisting of methods on how to apply, design, deploy and maintain automatic protection systems called safety-related systems. It is titled ''Functio ...
SIL 3 development lifecycle, the highest level for a software-only component. SAFERTOS was developed by Wittenstein High Integrity Systems, in partnership with Real Time Engineers Ltd, primary developer of the FreeRTOS project. Both SAFERTOS and FreeRTOS share the same scheduling algorithm, have similar application programming interfaces (
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
s), and are otherwise very similar, but they were developed with differing objectives.Relationship between FreeRTOS and SAFERTOS
/ref> SAFERTOS was developed solely in the
C language C (''pronounced like the letter c'') is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential. By design, C's features cleanly reflect the capabilities o ...
to meet requirements for certification to IEC61508. SAFERTOS can reside solely in the on-chip
read-only memory Read-only memory (ROM) is a type of non-volatile memory used in computers and other electronic devices. Data stored in ROM cannot be electronically modified after the manufacture of the memory device. Read-only memory is useful for storing sof ...
(ROM) of a microcontroller for standards compliance. When implemented in hardware memory, SAFERTOS code can only be used in its original, certified configuration. This means certifying a system needs no retesting of the kernel portion of a design. SAFERTOS is included in the ROM of some Stellaris MicrocontrollersTI Stellaris Product range
/ref> from Texas Instruments. SAFERTOS source code does not need to be separately purchased. In this usage scenario, a C header file is used to map SAFERTOS API functions to their location in read-only memory.


OPENRTOS

OPENRTOS is a commercially-licensed version of Amazon FreeRTOS, sold by Wittenstein High Integrity Systems. This product provides support and allows companies to use the Amazon FreeRTOS kernel and libraries without the a:FreeRTOS MIT license.


See also

*
Embedded operating system An embedded operating system is an operating system for embedded computer systems. Embedded operating systems are computer systems designed to increase functionality and reliability for achieving a specific task. Resource efficiency comes at the ...


References


External links

* {{Microkernel Amazon Web Services ARM operating systems Embedded operating systems Free software operating systems Microkernel-based operating systems Microkernels Real-time operating systems