|
1 | 1 | # Mbed OS bare metal profile
|
2 | 2 |
|
3 |
| -There are many use cases for IoT devices. Different use cases require different configurations, connectivity and security. They also have different requirements for resource consumption. Many products must operate in ultraconstrained environments on tiny MCUs with low memory and compute power available. We created the Mbed OS bare metal profile for IoT devices that require ultraconstrained resources. |
| 3 | +Bare metal is a profile of Mbed OS for ultraconstrained devices. Unlike the full Mbed OS, which by default includes all APIs, the bare metal profile starts with a minimal set of APIs to which you can add only the APIs your application or hardware demand. This helps you control the size of your final binary.<!--not sure that's a good term--> |
4 | 4 |
|
5 |
| -<span class="images"><span>Mbed OS bare metal profile block digram</span></span> |
| 5 | +Bare metal doesn't use the RTOS APIs. Instead, it relies on timers to control the workflow. |
| 6 | +<!--not sure I get it - I looked at both Blinky examples and they both use thread_sleep_for, even though the bare metal one doesn't include mbed_thread.h--> |
| 7 | +<!--what other APIs does it have or not have by default?--> |
| 8 | + |
| 9 | +The Mbed OS tools - Mbed CLI, Mbed Online Compiler and Mbed Studio all support working with the bare metal profile. |
6 | 10 |
|
7 |
| -The Mbed OS bare metal profile is a compact profile of Mbed OS without an RTOS. The Mbed OS bare metal profile is API compatible with Mbed OS and supports a subset of Mbed OS features, such as analog I/O, digital I/O, timers and digital interfaces, such as SPI, I2C, Serial and CAN. Mbed Studio, Mbed CLI and the Mbed Online Compiler all support the Mbed OS bare metal profile. |
| 11 | +Note that Mbed TLS and Mbed Crypto are not supported for bare metal. |
| 12 | + |
| 13 | +<span class="images"><span>Mbed OS bare metal profile block digram</span></span> |
8 | 14 |
|
9 |
| -| Features | Mbed OS bare metal | Mbed OS | |
10 |
| -| --- | --- | --- | |
11 |
| -| Analog I/O | Available | Available | |
12 |
| -| Digital I/O | Available | Available | |
13 |
| -| Digital interfaces | Available | Available | |
14 |
| -| Timers | Available | Available | |
15 |
| -| Development tools<br> (For example, Mbed CLI, Mbed Studio, Mbed Online Compiler, GCC, Arm Compiler 6 and so on) | Available | Available | |
16 |
| -| Support for Mbed Enabled development boards | Available | Available | |
17 |
| -| RTOS | Not available | Available | |
18 |
| -| Storage | Ecosystem libraries | Available | |
19 |
| -| Mbed TLS | Not available | Available | |
20 |
| -| Mbed PSA | Not available | Available | |
| 15 | +## Documentation |
21 | 16 |
|
22 |
| -To begin using the Mbed OS bare metal profile from Mbed OS 2, please follow our [instructions](../tutorials/migrating-to-mbed-os-5.html). |
| 17 | +- To see how to enable the profile, or to try the bare metal Blinky, see [our example page](). |
| 18 | +- To learn how to add APIs, [see the bare metal API page](). |
| 19 | +- If you're an Mbed OS 2 user, migrate to the Mbed OS 6 bare metal profile by following [our migration guide]().<!--that's not application develoeprs though, right? it's for hardware people?--> |
0 commit comments