|
| 1 | +# Full API list |
| 2 | + |
| 3 | +This is the full list of APIs Mbed OS offers. The list indicates which of the APIs the [bare metal profile](../bare-metal/index.html) supports, and which of those are enabled by default. For consistency, we also show the full profile's API support, although that is - and is expected to remain - all APIs. |
| 4 | + |
| 5 | +<!--This list does not include the internal APIs, which are not intended for use by application code.--> |
| 6 | + |
| 7 | +## RTOS and event handling |
| 8 | + |
| 9 | +The Mbed OS RTOS 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. |
| 10 | + |
| 11 | +| API | Full profile | Bare metal profile | |
| 12 | +| - | - | - | |
| 13 | +| [Thread](../apis/rtos-apis.html) | ✔ | | |
| 14 | +| [ThisThread](../apis/thisthread.html) | ✔ | ✔ (enabled by default) | |
| 15 | +| [Mutex](../apis/mutex.html) | ✔ | ✔ | |
| 16 | +| [Semaphore](../apis/semaphore.html) | ✔ | ✔| |
| 17 | +| [Queue](../apis/queue.html) | ✔ | | |
| 18 | +| [EventQueue](../apis/eventqueue.html) | ✔ | ✔ | |
| 19 | +| [UserAllocatedEvent](../apis/userallocatedevent.html) | ✔ | ✔ | |
| 20 | +| [Mail](../apis/mail.html) | ✔ | | |
| 21 | +| [EventFlags](../apis/eventflags.html) | ✔ | ✔ | |
| 22 | +| [Event](../apis/event.html) | ✔ | ✔ | |
| 23 | +| [Conditionvariable](../apis/conditionvariable.html) | ✔ | | |
| 24 | +| [Kernel interface functions](../apis/kernel-interface-functions.html) | ✔ | `get_ms_count` only | |
| 25 | + |
| 26 | +## Drivers |
| 27 | + |
| 28 | +The drivers are digital interfaces that allow your board to interface with a computer or external devices. |
| 29 | + |
| 30 | + |
| 31 | +| API | Full profile | Bare metal profile | |
| 32 | +| - | - | - | |
| 33 | +| [Ticker](../apis/driver-apis.html) | ✔ | ✔ (enabled by default) | |
| 34 | +| [Timeout](../apis/timeout.html) | ✔ | ✔ (enabled by default) | |
| 35 | +| [Timer](../apis/timer.html) | ✔ | ✔ (enabled by default) | |
| 36 | +| [Watchdog](../apis/watchdog.html) | ✔ | ✔| |
| 37 | +| [ResetReason](../apis/resetreason.html) | ✔ | ✔ | |
| 38 | +| [Flash IAP](../apis/flash-iap.html) | ✔ | ✔ | |
| 39 | +| [BufferedSerial](../apis/bufferedserial.html) | ✔ | ✔ (enabled by default) | |
| 40 | +| [UnbufferedSerial](../apis/unbufferedserial.html) | ✔ | ✔ (enabled by default) | |
| 41 | +| [SPI](../apis/spi.html) | ✔ | ✔ (enabled by default) | |
| 42 | +| [SPISlave](../apis/spislave.html) | ✔ | ✔ (enabled by default) | |
| 43 | +| [QuadSPI (QSPI)](../apis/quadspi-qspi.html) | ✔ | ✔ | |
| 44 | +| [I2C](../apis/i2c.html) | ✔ | ✔ (enabled by default) | |
| 45 | +| [I2CSlave](../apis/i2cslave.html) | ✔ | ✔ (enabled by default) | |
| 46 | +| [CAN](../apis/can.html)| ✔ | ✔ (enabled by default) | |
| 47 | +| [MbedCRC](../apis/mbedcrc.html) | ✔ | ✔ | |
| 48 | + |
| 49 | +## Input/Output |
| 50 | + |
| 51 | +Input/Output APIs include analog and digital inputs and outputs on development boards, as well as digital interfaces, which allow your board to interface with a computer or external devices. |
| 52 | + |
| 53 | +| API | Full profile | Bare metal profile | |
| 54 | +| - | - | - | |
| 55 | +| [AnalogIn](../apis/i-o-apis.html) | ✔ | ✔ (enabled by default) | |
| 56 | +| [AnalogOut](../apis/analogout.html) | ✔ | ✔ (enabled by default) | |
| 57 | +| [DigitalIn](../apis/digitalin.html) | ✔ | ✔ (enabled by default) | |
| 58 | +| [DigitalOut](../apis/digitalout.html) | ✔ | ✔ (enabled by default) | |
| 59 | +| [DigitalInOut](../apis/digitalinout.html) | ✔ | ✔ (enabled by default) | |
| 60 | +| [BusIn](../apis/busin.html) | ✔ | ✔ (enabled by default) | |
| 61 | +| [BusOut](../apis/busout.html) | ✔ | ✔ (enabled by default) | |
| 62 | +| [BusInOut](../apis/businout.html) | ✔ | ✔ (enabled by default) | |
| 63 | +| [PortIn](../apis/portin.html) | ✔ | ✔ (enabled by default) | |
| 64 | +| [PortOut](../apis/portout.html) | ✔ | ✔ (enabled by default) | |
| 65 | +| [PortInOut](../apis/portinout.html) | ✔ | ✔ (enabled by default) | |
| 66 | +| [PwmOut](../apis/pwmout.html) | ✔ | ✔ (enabled by default) | |
| 67 | +| [InterruptIn](../apis/interruptin.html) | ✔ | ✔ (enabled by default) | |
| 68 | + |
| 69 | +## Data storage |
| 70 | + |
| 71 | +The data storage APIs include file system APIs, for file system operations, and block devices, which provide the raw storage for the file systems. |
| 72 | + |
| 73 | + |
| 74 | +| API | Full profile | Bare metal profile | |
| 75 | +| - | - | - | |
| 76 | +| [KVStore](../apis/data-apis) | ✔ | ✔ | |
| 77 | +| [Static Global API](../apis/static-global-api.html) | ✔ | ✔ | |
| 78 | +| [FileSystem](../apis/filesystem.html) | ✔ | ✔ | |
| 79 | +| [Dir](../apis/dir.html) | ✔ | ✔| |
| 80 | +| [File](../apis/file.html) | ✔ | ✔ | |
| 81 | +| [LittleFileSystem](../apis/littlefilesystem.html) | ✔ | ✔ | |
| 82 | +| [FATFileSystem](../apis/fatfilesystem.html) | ✔ | ✔ | |
| 83 | +| [BlockDevice](../apis/blockdevice.html) | ✔ | ✔ | |
| 84 | +| [HeapBlockDevice](../apis/heapblockdevice.html) | ✔ | ✔ | |
| 85 | +| [MBRBlockDevice](../apis/mbrblockdevice.html) | ✔ | ✔ | |
| 86 | +| [ChainingBlockDevice](../apis/chainingblockdevice.html) | ✔ | ✔ | |
| 87 | +| [SlicingBlockDevice](../apis/slicingblockdevice.html) | ✔ | ✔ | |
| 88 | +| [ProfilingBlockDevice](../apis/profilingblockdevice.htm) | ✔ | ✔ | |
| 89 | +| [BufferedBlockDevice](../apis/bufferedblockdevice.html) | ✔ | ✔ | |
| 90 | +| [FlashSimBlockDevice](../apis/flashsimblockdevice.html) | ✔ | ✔ | |
| 91 | +| [DataFlashBlockDevice](../apis/dataflashblockdevice.html) | ✔ | ✔ | |
| 92 | +| [FlashIAPBlockDevice](../apis/flashiapblockdevice.html) | ✔ | ✔ | |
| 93 | +| [SDBlockDevice](../apis/sdblockdevice.html) | ✔ | ✔ | |
| 94 | +| [SPI Flash block device](../apis/spi-flash-block-device.html)| ✔ | ✔ | |
| 95 | +| [QSPIFBlockDevice](../apis/qspifblockdevice.html) | ✔ | ✔ | |
| 96 | +| [PSA internal storage](../apis/psa-internal-storage.html) | ✔ | | |
| 97 | +| [PSA protected storage](../apis/psa-protected-storage.html) | ✔ | | |
| 98 | + |
| 99 | +## Connectivity |
| 100 | + |
| 101 | +### Network interface |
| 102 | + |
| 103 | +Network interfaces are the application level APIs where users choose the driver, connectivity method and IP stack. These include ethernet, Wi-Fi, cellular and mesh interfaces. |
| 104 | + |
| 105 | +| API | Full profile | Bare metal profile | |
| 106 | +| - | - | - | |
| 107 | +| [Ethernet](../apis/ethernet.html) | ✔ | | |
| 108 | +| [Wi-Fi](../apis/wi-fi.html) | ✔ | | |
| 109 | +| [Cellular](../apis/cellular-api.html) | ✔ | | |
| 110 | +| [Mesh](../apis/mesh-api.htm) | ✔ | | |
| 111 | +| [Network status](../apis/network-status.html) | ✔ | | |
| 112 | +| [MessageParser](../apis/messageparser.html) | ✔ | | |
| 113 | +| [SimpleMessageParser](../apis/simplemessageparser.html) | ✔ | | |
| 114 | +| [MessageBuilder](../apis/messagebuilder.html) | ✔ | | |
| 115 | + |
| 116 | +### Socket |
| 117 | + |
| 118 | +Socket APIs include the application programming interface for IP networking. In Mbed OS, this API supports both TCP and UDP protocols. |
| 119 | + |
| 120 | +| API | Full profile | Bare metal profile | |
| 121 | +| - | - | - | |
| 122 | +| [Socket](../apis/socket.html) | ✔ | | |
| 123 | +| [UDPSocket](../apis/udpsocket.html) | ✔ | | |
| 124 | +| [TCPSocket](../apis/tcpsocket.html) | ✔ | | |
| 125 | +| [SocketAddress](../apis/socketaddress.html) | ✔ | | |
| 126 | +| [Non-IP cellular socket](../apis/non-ip-cellular-socket.html) | ✔ | | |
| 127 | +| [SocketStats](../apis/socketstats.html) | ✔ | | |
| 128 | + |
| 129 | +### Secure socket |
| 130 | + |
| 131 | +| API | Full profile | Bare metal profile | |
| 132 | +| - | - | - | |
| 133 | +| [TLSSocket](../apis/secure-socket-apis.html) | ✔ | | |
| 134 | +| [DTLSSocket](../apis/dtlssocket.html) | ✔ | | |
| 135 | + |
| 136 | +### DNS |
| 137 | + |
| 138 | +| API | Full profile | Bare metal profile | |
| 139 | +| - | - | - | |
| 140 | +| [DNS Resolver](../apis/dns-apis.html) | ✔ | | |
| 141 | + |
| 142 | +### BLE |
| 143 | + |
| 144 | +Bluetooth low energy (BLE) is a low power wireless technology standard for building personal area networks. Typical applications of BLE are health care, fitness trackers, beacons, smart home, security, entertainment, proximity sensors, industrial and automotive. |
| 145 | + |
| 146 | +| API | Full profile | Bare metal profile | |
| 147 | +| - | - | - | |
| 148 | +| [BLE](../apis/ble.html) | ✔ | ✔ | |
| 149 | +| [GAP](../apis/gap.html) | ✔ | ✔ | |
| 150 | +| [GattClient](../apis/gattclient.html) | ✔ | ✔ | |
| 151 | +| [GattServer](../apis/gattserver.html) | ✔ | ✔| |
| 152 | +| [SecurityManager](../apis/SecurityManager.html) | ✔ | ✔ | |
| 153 | +| [BatteryService](../apis/batteryservice.html) | ✔ | ✔ | |
| 154 | +| [HeartRateService](../apis/heartrateservice.html) | ✔ | ✔ | |
| 155 | + |
| 156 | +### NFC |
| 157 | + |
| 158 | +You can use Near-Field Communication (NFC), a short-range radio technology, for use cases such as contactless payments, access control and device pairing. |
| 159 | + |
| 160 | +| API | Full profile | Bare metal profile | |
| 161 | +| - | - | - | |
| 162 | +| [NFCController](../apis/nfccontroller.html) | ✔ | ✔ | |
| 163 | +| [NFC EEPROM](../apis/nfc-eeprom.html) | ✔ | ✔ | |
| 164 | + |
| 165 | +### LoRaWAN |
| 166 | + |
| 167 | +Arm Mbed OS provides a native network stack for LoRaWAN. LoRaWAN is a technology designed for low-power battery-powered devices. These devices operate in an unlicensed spectrum, creating high density wide-area networks. |
| 168 | + |
| 169 | +| API | Full profile | Bare metal profile | |
| 170 | +| - | - | - | |
| 171 | +| [LoRaWANInterface](../apis/lorawaninterface.html) | ✔ | | |
| 172 | +| [LoRaRadio](../apis/nfc-loraradio.html) | ✔ | | |
| 173 | + |
| 174 | +## USB |
| 175 | + |
| 176 | +The Mbed OS classes providing USB peripheral functionality, also known as USB components, inherit from USBDevice and provide specific USB peripherial functionality. |
| 177 | + |
| 178 | +| API | Full profile | Bare metal profile | |
| 179 | +| - | - | - | |
| 180 | +| [USBSerial](../apis/usb-apis.html) | ✔ | ✔ | |
| 181 | +| [USBAudio](../apis/usbaudio.html) | ✔ | ✔ | |
| 182 | +| [USBHID](../apis/ubshid.html) | ✔ | ✔ | |
| 183 | +| [USBCDC](../apis/usbcdc.html) | ✔ | ✔ | |
| 184 | +| [USBCDC_ECM](../apis/usbcdc-ecm.html) | ✔ | | |
| 185 | +| [USBMSD](../apis/usbmsd.html) | ✔ | ✔ | |
| 186 | +| [USBMIDI](../apis/usbmidi.html) | ✔ | ✔ | |
| 187 | +| [USBMouse](../apis/usbmouse.html) | ✔ | ✔ | |
| 188 | +| [USBKeyboard](../apis/usbkeyboard.html) | ✔ | ✔ | |
| 189 | +| [USBMouseKeyboard](../apis/usbmousekeyboard.html) | ✔ | ✔ | |
| 190 | + |
| 191 | +## Security |
| 192 | + |
| 193 | +With [Arm Mbed TLS](security.html), a comprehensive SSL/TLS solution, you can include cryptographic and SSL/TLS capabilities in your code. |
| 194 | + |
| 195 | + |
| 196 | +| API | Full profile | Bare metal profile | |
| 197 | +| - | - | - | |
| 198 | +| [PSA initial attestation](../apis/security-apis.html) | ✔ | | |
| 199 | +| [PSA lifecycle](../apis/psa-lifecycle.html) | ✔ | | |
| 200 | +| [Mbed Crypto](../apis/mbed-crypto.html) | ✔ | ✔ | |
| 201 | +| [TLS](../apis/tls.html) | ✔ | ✔ | |
| 202 | +| [DeviceKey](../apis/devicekey.html) | ✔ | ✔ | |
| 203 | + |
| 204 | +## Power |
| 205 | + |
| 206 | +<!--needs intro--> |
| 207 | + |
| 208 | +| API | Full profile | Bare metal profile | |
| 209 | +| - | - | - | |
| 210 | +| [Power management (sleep)](../apis/power-apis.html) | ✔ | ✔ | |
| 211 | +| [DeepSleepLock](../apis/deepsleeplock.html) | ✔ | ✔ | |
| 212 | +| [Idle loop](../apis/idle-loop.html) | ✔ | | |
| 213 | +| [LowPowerTicker](../apis/lowpowerticker.html) | ✔ | ✔ | |
| 214 | +| [LowPowerTimeout](../apis/lowpowertimeout.html) | ✔ | ✔ | |
| 215 | +| [LowPowerTimer](../apis/lowpowertimer.html) | ✔ | ✔ | |
| 216 | + |
| 217 | +## Memory |
| 218 | + |
| 219 | +<!--needs intro--> |
| 220 | + |
| 221 | +| API | Full profile | Bare metal profile | |
| 222 | +| - | - | - | |
| 223 | +| [mbed_stats (Mbed statistics)](../apis/mbed-statistics.html) | ✔ | ✔ | |
| 224 | +| [mpug_mgmt (MPU management)](../apis/mpu-management.html) | ✔ | ✔ | |
| 225 | +| [mbed_mem_trace (Memory tracing)](../apis/memory-tracing.html) | ✔ | ✔ | |
| 226 | +| [MemoryPool](../apis/memorypool.html) | ✔ | | |
| 227 | + |
| 228 | +## Utilities |
| 229 | + |
| 230 | +<!--needs intro--> |
| 231 | + |
| 232 | +| API | Full profile | Bare metal profile | |
| 233 | +| - | - | - | |
| 234 | +| [Callback](../apis/util-apis.html) | ✔ | ✔ | |
| 235 | +| [CriticalSectionLock](../apis/criticalsectionlock.html) | ✔ | ✔ | |
| 236 | +| [Time](../apis/time.html) | ✔ | ✔ (enabled by default) | |
| 237 | +| [RTC](../apis/rtc.html) | ✔ | ✔ | |
| 238 | +| [Debug](../apis/debug.html) | ✔ | ✔ | |
| 239 | +| [Error handling](../apis/error-handling.html) | ✔ | ✔ | |
| 240 | +| [Assert](../apis/assert.html) | ✔ | ✔ | |
| 241 | +| [NonCopyable](../apis/noncopyable.html) | ✔ | ✔ | |
| 242 | +| [SharedPtr (Shared pointer](../apis/shared-pointer.html) | ✔ | ✔ | |
| 243 | +| [Span](../apis/span.html) | ✔ | ✔ | |
| 244 | +| [FileHandle](../apis/filehandle.html) | ✔ | ✔ | |
| 245 | +| [Poll](../apis/poll.html) | ✔ | ✔ | |
| 246 | +| [PlatformMutex](../apis/platformmutex.html) | ✔ | ✔ | |
| 247 | +| [CircularBuffer](../apis/circularbuffer.html) | ✔ | ✔ | |
| 248 | +| [ATCmdParser](../apis/atcmdparser.html) | ✔ | ✔ | |
| 249 | +| [ScopedRamExecutionLock](../apis/scopedramexecutionlock.html) | ✔ | ✔ | |
| 250 | +| [ScopedRomWriteLock](../apis/scopedromwritelock.html) | ✔ | ✔ | |
| 251 | + |
| 252 | +## Deprecated APIs: moving from Mbed OS 5 to 6 |
| 253 | + |
| 254 | +If you're moving your program from Mbed OS 5 to 6, you will need to replace deprecated APIs: |
| 255 | + |
| 256 | +| Deprecated API | Replaced by | |
| 257 | +| - | - | |
| 258 | +| Serial | [BufferedSerial](../apis/bufferedserial.html), [UnbufferedSerial](../apis/unbufferedserial.html) | |
| 259 | +<!--wait as well?--> |
0 commit comments