Overview
The Keil Real-Time Library (RL-ARM) is a collection of easy-to-use middleware components that are designed to work across many different microcontrollers. This allows you to learn the software once and then use it multiple times. Use these existing resources to allow you to focus on the development of the core of your application. There's no need to waste time re-implementing low-level functions. The RL-ARM middleware integrates into the Keil Microcontroller Development Kit (MDK-ARM). The RL-ARM library consists of five main components; a Flashbased file system, a TCP/IP networking suite, drivers for USB and CAN, and the RTX Kernel. Each of the middleware components is designed to be used with the Keil RTX real-time operating system. However, with the exception of the CAN driver, each component may be used without RTX. All Keil middleware libraries have been designed, tested, and optimized by ARM and Keil engineers for ARM platforms. The libraries have a modular design with simple APIs. All middleware components are available as source code. This allows you to rebuild libraries or extend their feature set and is useful where source code is needed for product certification.
Flash File System (RL-FlashFS)
The file system can be used to store program data during deep power saving modes, or for holding program constants, or even for storing firmware upgrades for a bootloader. In short, a file system is a new and extremely useful tool for developers of small, embedded systems. RL-Flash File System (RL-FlashFS) is a software library that provides a common API to create, save, read, and modify files on a Flash device. The library offers interface functions and handles the low level file input and output operations. Developer can focus on the application needs rather than concerning about the implemented file system. RL-FlashFS works with several ARM and Cortex-M processor-based devices, and can be used standalone or with the RTX RTOS. RL-FlashFS applications are written using standard C constructs and are compiled with the ARM RealView Compiler.
RL-FlashFS supports several media types, such as standard Secure Digital (SD), Secure Digital High Capacity (SDHC), Multi Media Card (MMC), and Flash Memory Cards. Flash File System Features lists the RL-FlashFS characteristics.
CAN Driver (RL-CAN)
The RL-CAN Real-Time Library CAN Driver is a group of library routines that enable CAN communications on a variety of microcontrollers. The CAN (Controller Area Network) protocol was originally developed for networking in the automotive sector. The aim was to replace the wiring loom in passenger vehicles. CAN is characterized by relatively fast data transfer, good error detection, good recovery and low electromagnetic interference (EMI). Unlike Ethernet, its arbitration method can guarantee deterministic delivery of message packets within defined system latency. It has been widely adopted into many industries as a de-facto standard for distributed control systems, as it is an ideal method of networking small, embedded systems.
The RL-CAN for the RTX Kernel simplifies the implementation of Controller Area Network (CAN) applications. The RL-CAN includes a common generic software layer and a hardware dependent software layer that implements the physical interface with the CAN peripheral. The RL-CAN runs interrupt service routines using RTX Kernel functions for Mailbox Management and Memory Allocation. The RL-CAN uses one Memory Pool for all CAN messages. Each CAN controller has two mailbox arrays, one to receive and one to transmit message buffering. The buffer method is First In First Out (FIFO) based. The interrupt-based RL-CAN provides the user with an available mechanism for message transmission and reception.
USB Interface (RL-USB)
Today the Universal Serial Bus (USB) is the standard way to connect external peripherals to a Personal Computer (PC). Consequently, if you are designing an embedded system that has to interact with a PC, your customers will expect it to use a USB port. RL-USB is an easy-to-use USB software stack that provides a common API across a range of USB peripherals found on different microcontroller devices.
RL-USB describes the RL-USB Library designed to create USB Device and USB Host applications. RL-USB is integrated in the Real-Time Library (RL-ARM). The RL-USB Library offers configurable functions to quickly design an application for a USB Device or USB Host. The library handles the low-level USB requests without the need to write the hardware layer code. Developers can focus on the application's request rather than concentrating on the specialties of the USB protocol. The USB Host library is an embedded USB stack supporting USB MSC (Mass Storage Class) and HID (Human Interface Device) classes. It has been designed to be high-performance while using as little memory as possible. The USB Device Interface uses standard device driver classes that are available with all Windows PCs. No Windows host driver development is required. The USB Device interface uses a generic software layer using RTX Kernel features.
TCP/IP Networking Suite (RL-TCPnet)
TCP/IP is a suite of protocols designed to support local and wide area networking. RL-TCPnet is an implementation of the TCP/IP protocol stack. The stack aims at reducing the memory usage and the code size. This makes it suitable for devices with limited resources, such as embedded systems. The RL-TCPnet library is a ground-up implementation of software routines for the ARM7, ARM9, Cortex-M1 and Cortex-M3 architectures.
RL-TCPnet has integrated applications such as WEB Server, Telnet Server, and TFTP Server. Web pages are stored in a simple ROM file system integrated into the RL-TCPnet, so RL-FlashFS is not required. For an application where only the Web configuration is needed, the RTOS kernel and the RL-FlashFS can both be omitted, and thus the code size of the application can be reduced. RL-TCPnet is designed as a stand alone TCP/IP Operating System and does not require an RTOS kernel to run. RL-TCPnet can also be used together with the RTX kernel. In this case, the basic framework is setup a little differently.
Key Features
The RL-ARM Realtime Library is a very powerful library that offers you complete solutions for TCP/IP, Flash File System, CAN and USB. The RL-ARM is a group of tightly-coupled libraries designed to solve the real-time and communication challenges of embedded systems. Those easy-to-use middleware components are designed to work across many ARM- and Cortex-M processor-based microcontrollers. Other features of Keil middleware libraries include:
- Scalability - the modular structure means that applications are easy to design and maintain. Libraries can be used and re-used in multiple applications, from the most simple to the highly complex.
- Abstraction - by removing the requirement to implement low-level peripheral and task management functions you allow your engineers to concentrate on what they know best - developing the core functionality of your application.
- Reliability - when you take advantage of the Keil middleware code you are working with the confidence that all of these components have been rigorously tested by ARM engineers and third party users.
- Cost – MDK-Professional middlware libraries are supplied Royalty-Free. While it is possible to develop similar functionality yourself, this approach rarley reduces cost and in most cases leads to unexpected delays, particularly if your engineers are working in unfamiliar areas. MDK-Professional enables you to reduce cost and development time.
- Support - There are extensive online resources including examples and templates to enable you to quickly start your project. MDK-ARM is fully supported by Keil to ensure that if you have questions during your development then you are not alone.
Licensing Options
Keil Middleware components are supplied royalty-free as part of MDK-Professional EditionMDK-Professional Edition and are not available separately. It is not included with other MDK-ARM Editions. Each license entitles a single engineer to use the middleware libraries in multiple projects.
- Single User, Multi Project License
The MDK-Professional End User License entitles a single engineer to use the middleware components in multiple projects. This allows you to purchase MDK-Professional once and use it in all current and future products without additional payments. All engineers using MDK-Professional must have a valid license.
- Royalty-Free
All middleware components are supplied Royalty-Free. There are no run-time royalty payments or other hidden charges. Once licensed you can ship products created using MDK-Professional with no further fees.
- Source Code
Full source code for RTX is included in all MDK-ARM Editions. Middleware source code is available separately. Access to the source code allows you to rebuild libraries or extend their feature set. It is also useful where source code is needed for product certification. Source code is not required for porting purposes or retargeting to new hardware.
- Fair Pricing
The full feature set of MDK-Professional is available for less than the cost of a single component available from some vendors. Licenses include a year's support and maintenance as well as upgrades to the latest implementations as and when they are released.
Supported CPU
RL-ARM Library can be used with devices based on:
Manufacturer | Core Architecture |
---|---|
Actel | Cortex-M1, Cortex-M3, ARM7TDMI-S |
Analog Devices | ARM7TDMI |
Atmel | ARM7TDMI, ARM920T, ARM926EJ-S, Cortex-M3 |
Cirrus Logic | ARM7TDMI |
Cypress | Cortex-M3 |
Freescale | ARM7TDMI, ARM926EJ-S |
Fujitsu | Cortex-M3 |
NXP | ARM7TDMI-S, ARM720T, ARM922T, ARM968E-S, Cortex-M0, Cortex-M3 |
STMicroelectronics | ARM7TDMI, ARM966E-S, Cortex-M3 |
Texas Instruments | ARM7TDMI, Cortex-M3 |
Toshiba | ARM926EJ-S, Cortex-M3 |
Zilog | ARM922T |
Video
Technical Documents
Learning Center
Design Element
Type | Description |
---|---|