Full API list
This is the full list of APIs Mbed OS offers application writers (it does not include the internal APIs, which are not intended for use by application code). The list indicates which of the APIs the bare metal profile supports, and which of those are manually enabled (as opposed to enabled by default). For consistency, we also show the full profile's API support, although that is - and is expected to remain - all APIs.
For a list of APIs that were removed in Mbed OS 6, see the deprecated APIs list at the bottom of this page.
Scheduling
The Mbed OS scheduling capabilities include managing objects such as threads, synchronization objects and timers. It also provides interfaces for attaching an application-specific idle hook function, reads the OS tick count and implements functionality to report RTOS errors.
RTOS
API | Full profile | Bare metal profile |
---|---|---|
ConditionVariable | ✔ | |
EventFlags | ✔ | ✔ |
Idle loop | ✔ | |
Kernel interface functions | ✔ | get_ms_count only |
✔ | ||
Mutex | ✔ | ✔ |
Queue | ✔ | |
Semaphore | ✔ | ✔ |
ThisThread | ✔ | ✔ |
Thread | ✔ |
Event handling
API | Full profile | Bare metal profile |
---|---|---|
Event | ✔ | ✔ (can be manually enabled) |
EventQueue | ✔ | ✔ (can be manually enabled) |
UserAllocatedEvent | ✔ | ✔ (can be manually enabled) |
Drivers
Driver APIs include analog and digital inputs and outputs on development boards, as well as digital interfaces to a computer or external devices.
Serial (UART) drivers
API | Full profile | Bare metal profile |
---|---|---|
BufferedSerial | ✔ | ✔ |
UnbufferedSerial | ✔ | ✔ |
SPI drivers
API | Full profile | Bare metal profile |
---|---|---|
QuadSPI (QSPI) | ✔ | ✔ |
SPI | ✔ | ✔ |
SPISlave | ✔ | ✔ |
Input/Output drivers
API | Full profile | Bare metal profile |
---|---|---|
AnalogIn | ✔ | ✔ |
AnalogOut | ✔ | ✔ |
BusIn | ✔ | ✔ |
BusOut | ✔ | ✔ |
BusInOut | ✔ | ✔ |
DigitalIn | ✔ | ✔ |
DigitalOut | ✔ | ✔ |
DigitalInOut | ✔ | ✔ |
InterruptIn | ✔ | ✔ |
PortIn | ✔ | ✔ |
PortOut | ✔ | ✔ |
PortInOut | ✔ | ✔ |
PwmOut | ✔ | ✔ |
USB drivers
API | Full profile | Bare metal profile |
---|---|---|
USBAudio | ✔ | ✔ |
USBCDC | ✔ | ✔ |
USBCDC_ECM | ✔ | |
USBHID | ✔ | ✔ |
USBKeyboard | ✔ | ✔ |
USBMIDI | ✔ | ✔ |
USBMouse | ✔ | ✔ |
USBMouseKeyboard | ✔ | ✔ |
USBMSD | ✔ | ✔ |
USBSerial | ✔ | ✔ |
Other drivers
API | Full profile | Bare metal profile |
---|---|---|
CAN | ✔ | ✔ |
Flash IAP | ✔ | ✔ |
I2C | ✔ | ✔ |
I2CSlave | ✔ | ✔ |
MbedCRC | ✔ | ✔ |
ResetReason | ✔ | ✔ |
Watchdog | ✔ | ✔ |
Platform
Platform APIs provide general purpose MCU management infrastructure, common data structures and a consistent user experience on top of different standard libraries and toolchains.
Time
API | Full profile | Bare metal profile |
---|---|---|
RTC | ✔ | ✔ |
Ticker | ✔ | ✔ |
Time | ✔ | ✔ |
Timeout | ✔ | ✔ |
Timer | ✔ | ✔ |
Wait | ✔ | ✔ |
Power
API | Full profile | Bare metal profile |
---|---|---|
DeepSleepLock | ✔ | ✔ |
LowPowerTicker | ✔ | ✔ |
LowPowerTimeout | ✔ | ✔ |
LowPowerTimer | ✔ | ✔ |
Power management (sleep) | ✔ | ✔ |
Memory
API | Full profile | Bare metal profile |
---|---|---|
mbed_mem_trace (Memory tracing) | ✔ | ✔ |
mpug_mgmt (MPU management) | ✔ | ✔ |
MemoryPool | ✔ | |
mbed_stats (Mbed statistics) | ✔ | ✔ |
Other Platform APIs
API | Full profile | Bare metal profile |
---|---|---|
Assert | ✔ | ✔ |
ATCmdParser | ✔ | ✔ |
Callback | ✔ | ✔ |
CircularBuffer | ✔ | ✔ |
CriticalSectionLock | ✔ | ✔ |
Debug | ✔ | ✔ |
Error handling | ✔ | ✔ |
FileHandle | ✔ | ✔ |
NonCopyable | ✔ | ✔ |
PlatformMutex | ✔ | ✔ |
Poll | ✔ | ✔ |
ScopedRamExecutionLock | ✔ | ✔ |
ScopedRomWriteLock | ✔ | ✔ |
SharedPtr (Shared pointer) | ✔ | ✔ |
Span | ✔ | ✔ |
Data storage
The storage APIs include file system APIs, for file system operations, and block devices, which provide the raw storage for the file systems.
File system APIs
API | Full profile | Bare metal profile |
---|---|---|
Dir | ✔ | ✔ (can be manually enabled) |
FATFileSystem | ✔ | ✔ (can be manually enabled) |
File | ✔ | ✔ (can be manually enabled) |
FileSystem | ✔ | ✔ (can be manually enabled) |
KVStore | ✔ | ✔ (can be manually enabled) |
kvstore_global_api (Static Global API) | ✔ | ✔ (can be manually enabled) |
LittleFileSystem | ✔ | ✔ (can be manually enabled) |
BlockDevice (block-based storage) APIs
API | Full profile | Bare metal profile |
---|---|---|
BlockDevice | ✔ | ✔ (can be manually enabled) |
BufferedBlockDevice | ✔ | ✔ (can be manually enabled) |
ChainingBlockDevice | ✔ | ✔ (can be manually enabled) |
DataFlashBlockDevice | ✔ | ✔ (can be manually enabled) |
FlashIAPBlockDevice | ✔ | ✔ (can be manually enabled) |
FlashSimBlockDevice | ✔ | ✔ (can be manually enabled) |
HeapBlockDevice | ✔ | ✔ (can be manually enabled) |
MBRBlockDevice | ✔ | ✔ (can be manually enabled) |
ProfilingBlockDevice | ✔ | ✔ (can be manually enabled) |
QSPIFBlockDevice | ✔ | ✔ (can be manually enabled) |
SDBlockDevice | ✔ | ✔ (can be manually enabled) |
SlicingBlockDevice | ✔ | ✔ (can be manually enabled) |
SPI Flash block device | ✔ | ✔ (can be manually enabled) |
PSA compliant
API | Full profile | Bare metal profile |
---|---|---|
PSA internal storage | ✔ | |
PSA protected storage | ✔ |
Connectivity
Connectivity APIs include:
- Network socket: The application programming interface for IP networking, supporting both TCP and UDP protocols.
- Network interface: The application level APIs where you choose the driver, connectivity method and IP stack. These include Ethernet, Wi-Fi, cellular and Mesh interfaces.
- Secure socket: DTLS and TLS streams over the existing Socket transport.
- DNS: Perform DNS host name resolutions to convert resource names to IP addresses.
- Bluetooth low energy (BLE): A low power wireless technology standard for building personal area networks.
- NFC: Near-Field Communication (NFC), a short-range radio technology for use cases such as contactless payments, access control and device pairing.
- LoRaWAN: A technology designed for low-power battery-powered devices that operate in an unlicensed spectrum, creating high density wide-area networks.
Network socket
API | Full profile | Bare metal profile |
---|---|---|
Non-IP cellular socket | ✔ | |
Socket | ✔ | |
SocketAddress | ✔ | |
SocketStats | ✔ | |
TCPSocket | ✔ | |
UDPSocket | ✔ |
Network interface
API | Full profile | Bare metal profile |
---|---|---|
Cellular | ✔ | |
Ethernet | ✔ | |
Mesh | ✔ | |
Network status | ✔ | |
Wi-Fi | ✔ |
Secure socket
API | Full profile | Bare metal profile |
---|---|---|
DTLSSocket | ✔ | |
TLSSocket | ✔ |
DNS
API | Full profile | Bare metal profile |
---|---|---|
DNS Resolver | ✔ |
Bluetooth (BLE)
API | Full profile | Bare metal profile |
---|---|---|
BatteryService | ✔ | ✔ (can be manually enabled) |
BLE | ✔ | ✔ (can be manually enabled) |
GAP | ✔ | ✔ (can be manually enabled) |
GattClient | ✔ | ✔ (can be manually enabled) |
GattServer | ✔ | ✔ (can be manually enabled) |
HeartRateService | ✔ | ✔ (can be manually enabled) |
SecurityManager | ✔ | ✔ (can be manually enabled) |
NFC
API | Full profile | Bare metal profile |
---|---|---|
MessageBuilder | ✔ | |
MessageParser | ✔ | |
NFCController | ✔ | ✔ (can be manually enabled) |
NFC EEPROM | ✔ | ✔ (can be manually enabled) |
SimpleMessageParser | ✔ |
LoRaWAN
API | Full profile | Bare metal profile |
---|---|---|
LoRaWANInterface | ✔ | |
LoRaRadio | ✔ |
Security
With Arm Mbed TLS, a comprehensive SSL/TLS solution, you can include cryptographic and SSL/TLS capabilities in your code.
API | Full profile | Bare metal profile |
---|---|---|
DeviceKey | ✔ | ✔ (can be manually enabled) |
Mbed Crypto | ✔ | ✔ (can be manually enabled) |
PSA initial attestation | ✔ | |
PSA lifecycle | ✔ | |
TLS | ✔ | ✔ (can be manually enabled) |
Deprecated APIs: moving from Mbed OS 5 to 6
If you're moving your program from Mbed OS 5 to 6, you will need to replace deprecated APIs. The table lists classes that have been completely removed. Functions and methods that have been removed from other classes are listed in each class's Doxgen, and summarised here.
Deprecated API | Replaced by |
---|---|
Serial |
printf and puts to access the console. BufferedSerial for blocking applications.UnbufferedSerial for bypassing locks in IRQ or short of RAM. |
RawSerial |
UnbufferedSerial |
UARTSerial |
BufferedSerial |
Ethernet |
EthInterface to get an Ethernet object. NetworkInterface to get an instance of an appropriate network interface (WiFi or Ethernet). |
BLE services: iBeacon , UARTService , URIBeaconConfigService |
No replacement available |
TCPServer |
TCPSocket |
NVStore |
KVStore |
RtosTimer |
EventQueue |
InterruptManager |
No replacement. |
CallChain |
No replacement. |