TI-RTOS
TI-RTOS is an embedded tools ecosystem created and offered by Texas Instruments (TI) for use across a range of their embedded system processors. It includes a real-time operating system (RTOS) component named TI-RTOS Kernel (formerly named SYS/BIOS, which evolved from DSP/BIOS), networking connectivity stacks, power management, file systems, instrumentation, and inter-processor communications like DSP/BIOS Link. It is free and open-source software, released under a BSD license.
Developer | Texas Instruments |
---|---|
Written in | C |
OS family | Real-time operating systems |
Working state | Current |
Source model | Open source |
Initial release | 1985 |
Latest release | 2.21.01.08 / February 2018 |
Marketing target | Embedded systems |
Available in | English |
Platforms | TMS320 DSPs, ARM, MSP430 |
Kernel type | Microkernel |
License | BSD, EULA |
Official website | www |
TI-RTOS can be used within TI's Code Composer Studio integrated development environment (IDE), IAR Systems' IAR Embedded Workbench, and the GNU Compiler Collection (GCC). Separate versions of TI-RTOS are provided to support TI's MSP43x (including MSP432), SimpleLink Wireless MCU, Sitara, Tiva C, C2000, and C6000 lines of embedded devices.
TI-RTOS provides system services to an embedded application such as preemptive multitasking, memory management and real-time analysis. TI-RTOS can be used in different microprocessors, with different processing and memory constraints. It is supported by Secure Sockets Layer (SSL) and Transport Layer Security (TLS) libraries such as wolfSSL.[1]
History
The roots of TI-RTOS were originally developed by Spectron Microsystems (a subsidiary of Dialogic Corporation) as the first RTOS developed specifically for digital signal processors and was named SPOX. Spectron eventually also developed a second product named BIOSuite that included a real-time kernel and various associated tools.
Spectron Microsystems was eventually acquired by Texas Instruments[2] and the SPOX and BIOSuite products were merged into one microkernel product named DSP/BIOS. The DSP/BIOS RTOS product underwent significant changes to its application programming interface (API) in version 6.0.[3] With the release of version 6.3 in August 2010, DSP/BIOS was renamed SYS/BIOS to reflect its support for microcontrollers beyond DSPs.[4] With the release of version 6.40 in April 2014, SYS/BIOS was renamed TI-RTOS Kernel and made a component of the TI-RTOS product suite.[5]
TI-RTOS 1.00 was released initially in July 2012.[6] for TI's microprocessors[7] The 2.00 release of TI-RTOS in April 2014 completed the renaming process and integrated the TI-RTOS Kernel and other components under one software umbrella.
Component overview
TI-RTOS consists of these components, some of which are unavailable for all embedded target families:
- TI-RTOS Kernel – Embedded RTOS formerly named SYS/BIOS
- TI-RTOS Drivers and Board Initialization – Target-specific device drivers. Drivers include Ethernet, general-purpose input/output (GPIO), I²C, I²S, pulse-width modulation (PWM), Serial Peripheral Interface (SPI), universal asynchronous receiver/transmitter (UART), Universal Serial Bus (USB), Watchdog timer, and Wi-Fi.
- TI-RTOS Network Services – Stacks to support the Internet protocol suite (TCP/IP), Hypertext Transfer Protocol (HTTP), and Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols
- TI-RTOS Interprocessor Communication – APIs to support communication between TI's embedded processors (evolved from DSP/BIOS Link)
- TI-RTOS Instrumentation – APIs and tools for real-time performance and behavior analysis
- TI-RTOS File System – APIs to support the File Allocation Table (FAT) file system
Licensing
Most of the TI-RTOS components are released under the BSD License. Any user can rebuild the kernel using the included source code.
RTOS Kernel Overview
Organization
The TI-RTOS Kernel[8] is made up of a number of discrete components, called modules. Each module can provide services via an API and is individually configurable. For example, system semaphores are provided by a module named ti.sysbios.knl.Semaphore. A developer can choose whether this module is included in the runtime image or optimized out. If included, the user can configure various aspects of the Semaphore module, and instances of semaphores to be created on system start up. The module also provides an API so that semaphores can be created, posted, pended, and deleted as an embedded program runs.
Threading
TI-RTOS Kernel provides support for several different types of threads in an embedded system.
- Hardware Interrupt (Hwi): support threads initiated by a hardware interrupt.
- Software Interrupt (Swi): structured to be similar to Hwis, but allow processing to be deferred until after a hardware interrupt has completed.
- Task: a discrete thread that can execute or block while waiting for an event to occur.
- Idle: the lowest priority thread that only runs when no other thread is ready to execute.
Memory management
TI-RTOS Kernel provides tooling to set up an embedded system's memory map and allow memory buffers to be allocated and deallocated while the system runs. The type of memory manager used during runtime is configurable so that memory fragmentation can be minimized as needed.
Real-time debugging
TI-RTOS Kernel provides modules that allow it to provide information about how the system is executing. This includes how different threads are loading the CPU over time, and logging events as they occur in both the system application and within the TI-RTOS Kernel. Also, the Code Composer Studio IDE can take this logged data and graphically display it for analysis.
References
- "Speed Up Development: Code Composer Studio with TI-RTOS and wolfSSL". wolfSSL. 2015-08-13. Retrieved 2019-02-19.
- Texas Instruments to Acquire Spectron Microsystems from Dialogic Corporation, Press Release January 22, 1998
- Differences Between DSP/BIOS and SYS/BIOS, Texas Instruments Wiki
- SYS/BIOS Product Download Pages
- SYS/BIOS 6.40.01.15 GA Release Notes
- TI-RTOS Product Releases and Download Links
- TI offers scalable thread-aware RTOS spanning full MCU portfolio
- TI-RTOS Kernel software page on TI website