Skip to content

Commit 9924422

Browse files
committed
Merge branch 'bare-metal-work' into development
2 parents 03a0eba + bca50e9 commit 9924422

21 files changed

+1252
-836
lines changed

docs/program-setup/bare_metal/bare_metal_api.md renamed to deprecated/bare_metal_api.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# Bare metal APIs
22

3+
The bare metal profile starts with a restricted list of API, to which you can add what you need. However, bare metal doesn't support all Mbed OS APIs.
4+
5+
## Initial list of APIs
6+
7+
By default, bare metal includes the following APIs:
8+
9+
## Adding APIs
10+
11+
<!--how?-->
12+
13+
## Full list of APIs
14+
15+
The [Mbed OS API list]() indicates which APIs are supported by bare metal.
16+
17+
<!--
18+
Evelyne, my suggestion is to use something like
19+
20+
21+
| API | Full Mbed OS | Bare metal |
22+
| - | - | - |
23+
| AnalogIn | &#9745; | &#9745; |
24+
25+
Although it's a bit silly, because of course it's supported in the full Mbed OS... I'd love some suggestions
26+
-->
27+
28+
<!--
29+
# Bare metal APIs
30+
331
Mbed OS bare metal supports the following APIs:
432
533
<h2 id="analog-i-o">Analog I/O</h2>
@@ -45,3 +73,5 @@ Mbed OS bare metal supports the following APIs:
4573
- I2CSlave - I²C bus slave.
4674
4775
- CAN - Controller-area network bus.
76+
77+
-->
File renamed without changes.

docs.json

Lines changed: 381 additions & 384 deletions
Large diffs are not rendered by default.

docs/api/api.md

Lines changed: 251 additions & 293 deletions
Large diffs are not rendered by default.

docs/api/api_old.md

