Common IO
Common IO APIs act as hardware abstraction layers (HAL) that provide a common interface between drivers and higher-level application code. FreeRTOS Common IO provides a set of standard APIs for accessing common serial devices on supported reference boards; implementations of these APIs are not included. These common APIs communicate and interact with these peripherals and enable your code to function across platforms. Without Common IO, writing code to work with low level devices is silicon-vendor specific.
Note
FreeRTOS does not require implementations of the Common IO APIs to function, but it will attempt to use the Common IO APIs as a way to interface with the specific peripherals on a microcontroller-based board instead of vendor-specific APIs.
In general, device drivers are independent of the underlying operating system and are specific to a given hardware configuration. The HAL abstracts away the details of how a specific driver works and provides a uniform API to control such devices. You can use the same APIs to access various device drivers across multiple microcontroller- (MCU-) based reference boards.
Libraries
Currently, FreeRTOS provides two Common IO libraries: Common IO - basic and Common IO - BLE.
Common IO - basic
- Overview
-
Common IO - basic
provides APIs that deal with basic I/O peripherals and functions that you may find on MCU-based boards. The Common IO - basic repository is available on GitHub . - Supported peripherals
-
-
ADC
-
GPIO
-
I2C
-
PWM
-
SPI
-
UART
-
Watchdog
-
Flash
-
RTC
-
EFUSE
-
Resets
-
I2S
-
Performance counter
-
Hardware platform information
-
- Supported features
-
-
Synchronous read/write
The function doesn't return until the requested amount of data is transferred.
-
Asynchronous read/write
The function returns immediately and the data transfer happens asynchronously. When the action completes, a registered user callback is invoked.
-
- Peripheral specific
-
-
I2C
Combine multiple operations into one transaction. Used to do write then read actions in one transaction.
-
SPI
Transfer data between primary and secondary, which means the write and read happen simultaneously.
-
- API reference
-
For a full API reference, see the Common IO - basic API reference
.
Common IO - BLE
- Overview
-
Common IO - BLE provides abstraction from the manufacturer's Bluetooth Low Energy stack. It provides the following interfaces which can be used to control the device, and perform GAP and GATT operations. The Common IO - BLE repository is available on GitHub
. - Bluetooth Device Manager:
-
This provides an interface to control the Bluetooth device, perform device discovery operations and other connectivity related tasks.
- BLE Adapter Manager:
-
This provides an interface for the GAP API functions that are specific to BLE.
- Bluetooth Classic Adapter Manager:
-
This provides an interface to control BT classic functionalities of a device.
- GATT Server:
-
This provides an interface to use the Bluetooth GATT server feature.
- GATT Client:
-
This provides an interface to use the Bluetooth GATT client feature.
- A2DP Connection Interface:
-
This provides an interface for the A2DP Source profile for the local device.
- API reference
-
For a full API reference, see the Common IO - BLE API reference
.
Common IO for Amazon Common Software
The Common IO APIs are a part of the required implementations needed by
Amazon Common Software for
Devices
What is ACS?
Amazon Common Software (ACS) for Devices is software that makes it faster for you to integrate Amazon Device SDKs on your devices. ACS provides a unified API integration layer, pre-validated and memory efficient components for common functions such as connectivity, a device porting kit (DPK), and multi-tier test suites.
Qualification Program
The Amazon Common Software for
Devices
Vendors qualified under this program are listed on the
ACS Chipset Vendors
For information about qualifying, contact ACS for Devices