Mistake on this page?
Report an issue in GitHub or email us

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
Mail
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.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.