Expand description
Ariel OS is an operating system for secure, memory-safe, low-power Internet of Things (IoT).
See the README for more details.
§Examples
Application examples can be found in the examples
directory.
§Cargo features
§System functionality
external-interrupts
— Enables GPIO interrupt support.storage
— Enables storage support.threading
— Enables threading support, see thethread
attribute macro.time
— Enables the internal executor’s timer queue, required for timer support.random
— Enables therandom
module.csprng
— Enables a cryptographically secure random number generator in therandom
module.hwrng
— Enables seeding the random number generator from hardware.
§Network protocols and configuration
tcp
— Enables support for TCP.udp
— Enables support for UDP.dns
— Enables support for DNS.mdns
— Enables support for mDNS.coap
— Enables support for CoAP.network-config-static
— Selects static IP configuration.
§Serial communication
i2c
— Enables I2C support.spi
— Enables SPI 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).
Exactly one of the features below must be enabled at once. Selection of these should be done through laze configuration.
single-core
— Enables one single core, even if the hardware provides multiple cores.multi-core
— Enables support for SMP.
§Network type selection
At most one of the features below can be enabled at once. These features are normally automatically selected by laze based on what the board supports, and don’t need to be selected manually.
usb-ethernet
— Selects Ethernet over USB (USB CDC-NCM).wifi-cyw43
— Selects Wi-Fi (with the CYW43 chip).wifi-esp
— Selects Wi-Fi (on ESP chips).
§Development and debugging
debug-console
— Enables the debug console, required to useprintln!
.defmt
— Enables logging support throughdefmt
, seedebug::log
..log
— Enables logging support throughlog
, seedebug::log
.bench
— Enables benchmarking facilities.silent-panic
— Prints nothing in case of panics (may help reduce binary size).no-boards
— Allows to have no boards selected, useful to run target-independent tooling.
§Executor type selection for the (autostarted) main executor
Exactly one of the features below must be enabled at once.
executor-interrupt
— Enables the interrupt executor.executor-single-thread
— Enables the single thread-mode executor.executor-thread
— Enables the ariel-os-threading thread executor.
Modules§
- Provides async functionality.
- bench
bench
Provides on-board benchmarking facilities. - Exposes information about the build.
- Shareable containers.
- coap
coap
A CoAP stack preconfigured for Ariel OS. - Provides configuration to the system and the application.
- Provides debug interface facilities.
- Delegate or lend an object to another task
- Provides consistent GPIO access.
- Provides MCU-specific items.
- i2c
i2c
Provides support for the I2C communication bus. - Access to unique identifiers provided by the device.
- net
net
Provides network access. - random
random
Provides a seeded random number generator depending on Ariel OS’s configuration. - This module contains all third party crates as used by Ariel OS.
- 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. - usb
usb
Provides USB-related items.
Attribute Macros§
- Allows to provide configuration for the associated driver during initial system configuration.
- Registers a non-async function for autostart.
- Defines an async task and optionally registers it for autostart.
- thread
threading
Runs the function decorated with this attribute macro as a separate thread.