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 the internal executorβs timer queue, required for timer support.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.
network-config-overrideβ Enables custom network configuration.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.
- 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.