-
Notifications
You must be signed in to change notification settings - Fork 178
Update for bare metal area #1303
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 41 commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
24b0168
Update for bare metal area
iriark01 427adc1
Added Mbed 2 to Mbed OS bare metal porting guide (#1293)
evedon 7c630de
Adding bare metal porting to JSON
iriark01 f88acb4
First table - just to see what it looks like
iriark01 99658d6
Replacing Gap class link
iriark01 2953c93
Giving UX some symbols to choose from
iriark01 55002c0
Better preview for UX
iriark01 b7c9ad5
A bit more for testing
iriark01 32cf4bc
Index is ready
iriark01 07d4d97
More content from PR 1304
iriark01 cfb541c
Some tidying up from comments
iriark01 532b134
Quick edit
iriark01 803f7ed
Comments in intro
iriark01 1a8215c
Invalid JSON
iriark01 6beb754
Spans broke the table
iriark01 1b328ee
Missed some spans
iriark01 9fb4cd4
Draft for review
iriark01 43c04cf
Tidying up
iriark01 5b9b15d
Trying another place for the pic
iriark01 fd29abd
Typo fix
iriark01 b67138b
Will this work?
iriark01 78a34d5
Removing diagram
iriark01 22a8a6c
Updated from Evelyne's comments
iriark01 323d594
Merge branch 'development' into bare-metal-work
iriark01 c553a8a
Merge remote-tracking branch 'origin/bare-metal-work' into bare-metal…
iriark01 7a3df48
Quick starts to offer both Blinkys
iriark01 7cc13a1
Not showing LoRAWAN as supported
iriark01 3d5c509
Trying a new version of the API index
iriark01 d5f94db
Changing tick for manually enabled
iriark01 c34a79b
Demonstrating page order
iriark01 685240a
Util > Platform
iriark01 8927920
Is this a better title?
iriark01 0cd0767
New attempt at APIs
iriark01 a5e2bd3
Driver tidying
iriark01 177622a
Function link as tip
iriark01 9778f0f
Updating intro
iriark01 961c49f
Intro text update
iriark01 b2faa8d
Adding Wait
iriark01 ad87492
Adding Wait.md so the branch can build
iriark01 2964c31
Fixing deprecated APIs
iriark01 ecf3f14
Format fixes
iriark01 e9a7c03
Some comments from Evelyne + moving files
iriark01 1e98693
Organising Driver APIs
iriark01 4b4bb1b
Platform APIs
iriark01 5929b66
JSON fix + trying new format for table
iriark01 91a861e
I think this tidies up all APIs
iriark01 b3ff2e5
Differentiated marks (UX request)
iriark01 0e972ea
Tidying up the lists
iriark01 d840cff
Regrouping APIs
iriark01 79a3efb
Everything alphabetised
iriark01 bca50e9
Final comments
iriark01 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,289 @@ | ||
# Full API list - second variation | ||
|
||
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. | ||
|
||
<!--This list does not include the internal APIs, which are not intended for use by application code.--> | ||
|
||
## Scheduling | ||
|
||
### RTOS | ||
|
||
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. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [Thread](../apis/rtos-apis.html) | ✔ | | | ||
| [ThisThread](../apis/thisthread.html) | ✔ | ✔ | | ||
| [Mutex](../apis/mutex.html) | ✔ | ✔ | | ||
| [Semaphore](../apis/semaphore.html) | ✔ | ✔ | | ||
| [Queue](../apis/queue.html) | ✔ | | | ||
| [Mail](../apis/mail.html) | ✔ | | | ||
| [EventFlags](../apis/eventflags.html) | ✔ | ✔ | | ||
| [Conditionvariable](../apis/conditionvariable.html) | ✔ | | | ||
| [Kernel interface functions](../apis/kernel-interface-functions.html) | ✔ | `get_ms_count` only | | ||
|
||
### Event handling | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [Event](../apis/event.html) | ✔ | ✓ (can be manually enabled) | | ||
| [EventQueue](../apis/eventqueue.html) | ✔ | ✓ (can be manually enabled) | | ||
| [UserAllocatedEvent](../apis/userallocatedevent.html) | ✔ | ✓ (can be manually enabled) | | ||
|
||
## Drivers | ||
|
||
### Input/Output drivers | ||
|
||
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. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [AnalogIn](../apis/i-o-apis.html) | ✔ | ✔ | | ||
| [AnalogOut](../apis/analogout.html) | ✔ | ✔ | | ||
| [DigitalIn](../apis/digitalin.html) | ✔ | ✔ | | ||
| [DigitalOut](../apis/digitalout.html) | ✔ | ✔ | | ||
| [DigitalInOut](../apis/digitalinout.html) | ✔ | ✔ | | ||
| [BusIn](../apis/busin.html) | ✔ | ✔ | | ||
| [BusOut](../apis/busout.html) | ✔ | ✔ | | ||
| [BusInOut](../apis/businout.html) | ✔ | ✔ | | ||
| [PortIn](../apis/portin.html) | ✔ | ✔ | | ||
| [PortOut](../apis/portout.html) | ✔ | ✔ | | ||
| [PortInOut](../apis/portinout.html) | ✔ | ✔ | | ||
| [PwmOut](../apis/pwmout.html) | ✔ | ✔ | | ||
| [InterruptIn](../apis/interruptin.html) | ✔ | ✔ | | ||
|
||
### USB drivers | ||
|
||
The Mbed OS classes providing USB peripheral functionality, also known as USB components, inherit from USBDevice and provide specific USB peripherial functionality. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [USBSerial](../apis/usb-apis.html) | ✔ | ✔ | | ||
| [USBAudio](../apis/usbaudio.html) | ✔ | ✔ | | ||
| [USBHID](../apis/ubshid.html) | ✔ | ✔ | | ||
| [USBCDC](../apis/usbcdc.html) | ✔ | ✔ | | ||
| [USBCDC_ECM](../apis/usbcdc-ecm.html) | ✔ | ✔ | | ||
| [USBMSD](../apis/usbmsd.html) | ✔ | ✔ | | ||
| [USBMIDI](../apis/usbmidi.html) | ✔ | ✔ | | ||
| [USBMouse](../apis/usbmouse.html) | ✔ | ✔ | | ||
| [USBKeyboard](../apis/usbkeyboard.html) | ✔ | ✔ | | ||
| [USBMouseKeyboard](../apis/usbmousekeyboard.html) | ✔ | ✔ | | ||
|
||
### Other drivers | ||
|
||
The drivers are digital interfaces that allow your board to interface with a computer or external devices. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [Timeout](../apis/timeout.html) | ✔ | ✔ | | ||
| [Watchdog](../apis/watchdog.html) | ✔ | ✔ | | ||
| [ResetReason](../apis/resetreason.html) | ✔ | ✔ | | ||
| [Flash IAP](../apis/flash-iap.html) | ✔ | ✔ | | ||
| [BufferedSerial](../apis/bufferedserial.html) | ✔ | ✔ | | ||
| [UnbufferedSerial](../apis/unbufferedserial.html) | ✔ | ✔ | | ||
| [SPI](../apis/spi.html) | ✔ | ✔ | | ||
| [SPISlave](../apis/spislave.html) | ✔ | ✔ | | ||
| [QuadSPI (QSPI)](../apis/quadspi-qspi.html) | ✔ | ✔ | | ||
| [I2C](../apis/i2c.html) | ✔ | ✔ | | ||
| [I2CSlave](../apis/i2cslave.html) | ✔ | ✔ | | ||
| [CAN](../apis/can.html)| ✔ | ✔ | | ||
| [MbedCRC](../apis/mbedcrc.html) | ✔ | ✔ | | ||
|
||
|
||
## Platform | ||
|
||
### Power | ||
|
||
<!--needs intro--> | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [Power management (sleep)](../apis/power-apis.html) | ✔ | ✔ | | ||
| [DeepSleepLock](../apis/deepsleeplock.html) | ✔ | ✔ | | ||
| [Idle loop](../apis/idle-loop.html) | ✔ | ✔ | | ||
iriark01 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| [LowPowerTicker](../apis/lowpowerticker.html) | ✔ | ✔ | | ||
| [LowPowerTimeout](../apis/lowpowertimeout.html) | ✔ | ✔ | | ||
| [LowPowerTimer](../apis/lowpowertimer.html) | ✔ | ✔ | | ||
|
||
### Memory | ||
|
||
<!--needs intro--> | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [mbed_stats (Mbed statistics)](../apis/mbed-statistics.html) | ✔ | ✔ | | ||
| [mpug_mgmt (MPU management)](../apis/mpu-management.html) | ✔ | ✔ | | ||
| [mbed_mem_trace (Memory tracing)](../apis/memory-tracing.html) | ✔ | ✔ | | ||
| [MemoryPool](../apis/memorypool.html) | ✔ | | | ||
|
||
### Time | ||
|
||
| API | Full profile | Bare metal profile | | ||
iriark01 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - | - | - | | ||
| [Time](../apis/time.html) | ✔ | ✔ | | ||
| [RTC](../apis/rtc.html) | ✔ | ✔ | | ||
| [Ticker](../apis/driver-apis.html) | ✔ | ✔ | | ||
| [Timer](../apis/timer.html) | ✔ | ✔ | | ||
| [Wait](../apis/wait.html) | ✔ | ✔ | | ||
|
||
### Other | ||
<!--needs intro--> | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [Callback](../apis/util-apis.html) | ✔ | ✔ | | ||
| [CriticalSectionLock](../apis/criticalsectionlock.html) | ✔ | ✔ | | ||
| [Debug](../apis/debug.html) | ✔ | ✔ | | ||
| [Error handling](../apis/error-handling.html) | ✔ | ✔ | | ||
| [Assert](../apis/assert.html) | ✔ | ✔ | | ||
| [NonCopyable](../apis/noncopyable.html) | ✔ | ✔ | | ||
| [SharedPtr (Shared pointer](../apis/shared-pointer.html) | ✔ | ✔ | | ||
iriark01 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| [Span](../apis/span.html) | ✔ | ✔ | | ||
| [FileHandle](../apis/filehandle.html) | ✔ | ✔ | | ||
| [Poll](../apis/poll.html) | ✔ | ✔ | | ||
| [PlatformMutex](../apis/platformmutex.html) | ✔ | ✔ | | ||
| [CircularBuffer](../apis/circularbuffer.html) | ✔ | ✔ | | ||
| [ATCmdParser](../apis/atcmdparser.html) | ✔ | ✔ | | ||
| [ScopedRamExecutionLock](../apis/scopedramexecutionlock.html) | ✔ | ✔ | | ||
| [ScopedRomWriteLock](../apis/scopedromwritelock.html) | ✔ | ✔ | | ||
|
||
## Data storage | ||
|
||
The data storage APIs include file system APIs, for file system operations, and block devices, which provide the raw storage for the file systems. | ||
|
||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [KVStore](../apis/data-apis) | ✔ | ✓ (can be manually enabled) | | ||
| [Static Global API](../apis/static-global-api.html) | ✔ | ✓ (can be manually enabled) | | ||
| [FileSystem](../apis/filesystem.html) | ✔ | ✓ (can be manually enabled) | | ||
| [Dir](../apis/dir.html) | ✔ | ✓ (can be manually enabled)| | ||
| [File](../apis/file.html) | ✔ | ✓ (can be manually enabled) | | ||
| [LittleFileSystem](../apis/littlefilesystem.html) | ✔ |✓ (can be manually enabled) | | ||
| [FATFileSystem](../apis/fatfilesystem.html) | ✔ | ✓ (can be manually enabled) | | ||
| [BlockDevice](../apis/blockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [HeapBlockDevice](../apis/heapblockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [MBRBlockDevice](../apis/mbrblockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [ChainingBlockDevice](../apis/chainingblockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [SlicingBlockDevice](../apis/slicingblockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [ProfilingBlockDevice](../apis/profilingblockdevice.htm) | ✔ | ✓ (can be manually enabled) | | ||
| [BufferedBlockDevice](../apis/bufferedblockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [FlashSimBlockDevice](../apis/flashsimblockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [DataFlashBlockDevice](../apis/dataflashblockdevice.html) | ✔ |✓ (can be manually enabled) | | ||
| [FlashIAPBlockDevice](../apis/flashiapblockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [SDBlockDevice](../apis/sdblockdevice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [SPI Flash block device](../apis/spi-flash-block-device.html)| ✔ | ✓ (can be manually enabled) | | ||
| [QSPIFBlockDevice](../apis/qspifblockdevice.html) | ✔ |✓ (can be manually enabled) | | ||
| [PSA internal storage](../apis/psa-internal-storage.html) | ✔ | | | ||
| [PSA protected storage](../apis/psa-protected-storage.html) | ✔ | | | ||
|
||
## Connectivity | ||
|
||
### Network interface | ||
|
||
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. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [Ethernet](../apis/ethernet.html) | ✔ | | | ||
| [Wi-Fi](../apis/wi-fi.html) | ✔ | | | ||
| [Cellular](../apis/cellular-api.html) | ✔ | | | ||
| [Mesh](../apis/mesh-api.htm) | ✔ | | | ||
| [Network status](../apis/network-status.html) | ✔ | | | ||
| [MessageParser](../apis/messageparser.html) | ✔ | | | ||
| [SimpleMessageParser](../apis/simplemessageparser.html) | ✔ | | | ||
| [MessageBuilder](../apis/messagebuilder.html) | ✔ | | | ||
|
||
### Socket | ||
|
||
Socket APIs include the application programming interface for IP networking. In Mbed OS, this API supports both TCP and UDP protocols. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [Socket](../apis/socket.html) | ✔ | | | ||
| [UDPSocket](../apis/udpsocket.html) | ✔ | | | ||
| [TCPSocket](../apis/tcpsocket.html) | ✔ | | | ||
| [SocketAddress](../apis/socketaddress.html) | ✔ | | | ||
| [Non-IP cellular socket](../apis/non-ip-cellular-socket.html) | ✔ | | | ||
| [SocketStats](../apis/socketstats.html) | ✔ | | | ||
|
||
### Secure socket | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [TLSSocket](../apis/secure-socket-apis.html) | ✔ | | | ||
| [DTLSSocket](../apis/dtlssocket.html) | ✔ | | | ||
|
||
### DNS | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [DNS Resolver](../apis/dns-apis.html) | ✔ | | | ||
|
||
### BLE | ||
|
||
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. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [BLE](../apis/ble.html) | ✔ | ✓ (can be manually enabled) | | ||
| [GAP](../apis/gap.html) | ✔ | ✓ (can be manually enabled) | | ||
| [GattClient](../apis/gattclient.html) | ✔ | ✓ (can be manually enabled) | | ||
| [GattServer](../apis/gattserver.html) | ✔ | ✓ (can be manually enabled) | | ||
| [SecurityManager](../apis/SecurityManager.html) | ✔ | ✓ (can be manually enabled) | | ||
| [BatteryService](../apis/batteryservice.html) | ✔ | ✓ (can be manually enabled) | | ||
| [HeartRateService](../apis/heartrateservice.html) | ✔ | ✓ (can be manually enabled) | | ||
|
||
### NFC | ||
|
||
You can use Near-Field Communication (NFC), a short-range radio technology, for use cases such as contactless payments, access control and device pairing. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [NFCController](../apis/nfccontroller.html) | ✔ |✓ (can be manually enabled) | | ||
| [NFC EEPROM](../apis/nfc-eeprom.html) | ✔ | ✓ (can be manually enabled) | | ||
|
||
### LoRaWAN | ||
|
||
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. | ||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [LoRaWANInterface](../apis/lorawaninterface.html) | ✔ | | | ||
| [LoRaRadio](../apis/nfc-loraradio.html) | ✔ | | | ||
|
||
|
||
## Security | ||
|
||
With [Arm Mbed TLS](security.html), a comprehensive SSL/TLS solution, you can include cryptographic and SSL/TLS capabilities in your code. | ||
|
||
|
||
| API | Full profile | Bare metal profile | | ||
| - | - | - | | ||
| [PSA initial attestation](../apis/security-apis.html) | ✔ | | | ||
| [PSA lifecycle](../apis/psa-lifecycle.html) | ✔ | | | ||
| [Mbed Crypto](../apis/mbed-crypto.html) | ✔ |✓ (can be manually enabled) | | ||
| [TLS](../apis/tls.html) | ✔ | ✓ (can be manually enabled) | | ||
| [DeviceKey](../apis/devicekey.html) | ✔ | ✓ (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: | ||
iriark01 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
| Deprecated API | Replaced by | | ||
| - | - | | ||
| `Serial` |`printf` and `puts` to access the console. <br> `BufferedSerial` for blocking applications.<br> `UnbufferedSerial` for bypassing locks in IRQ or short of RAM. | | ||
| `RawSerial` | `UnbufferedSerial` | | ||
| `UARTSerial` | `BufferedSerial` | | ||
| `Ethernet` | `EthInterface` to get an Ethernet object. <br> `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` | | ||
| `FunctionPointerArg1<R, A>` & `FunctionPointerArg1<R, void>` | `Callback<R(A)>` & `Callback<void()>` | | ||
iriark01 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| `RtosTimer` | `EventQueue` | | ||
| `InterruptManager` | No replacement. | | ||
| `CallChain` | No replacement. | | ||
|
||
<span class="tips">The full Doxygen offers [a list of deprecated functions](../mbed-os-api-doxy/deprecated.html).</span> | ||
iriark01 marked this conversation as resolved.
Show resolved
Hide resolved
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Wait | ||
|
||
<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> | ||
iriark01 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
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. | ||
|
||
## Wait function reference | ||
|
||
[](https://os.mbed.com/docs/v5.15/mbed-os-api-doxy/mbed__wait__api_8h_source.html) | ||
|
||
## Example | ||
|
||
[](https://os.mbed.com/teams/mbed_example/code/wait_ex_1/file/4f0543415053/main.cpp) | ||
|
||
## Related content | ||
|
||
- [RTOS](rtos.html) overview. | ||
- [Application flow control tutorial](/docs/v5.15/tutorials/application-flow-control.html). |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.