Lines changed: 259 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
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) | &#10004; | |
14+
| [ThisThread](../apis/thisthread.html) | &#10004; | &#10004; (enabled by default) |
15+
| [Mutex](../apis/mutex.html) | &#10004; | &#10004; |
16+
| [Semaphore](../apis/semaphore.html) | &#10004; | &#10004;|
17+
| [Queue](../apis/queue.html) | &#10004; | |
18+
| [EventQueue](../apis/eventqueue.html) | &#10004; | &#10004; |
19+
| [UserAllocatedEvent](../apis/userallocatedevent.html) | &#10004; | &#10004; |
20+
| [Mail](../apis/mail.html) | &#10004; | |
21+
| [EventFlags](../apis/eventflags.html) | &#10004; | &#10004; |
22+
| [Event](../apis/event.html) | &#10004; | &#10004; |
23+
| [Conditionvariable](../apis/conditionvariable.html) | &#10004; | |
24+
| [Kernel interface functions](../apis/kernel-interface-functions.html) | &#10004; | `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) | &#10004; | &#10004; (enabled by default) |
34+
| [Timeout](../apis/timeout.html) | &#10004; | &#10004; (enabled by default) |
35+
| [Timer](../apis/timer.html) | &#10004; | &#10004; (enabled by default) |
36+
| [Watchdog](../apis/watchdog.html) | &#10004; | &#10004;|
37+
| [ResetReason](../apis/resetreason.html) | &#10004; | &#10004; |
38+
| [Flash IAP](../apis/flash-iap.html) | &#10004; | &#10004; |
39+
| [BufferedSerial](../apis/bufferedserial.html) | &#10004; | &#10004; (enabled by default) |
40+
| [UnbufferedSerial](../apis/unbufferedserial.html) | &#10004; | &#10004; (enabled by default) |
41+
| [SPI](../apis/spi.html) | &#10004; | &#10004; (enabled by default) |
42+
| [SPISlave](../apis/spislave.html) | &#10004; | &#10004; (enabled by default) |
43+
| [QuadSPI (QSPI)](../apis/quadspi-qspi.html) | &#10004; | &#10004; |
44+
| [I2C](../apis/i2c.html) | &#10004; | &#10004; (enabled by default) |
45+
| [I2CSlave](../apis/i2cslave.html) | &#10004; | &#10004; (enabled by default) |
46+
| [CAN](../apis/can.html)| &#10004; | &#10004; (enabled by default) |
47+
| [MbedCRC](../apis/mbedcrc.html) | &#10004; | &#10004; |
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) | &#10004; | &#10004; (enabled by default) |
56+
| [AnalogOut](../apis/analogout.html) | &#10004; | &#10004; (enabled by default) |
57+
| [DigitalIn](../apis/digitalin.html) | &#10004; | &#10004; (enabled by default) |
58+
| [DigitalOut](../apis/digitalout.html) | &#10004; | &#10004; (enabled by default) |
59+
| [DigitalInOut](../apis/digitalinout.html) | &#10004; | &#10004; (enabled by default) |
60+
| [BusIn](../apis/busin.html) | &#10004; | &#10004; (enabled by default) |
61+
| [BusOut](../apis/busout.html) | &#10004; | &#10004; (enabled by default) |
62+
| [BusInOut](../apis/businout.html) | &#10004; | &#10004; (enabled by default) |
63+
| [PortIn](../apis/portin.html) | &#10004; | &#10004; (enabled by default) |
64+
| [PortOut](../apis/portout.html) | &#10004; | &#10004; (enabled by default) |
65+
| [PortInOut](../apis/portinout.html) | &#10004; | &#10004; (enabled by default) |
66+
| [PwmOut](../apis/pwmout.html) | &#10004; | &#10004; (enabled by default) |
67+
| [InterruptIn](../apis/interruptin.html) | &#10004; | &#10004; (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) | &#10004; | &#10004; |
77+
| [Static Global API](../apis/static-global-api.html) | &#10004; | &#10004; |
78+
| [FileSystem](../apis/filesystem.html) | &#10004; | &#10004; |
79+
| [Dir](../apis/dir.html) | &#10004; | &#10004;|
80+
| [File](../apis/file.html) | &#10004; | &#10004; |
81+
| [LittleFileSystem](../apis/littlefilesystem.html) | &#10004; | &#10004; |
82+
| [FATFileSystem](../apis/fatfilesystem.html) | &#10004; | &#10004; |
83+
| [BlockDevice](../apis/blockdevice.html) | &#10004; | &#10004; |
84+
| [HeapBlockDevice](../apis/heapblockdevice.html) | &#10004; | &#10004; |
85+
| [MBRBlockDevice](../apis/mbrblockdevice.html) | &#10004; | &#10004; |
86+
| [ChainingBlockDevice](../apis/chainingblockdevice.html) | &#10004; | &#10004; |
87+
| [SlicingBlockDevice](../apis/slicingblockdevice.html) | &#10004; | &#10004; |
88+
| [ProfilingBlockDevice](../apis/profilingblockdevice.htm) | &#10004; | &#10004; |
89+
| [BufferedBlockDevice](../apis/bufferedblockdevice.html) | &#10004; | &#10004; |
90+
| [FlashSimBlockDevice](../apis/flashsimblockdevice.html) | &#10004; | &#10004; |
91+
| [DataFlashBlockDevice](../apis/dataflashblockdevice.html) | &#10004; | &#10004; |
92+
| [FlashIAPBlockDevice](../apis/flashiapblockdevice.html) | &#10004; | &#10004; |
93+
| [SDBlockDevice](../apis/sdblockdevice.html) | &#10004; | &#10004; |
94+
| [SPI Flash block device](../apis/spi-flash-block-device.html)| &#10004; | &#10004; |
95+
| [QSPIFBlockDevice](../apis/qspifblockdevice.html) | &#10004; | &#10004; |
96+
| [PSA internal storage](../apis/psa-internal-storage.html) | &#10004; | |
97+
| [PSA protected storage](../apis/psa-protected-storage.html) | &#10004; | |
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) | &#10004; | |
108+
| [Wi-Fi](../apis/wi-fi.html) | &#10004; | |
109+
| [Cellular](../apis/cellular-api.html) | &#10004; | |
110+
| [Mesh](../apis/mesh-api.htm) | &#10004; | |
111+
| [Network status](../apis/network-status.html) | &#10004; | |
112+
| [MessageParser](../apis/messageparser.html) | &#10004; | |
113+
| [SimpleMessageParser](../apis/simplemessageparser.html) | &#10004; | |
114+
| [MessageBuilder](../apis/messagebuilder.html) | &#10004; | |
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) | &#10004; | |
123+
| [UDPSocket](../apis/udpsocket.html) | &#10004; | |
124+
| [TCPSocket](../apis/tcpsocket.html) | &#10004; | |
125+
| [SocketAddress](../apis/socketaddress.html) | &#10004; | |
126+
| [Non-IP cellular socket](../apis/non-ip-cellular-socket.html) | &#10004; | |
127+
| [SocketStats](../apis/socketstats.html) | &#10004; | |
128+
129+
### Secure socket
130+
131+
| API | Full profile | Bare metal profile |
132+
| - | - | - |
133+
| [TLSSocket](../apis/secure-socket-apis.html) | &#10004; | |
134+
| [DTLSSocket](../apis/dtlssocket.html) | &#10004; | |
135+
136+
### DNS
137+
138+
| API | Full profile | Bare metal profile |
139+
| - | - | - |
140+
| [DNS Resolver](../apis/dns-apis.html) | &#10004; | |
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) | &#10004; | &#10004; |
149+
| [GAP](../apis/gap.html) | &#10004; | &#10004; |
150+
| [GattClient](../apis/gattclient.html) | &#10004; | &#10004; |
151+
| [GattServer](../apis/gattserver.html) | &#10004; | &#10004;|
152+
| [SecurityManager](../apis/SecurityManager.html) | &#10004; | &#10004; |
153+
| [BatteryService](../apis/batteryservice.html) | &#10004; | &#10004; |
154+
| [HeartRateService](../apis/heartrateservice.html) | &#10004; | &#10004; |
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) | &#10004; | &#10004; |
163+
| [NFC EEPROM](../apis/nfc-eeprom.html) | &#10004; | &#10004; |
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) | &#10004; | |
172+
| [LoRaRadio](../apis/nfc-loraradio.html) | &#10004; | |
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) | &#10004; | &#10004; |
181+
| [USBAudio](../apis/usbaudio.html) | &#10004; | &#10004; |
182+
| [USBHID](../apis/ubshid.html) | &#10004; | &#10004; |
183+
| [USBCDC](../apis/usbcdc.html) | &#10004; | &#10004; |
184+
| [USBCDC_ECM](../apis/usbcdc-ecm.html) | &#10004; | |
185+
| [USBMSD](../apis/usbmsd.html) | &#10004; | &#10004; |
186+
| [USBMIDI](../apis/usbmidi.html) | &#10004; | &#10004; |
187+
| [USBMouse](../apis/usbmouse.html) | &#10004; | &#10004; |
188+
| [USBKeyboard](../apis/usbkeyboard.html) | &#10004; | &#10004; |
189+
| [USBMouseKeyboard](../apis/usbmousekeyboard.html) | &#10004; | &#10004; |
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) | &#10004; | |
199+
| [PSA lifecycle](../apis/psa-lifecycle.html) | &#10004; | |
200+
| [Mbed Crypto](../apis/mbed-crypto.html) | &#10004; | &#10004; |
201+
| [TLS](../apis/tls.html) | &#10004; | &#10004; |
202+
| [DeviceKey](../apis/devicekey.html) | &#10004; | &#10004; |
203+
204+
## Power
205+
206+
<!--needs intro-->
207+
208+
| API | Full profile | Bare metal profile |
209+
| - | - | - |
210+
| [Power management (sleep)](../apis/power-apis.html) | &#10004; | &#10004; |
211+
| [DeepSleepLock](../apis/deepsleeplock.html) | &#10004; | &#10004; |
212+
| [Idle loop](../apis/idle-loop.html) | &#10004; | |
213+
| [LowPowerTicker](../apis/lowpowerticker.html) | &#10004; | &#10004; |
214+
| [LowPowerTimeout](../apis/lowpowertimeout.html) | &#10004; | &#10004; |
215+
| [LowPowerTimer](../apis/lowpowertimer.html) | &#10004; | &#10004; |
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) | &#10004; | &#10004; |
224+
| [mpug_mgmt (MPU management)](../apis/mpu-management.html) | &#10004; | &#10004; |
225+
| [mbed_mem_trace (Memory tracing)](../apis/memory-tracing.html) | &#10004; | &#10004; |
226+
| [MemoryPool](../apis/memorypool.html) | &#10004; | |
227+
228+
## Utilities
229+
230+
<!--needs intro-->
231+
232+
| API | Full profile | Bare metal profile |
233+
| - | - | - |
234+
| [Callback](../apis/util-apis.html) | &#10004; | &#10004; |
235+
| [CriticalSectionLock](../apis/criticalsectionlock.html) | &#10004; | &#10004; |
236+
| [Time](../apis/time.html) | &#10004; | &#10004; (enabled by default) |
237+
| [RTC](../apis/rtc.html) | &#10004; | &#10004; |
238+
| [Debug](../apis/debug.html) | &#10004; | &#10004; |
239+
| [Error handling](../apis/error-handling.html) | &#10004; | &#10004; |
240+
| [Assert](../apis/assert.html) | &#10004; | &#10004; |
241+
| [NonCopyable](../apis/noncopyable.html) | &#10004; | &#10004; |
242+
| [SharedPtr (Shared pointer](../apis/shared-pointer.html) | &#10004; | &#10004; |
243+
| [Span](../apis/span.html) | &#10004; | &#10004; |
244+
| [FileHandle](../apis/filehandle.html) | &#10004; | &#10004; |
245+
| [Poll](../apis/poll.html) | &#10004; | &#10004; |
246+
| [PlatformMutex](../apis/platformmutex.html) | &#10004; | &#10004; |
247+
| [CircularBuffer](../apis/circularbuffer.html) | &#10004; | &#10004; |
248+
| [ATCmdParser](../apis/atcmdparser.html) | &#10004; | &#10004; |
249+
| [ScopedRamExecutionLock](../apis/scopedramexecutionlock.html) | &#10004; | &#10004; |
250+
| [ScopedRomWriteLock](../apis/scopedromwritelock.html) | &#10004; | &#10004; |
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?-->

docs/api/bluetooth/Gap.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ The default value of data length supported by all controllers is 23 octets. If b
7070

7171
[![View code](https://www.mbed.com/embed/?type=library)](https://os.mbed.com/docs/mbed-os/development/mbed-os-api-doxy/classble_1_1_gap.html)
7272

73+
7374
## GAP example
7475

7576
Here is an example demonstrating how to use the GAP API to advertise, scan, connect and disconnect and how parameters influence efficiency of these actions.

docs/api/platform/Wait.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Wait
22

3-
<span class="tips">**Tip:** `wait` is deprecated in favor of explicit sleep functions. To sleep, replace `wait` with `ThisThread::sleep_for` (C++) or `thread_sleep_for` (C). To wait (without sleeping), call `wait_us`. `wait_us` is safe to call from ISR context.</span>
3+
<span class="notes">**Note:** The function `wait` is deprecated in favor of explicit sleep functions. To sleep, replace `wait` with `ThisThread::sleep_for` (C++) or `thread_sleep_for` (C). To wait (without sleeping), call `wait_us`. `wait_us` is safe to call from ISR context.</span>
44

55
The wait_us and wait_ns functions provide precise wait capabilities. These functions spin the CPU to produce a small delay so they should only be used for short delays. Any delay larger than a millisecond will affect power and multithread performance, and block the platform deep sleep for the entire duration. Therefore, spinning for millisecond wait is not recommended, and ThisThread::sleep_for should be used instead.
66

docs/api/platform/platform-config.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
<h1 id="configuration-util">Utilities</h1>
1+
<h1 id="configuration-util">Configuring Platform</h1>
22

3-
The utilities configurations allow for customization of utilities-level OS options. These options include error handling properties and serial communication configuration settings for STDIO. They affect system level `printf` calls, not Serial objects, with the exception of `default-serial-baud-rate`.
3+
The platform configurations allow for customization of platform-level OS options. These options include error handling properties and serial communication configuration settings for STDIO. They affect system level `printf` calls, not Serial objects, with the exception of `default-serial-baud-rate`.
44

5-
This is the complete list of utilities configuration parameters. To view all configuration parameters, run the `--config -v` command. Please see [the configuration system documentation](configuration.html) for details on how you may use or override these settings.
5+
This is the complete list of platform configuration parameters. To view all configuration parameters, run the `--config -v` command. Please see [the configuration system documentation](configuration.html) for details on how you may use or override these settings.
66

77
```
88
Configuration parameters

docs/api/platform/platform.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Utilities overview
1+
# Platform overview
22

33
The role of the utilities APIs is to provide general purpose MCU management infrastructure, a few common data structures and a consistent user experience on top of different standard libraries and toolchains. This page contains reference material about these subjects.
44

0 commit comments

Comments
 (0)