Expand description
Ariel OS is an operating system for secure, memory-safe, low-power Internet of Things (IoT). Supported hardware includes various 32-bit microcontrollers.
This is the API documentation for Ariel OS. Other resources available are:
- ๐ Extensive documentation for Ariel OS can be found in the book.
- โ๏ธ The git repository is available on GitHub.
- โจ Examples demonstrate various features of Ariel OS.
- ๐งช A set of test cases further verifies the capabilities of Ariel OS.
- ๐ง The roadmap shows the planned features for Ariel OS.
ยงCargo features
Ariel OS is highly modular with a significant number of features to configure the operating system.
ยงSystem functionality
allocโ Enables a global system allocator.external-interruptsโ Enables GPIO interrupt support.timeโ Enables timing functionality. Currently: Additionally enables the HAL-specific time driver.csprngโ Enables a cryptographically secure random number generator in therandommodule and support for thegetrandomcrate.sensorsโ Enables unified support for sensors.
ยงNetwork protocols
ipv4โ Enables support for IPv4.ipv6โ Enables support for IPv6.tcpโ Enables support for TCP.udpโ Enables support for UDP.dnsโ Enables support for DNS.mdnsโ Enables support for mDNS.multicastโ Enables support for multicast (for both IPv4 and/or IPv6 if enabled).coapโ Enables support for CoAP.coap-serverโ Enables applications to set up CoAP server handlers. Seecoap::coap_run().
ยงSerial communication
i2cโ Enables I2C support.spiโ Enables SPI support.uartโ Enables UART support.usbโ Enables USB support.usb-hidโ Enables USB HID support.
ยงSystem configuration
The config attribute macro allows to provide configuration for
specific system functionality.
The features below need to be enabled so that the provided custom
configuration is taken into account.
rcc-config-overrideโ Enables custom RCC configuration (currently only available on STM32).override-usb-configโ Enables custom USB configuration.
ยงMulticore functionality
core-affinityโ Enables support for core affinities (restricting threads to specific cores).
ยงTimer queue size configuration
Should only be enabled when threading is enabled, too. Default is 64 entries for regular boards and 8 entries for those with little ram. When more than this number of concurrent timers are used, the system will loop (and not sleep/idle anymore).
timer-generic-queue-8โ Enables support for up to 8 concurrent timers. (default onram-tinyboards)timer-generic-queue-16โ Enables support for up to 16 concurrent timers.timer-generic-queue-32โ Enables support for up to 32 concurrent timers.timer-generic-queue-64โ Enables support for up to 64 concurrent timers. (default)timer-generic-queue-128โ Enables support for up to 128 concurrent timers.
ยงDevelopment and debugging
benchโ Enables benchmarking facilities.no-boardsโ Allows to have no boards selected, useful to run target-independent tooling.
Modulesยง
- asynch
- Provides async functionality.
- bench
bench - Provides on-board benchmarking facilities.
- ble
ble - Provides control over the system BLE (Bluetooth Low Energy) stack.
- buildinfo
- Exposes information about the build.
- cell
- Shareable containers.
- coap
coap - A CoAP stack preconfigured for Ariel OS.
- config
- Provides configuration to the system and the application.
- debug
- Provides debug interface facilities.
- delegate
- Delegate or lend an object to another task.
- gpio
- Provides consistent GPIO access.
- hal
- Provides MCU-specific items.
- i2c
i2c - Provides support for the I2C communication bus.
- identity
- Access to unique identifiers provided by the device.
- net
net - Provides network access.
- power
- Provides power management functionality.
- random
random - Provides a seeded random number generator depending on Ariel OSโs configuration.
- reexports
- This module contains all third party crates as used by Ariel OS.
- sensors
sensors - Provides a sensor abstraction layer.
- spi
spi - Provides support for the SPI communication bus.
- storage
storage - Provides key-value pair persistent storage on flash.
- thread
threading - Multi-threading for Ariel OS.
- time
time - Provides time-related facilities.
- uart
uart - Provides support for UART.
- usb
usb - Provides USB-related items.
Attribute Macrosยง
- config
- Allows to provide configuration for the associated driver during initial system configuration.
- spawner
- Registers a non-async function for autostart.
- task
- Defines an async task and optionally registers it for autostart.
- thread
threading - Runs the function decorated with this attribute macro as a separate thread.