diff --git a/doc/BluetoothLEStack.md b/doc/BluetoothLEStack.md index 10385a9c9d..a3317ccfc6 100644 --- a/doc/BluetoothLEStack.md +++ b/doc/BluetoothLEStack.md @@ -5,11 +5,13 @@ Bluetooth Low Energy Design Document + + - [System call interface](#system-call-interface) - * [Device address](#device-address) - * [Advertising](#advertising) - * [Scanning](#scanning) - * [Connection-oriented communication](#connection-oriented-communication) + - [Device address](#device-address) + - [Advertising](#advertising) + - [Scanning](#scanning) + - [Connection-oriented communication](#connectionoriented-communication) - [Hardware Interface Layer (HIL)](#hardware-interface-layer-hil) diff --git a/doc/Compilation.md b/doc/Compilation.md index 73ca36289c..adf38b4466 100644 --- a/doc/Compilation.md +++ b/doc/Compilation.md @@ -10,22 +10,24 @@ of how platforms program each onto an actual board. + + - [Compiling the kernel](#compiling-the-kernel) - * [Life of a Tock compilation](#life-of-a-tock-compilation) - + [Platform Build Scripts](#platform-build-scripts) - * [LLVM Binutils](#llvm-binutils) - * [Special `.apps` section](#special-apps-section) + - [Life of a Tock compilation](#life-of-a-tock-compilation) + - [Platform Build Scripts](#platform-build-scripts) + - [LLVM Binutils](#llvm-binutils) + - [Special `.apps` section](#special-apps-section) - [Compiling a process](#compiling-a-process) - * [Executing without Virtual Memory](#executing-without-virtual-memory) - + [Position Independent Code](#position-independent-code) - + [Fixed Address Loading](#fixed-address-loading) + - [Executing without Virtual Memory](#executing-without-virtual-memory) + - [Position Independent Code](#position-independent-code) + - [Fixed Address Loading](#fixed-address-loading) - [Fixed Address TBF Header](#fixed-address-tbf-header) - [Loading Fixed Address Processes into Flash](#loading-fixed-address-processes-into-flash) - [Booting Fixed Address Processes](#booting-fixed-address-processes) - * [Tock Binary Format](#tock-binary-format) - * [Tock Application Bundle](#tock-application-bundle) - + [TAB Format](#tab-format) - + [Metadata](#metadata) + - [Tock Binary Format](#tock-binary-format) + - [Tock Application Bundle](#tock-application-bundle) + - [TAB Format](#tab-format) + - [Metadata](#metadata) - [Loading the kernel and processes onto a board](#loading-the-kernel-and-processes-onto-a-board) diff --git a/doc/Design.md b/doc/Design.md index 791bf3c515..b033fb5002 100644 --- a/doc/Design.md +++ b/doc/Design.md @@ -5,19 +5,21 @@ Tock Design + + - [Architecture](#architecture) - * [Capsules](#capsules) - * [Processes](#processes) - + [Memory Layout](#memory-layout) - * [Grants](#grants) -- [In-Kernel Design Principles](#in-kernel-design-principles) - * [Role of HILs](#role-of-hils) - * [Split-phase Operation](#split-phase-operation) - * [External Dependencies](#external-dependencies) - * [Using `unsafe` and Capabilities](#using-unsafe-and-capabilities) - * [Ease of Use and Understanding](#ease-of-use-and-understanding) - * [Demonstrated Features](#demonstrated-features) - * [Merge Aggressively, Archive Unabashedly](#merge-aggressively-archive-unabashedly) + - [Capsules](#capsules) + - [Processes](#processes) + - [Memory Layout](#memory-layout) + - [Grants](#grants) +- [In-Kernel Design Principles](#inkernel-design-principles) + - [Role of HILs](#role-of-hils) + - [Split-phase Operation](#splitphase-operation) + - [External Dependencies](#external-dependencies) + - [Using `unsafe` and Capabilities](#using-unsafe-and-capabilities) + - [Ease of Use and Understanding](#ease-of-use-and-understanding) + - [Demonstrated Features](#demonstrated-features) + - [Merge Aggressively, Archive Unabashedly](#merge-aggressively-archive-unabashedly) diff --git a/doc/ExternalDependencies.md b/doc/ExternalDependencies.md index 7be0d6c387..a2fd3a1ad1 100644 --- a/doc/ExternalDependencies.md +++ b/doc/ExternalDependencies.md @@ -5,20 +5,22 @@ External Dependencies + + - [External Dependency Design](#external-dependency-design) - * [Rationale](#rationale) - * [Dependency Structure of Tock-Internal Crates](#dependency-structure-of-tock-internal-crates) + - [Rationale](#rationale) + - [Dependency Structure of Tock-Internal Crates](#dependency-structure-of-tockinternal-crates) - [External Dependency Selection](#external-dependency-selection) - * [General Guidelines for Dependency Selection](#general-guidelines-for-dependency-selection) - + [Provide Important Functionality](#provide-important-functionality) - + [Project Maturity](#project-maturity) - + [Limited Sub-dependencies](#limited-sub-dependencies) - * [Board-Specific External Dependencies](#board-specific-external-dependencies) - * [Capsule Crate-Specific External Dependencies](#capsule-crate-specific-external-dependencies) + - [General Guidelines for Dependency Selection](#general-guidelines-for-dependency-selection) + - [Provide Important Functionality](#provide-important-functionality) + - [Project Maturity](#project-maturity) + - [Limited Sub-dependencies](#limited-subdependencies) + - [Board-Specific External Dependencies](#boardspecific-external-dependencies) + - [Capsule Crate-Specific External Dependencies](#capsule-cratespecific-external-dependencies) - [Including the Dependency](#including-the-dependency) - * [Including Capsule Crate-Specific External Dependencies](#including-capsule-crate-specific-external-dependencies) - * [Including Board-Specific External Dependencies](#including-board-specific-external-dependencies) - * [Documenting the Dependency and its Tree](#documenting-the-dependency-and-its-tree) + - [Including Capsule Crate-Specific External Dependencies](#including-capsule-cratespecific-external-dependencies) + - [Including Board-Specific External Dependencies](#including-boardspecific-external-dependencies) + - [Documenting the Dependency and its Tree](#documenting-the-dependency-and-its-tree) - [Design Goals and Alternative Approaches](#design-goals-and-alternative-approaches) diff --git a/doc/Getting_Started.md b/doc/Getting_Started.md index 1fadae1df7..f6bcd19c5e 100644 --- a/doc/Getting_Started.md +++ b/doc/Getting_Started.md @@ -8,21 +8,23 @@ developing Tock. + + - [Requirements](#requirements) - * [Super Quick Setup](#super-quick-setup) - * [Installing Requirements](#installing-requirements) - + [Rust (nightly)](#rust-nightly) - + [Tockloader](#tockloader) + - [Super Quick Setup](#super-quick-setup) + - [Installing Requirements](#installing-requirements) + - [Rust (nightly)](#rust-nightly) + - [Tockloader](#tockloader) - [Compiling the Kernel](#compiling-the-kernel) - [Loading the kernel onto a board](#loading-the-kernel-onto-a-board) - * [Installing `JLinkExe`](#installing-jlinkexe) - * [Installing `openocd`](#installing-openocd) - * [(Linux): Adding a `udev` rule](#linux-adding-a-udev-rule) + - [Installing `JLinkExe`](#installing-jlinkexe) + - [Installing `openocd`](#installing-openocd) + - [(Linux): Adding a `udev` rule](#linux-adding-a-udev-rule) - [Installing your first application](#installing-your-first-application) - [Compiling applications](#compiling-applications) - [Developing TockOS](#developing-tockos) - * [Formatting Rust source code](#formatting-rust-source-code) - * [Keeping build tools up to date](#keeping-build-tools-up-to-date) + - [Formatting Rust source code](#formatting-rust-source-code) + - [Keeping build tools up to date](#keeping-build-tools-up-to-date) diff --git a/doc/Kernel_Attributes.md b/doc/Kernel_Attributes.md index 9c92a30b2d..cc54d879bb 100644 --- a/doc/Kernel_Attributes.md +++ b/doc/Kernel_Attributes.md @@ -10,12 +10,14 @@ to learn about the kernel installed on the board. + + - [Format](#format) - * [Header Format](#header-format) - * [TLV Format](#tlv-format) + - [Header Format](#header-format) + - [TLV Format](#tlv-format) - [TLVs](#tlvs) - * [App Memory (0x0101)](#app-memory-0x0101) - * [Kernel Binary (0x0102)](#kernel-binary-0x0102) + - [App Memory (0x0101)](#app-memory-0x0101) + - [Kernel Binary (0x0102)](#kernel-binary-0x0102) - [Kernel Attributes Location](#kernel-attributes-location) diff --git a/doc/Lifetimes.md b/doc/Lifetimes.md index c803395cf3..5492e2565a 100644 --- a/doc/Lifetimes.md +++ b/doc/Lifetimes.md @@ -26,6 +26,8 @@ kernel. + + - [Rust lifetimes](#rust-lifetimes) - [Buffer management](#buffer-management) - [Circular dependencies](#circular-dependencies) diff --git a/doc/Maintenance.md b/doc/Maintenance.md index 3d7e92efa1..1dc5dc627a 100644 --- a/doc/Maintenance.md +++ b/doc/Maintenance.md @@ -7,14 +7,16 @@ group](wg/core/README.md) maintains the Tock project. + + - [Roadmap and Feature Planning](#roadmap-and-feature-planning) - [Outreach and Education](#outreach-and-education) - [Preparing a Release](#preparing-a-release) - * [Release Tasks](#release-tasks) - + [Before the release](#before-the-release) - + [Tagging a release candidate](#tagging-a-release-candidate) - + [Release testing](#release-testing) - + [Tagging a release](#tagging-a-release) + - [Release Tasks](#release-tasks) + - [Before the release](#before-the-release) + - [Tagging a release candidate](#tagging-a-release-candidate) + - [Release testing](#release-testing) + - [Tagging a release](#tagging-a-release) diff --git a/doc/Memory_Isolation.md b/doc/Memory_Isolation.md index 4fdb908d94..ddfc92e025 100644 --- a/doc/Memory_Isolation.md +++ b/doc/Memory_Isolation.md @@ -10,9 +10,11 @@ memory layout](Memory_Layout.md). + + - [Process Isolation](#process-isolation) - * [Flash](#flash) - * [RAM](#ram) + - [Flash](#flash) + - [RAM](#ram) diff --git a/doc/Memory_Layout.md b/doc/Memory_Layout.md index f0dccea2be..a4f7614301 100644 --- a/doc/Memory_Layout.md +++ b/doc/Memory_Layout.md @@ -8,17 +8,19 @@ kernel, applications, and supporting state. + + - [Flash](#flash) - * [Kernel code](#kernel-code) - * [Process code](#process-code) + - [Kernel code](#kernel-code) + - [Process code](#process-code) - [RAM](#ram) - * [Kernel RAM](#kernel-ram) - * [Process RAM](#process-ram) + - [Kernel RAM](#kernel-ram) + - [Process RAM](#process-ram) - [Hardware Implementations](#hardware-implementations) - * [SAM4L](#sam4l) - + [Flash](#flash-1) - + [RAM](#ram-1) - + [Overview](#overview) + - [SAM4L](#sam4l) + - [Flash](#flash) + - [RAM](#ram) + - [Overview](#overview) diff --git a/doc/Mutable_References.md b/doc/Mutable_References.md index b652d0737a..56be312136 100644 --- a/doc/Mutable_References.md +++ b/doc/Mutable_References.md @@ -24,19 +24,21 @@ of which is tailored to a specific use common in kernel code. + + - [Brief Overview of Borrowing in Rust](#brief-overview-of-borrowing-in-rust) -- [Issues with Borrowing in Event-Driven code](#issues-with-borrowing-in-event-driven-code) +- [Issues with Borrowing in Event-Driven code](#issues-with-borrowing-in-eventdriven-code) - [`Cell`s in Tock](#cells-in-tock) - [The `TakeCell` abstraction](#the-takecell-abstraction) - * [Example use of `take` and `replace`](#example-use-of-take-and-replace) - * [Example use of `map`](#example-use-of-map) - + [`map` variants](#map-variants) + - [Example use of `take` and `replace`](#example-use-of-take-and-replace) + - [Example use of `map`](#example-use-of-map) + - [`map` variants](#map-variants) - [`MapCell`](#mapcell) - [`OptionalCell`](#optionalcell) - * [Comparison to `TakeCell`](#comparison-to-takecell) + - [Comparison to `TakeCell`](#comparison-to-takecell) - [`VolatileCell`](#volatilecell) - [Cell Extensions](#cell-extensions) - * [`NumericCellExt`](#numericcellext) + - [`NumericCellExt`](#numericcellext) diff --git a/doc/OutOfTree.md b/doc/OutOfTree.md index cacd435de3..c57967636e 100644 --- a/doc/OutOfTree.md +++ b/doc/OutOfTree.md @@ -10,11 +10,8 @@ _It is a work in progress. Comments and pull requests are appreciated!_ -- [Overview](#overview) -- [Structure](#structure) -- [Boards](#boards) -- [Everything Else](#everything-else) -- [Examples](#examples) + + diff --git a/doc/Overview.md b/doc/Overview.md index c0e230708a..b6a098435f 100644 --- a/doc/Overview.md +++ b/doc/Overview.md @@ -23,6 +23,8 @@ structure is reflected in the software's directory structure. + + - [Tock Architecture](#tock-architecture) - [Tock Directory Structure](#tock-directory-structure) diff --git a/doc/Porting.md b/doc/Porting.md index 6d6702f49e..b57a9ba6fa 100644 --- a/doc/Porting.md +++ b/doc/Porting.md @@ -9,23 +9,21 @@ _It is a work in progress. Comments and pull requests are appreciated!_ -- [Overview](#overview) -- [Is Tock a Good Fit for my Hardware?](#is-tock-a-good-fit-for-my-hardware) -- [Crate Details](#crate-details) - * [`arch` Crate](#arch-crate) - * [`chip` Crate](#chip-crate) - + [Tips and Tools](#tips-and-tools) - * [`board` Crate](#board-crate) - + [Component Creation](#component-creation) - + [Board Support](#board-support) + + + - [`arch` Crate](#arch-crate) + - [`chip` Crate](#chip-crate) + - [Tips and Tools](#tips-and-tools) + - [`board` Crate](#board-crate) + - [Component Creation](#component-creation) + - [Board Support](#board-support) - [`panic!`s (aka `io.rs`)](#panics-aka-iors) - [Board Cargo.toml, build.rs](#board-cargotoml-buildrs) - [Board Makefile](#board-makefile) - * [Getting the built kernel onto a board](#getting-the-built-kernel-onto-a-board) + - [Getting the built kernel onto a board](#getting-the-built-kernel-onto-a-board) - [Board README](#board-readme) - + [Loading Apps](#loading-apps) - + [Common Pitfalls](#common-pitfalls) -- [Adding a Platform to Tock Repository](#adding-a-platform-to-tock-repository) + - [Loading Apps](#loading-apps) + - [Common Pitfalls](#common-pitfalls) diff --git a/doc/Porting_v1_Capsules_to_v2.md b/doc/Porting_v1_Capsules_to_v2.md index 5394ac7ab6..9f96108ebd 100644 --- a/doc/Porting_v1_Capsules_to_v2.md +++ b/doc/Porting_v1_Capsules_to_v2.md @@ -9,16 +9,15 @@ gives code examples. -- [Overview](#overview) -- [Tock 2.0 System Call API](#tock-20-system-call-api) - * [`SyscallDriver`](#syscalldriver) -- [Porting Capsules and Example Code](#porting-capsules-and-example-code) - * [Examples of command and `CommandResult`](#examples-of-command-and-commandresult) - + [ReturnCode versus ErrorCode](#returncode-versus-errorcode) - * [Examples of `allow_readwrite` and `allow_readonly`](#examples-of-allow_readwrite-and-allow_readonly) - * [The new subscription mechanism](#the-new-subscription-mechanism) - * [Using `ReadOnlyProcessBuffer` and `ReadWriteProcessBuffer`: `console`](#using-readonlyprocessbuffer-and-readwriteprocessbuffer-console) - * [Using `ReadOnlyProcessBuffer` and `ReadWriteProcessBuffer`: `spi_controller`](#using-readonlyprocessbuffer-and-readwriteprocessbuffer-spi_controller) + + + - [`SyscallDriver`](#syscalldriver) + - [Examples of command and `CommandResult`](#examples-of-command-and-commandresult) + - [ReturnCode versus ErrorCode](#returncode-versus-errorcode) + - [Examples of `allow_readwrite` and `allow_readonly`](#examples-of-allowreadwrite-and-allowreadonly) + - [The new subscription mechanism](#the-new-subscription-mechanism) + - [Using `ReadOnlyProcessBuffer` and `ReadWriteProcessBuffer`: `console`](#using-readonlyprocessbuffer-and-readwriteprocessbuffer-console) + - [Using `ReadOnlyProcessBuffer` and `ReadWriteProcessBuffer`: `spi_controller`](#using-readonlyprocessbuffer-and-readwriteprocessbuffer-spicontroller) diff --git a/doc/Process_Console.md b/doc/Process_Console.md index 70b9e170d3..c85ef4fb6a 100644 --- a/doc/Process_Console.md +++ b/doc/Process_Console.md @@ -8,24 +8,12 @@ Process Console -- [Setup](#setup) -- [Using Process Console](#using-process-console) -- [Commands](#commands) - * [`help`](#help) - * [`list`](#list) - + [`list` Command Fields](#list-command-fields) - * [`status`](#status) - * [`start` and `stop`](#start-and-stop) - * [`terminate` and `boot`](#terminate-and-boot) - * [`fault`](#fault) - * [`panic`](#panic) - * [`reset`](#reset) - * [`kernel`](#kernel) - * [`process`](#process) - * [`console-start`](#console-start) - * [`console-stop`](#console-stop) - * [`commands history`](#commands-history) - * [`command navigation`](#command-navigation) + + + - [`help`](#help) + - [`list`](#list) + - [`list` Command Fields](#list-command-fields) + - [`status`](#status) diff --git a/doc/Qemu.md b/doc/Qemu.md index e92b701373..8dc4092034 100644 --- a/doc/Qemu.md +++ b/doc/Qemu.md @@ -12,6 +12,8 @@ confusing. The long-term goal is to integrate QEMU as a core part of CI for Tock + + - [Supported Boards](#supported-boards) - [Building QEMU](#building-qemu) diff --git a/doc/Soundness.md b/doc/Soundness.md index 5e93c08f08..506d3c5807 100644 --- a/doc/Soundness.md +++ b/doc/Soundness.md @@ -9,12 +9,14 @@ but should still preserve safety in the overall OS. -- [`static_init!`](#static_init) - * [Use](#use) - * [Soundness](#soundness) - * [Alternatives](#alternatives) + + +- [`static_init!`](#staticinit) + - [Use](#use) + - [Soundness](#soundness) + - [Alternatives](#alternatives) - [Capabilities: Restricting Access to Certain Functions and Operations](#capabilities-restricting-access-to-certain-functions-and-operations) - * [Capability Examples](#capability-examples) + - [Capability Examples](#capability-examples) diff --git a/doc/Startup.md b/doc/Startup.md index da470333dc..1c8806d435 100644 --- a/doc/Startup.md +++ b/doc/Startup.md @@ -7,15 +7,17 @@ This document walks through how all of the components of Tock start up. + + - [Optional Bootloader](#optional-bootloader) - [Tock first instructions](#tock-first-instructions) - * [ARM Vector Table and IRQ table](#arm-vector-table-and-irq-table) - * [RISC-V](#risc-v) + - [ARM Vector Table and IRQ table](#arm-vector-table-and-irq-table) + - [RISC-V](#riscv) - [Reset Handler](#reset-handler) - * [Memory Initialization](#memory-initialization) - * [RISC-V Trap setup](#risc-v-trap-setup) - * [MCU Setup](#mcu-setup) - * [Peripheral and Capsule Initialization](#peripheral-and-capsule-initialization) + - [Memory Initialization](#memory-initialization) + - [RISC-V Trap setup](#riscv-trap-setup) + - [MCU Setup](#mcu-setup) + - [Peripheral and Capsule Initialization](#peripheral-and-capsule-initialization) - [Application Startup](#application-startup) - [Scheduler Execution](#scheduler-execution) diff --git a/doc/Style.md b/doc/Style.md index 24433771ed..a556069351 100644 --- a/doc/Style.md +++ b/doc/Style.md @@ -8,9 +8,11 @@ to. + + - [Code Style](#code-style) - [Commenting](#commenting) - * [Example: mycapsule.rs](#example-mycapsulers) + - [Example: mycapsule.rs](#example-mycapsulers) - [Using Descriptive Names](#using-descriptive-names) diff --git a/doc/Syscalls.md b/doc/Syscalls.md index ae53b65115..dbf9777848 100644 --- a/doc/Syscalls.md +++ b/doc/Syscalls.md @@ -10,18 +10,20 @@ This document describes the considerations behind the system call design. + + - [Overview of System Calls in Tock](#overview-of-system-calls-in-tock) - [Process State](#process-state) - [Startup](#startup) - [System Call Invocation](#system-call-invocation) - [The Context Switch](#the-context-switch) - * [Context Switch Interface](#context-switch-interface) - * [Cortex-M Architecture Details](#cortex-m-architecture-details) - * [RISC-V Architecture Details](#risc-v-architecture-details) + - [Context Switch Interface](#context-switch-interface) + - [Cortex-M Architecture Details](#cortexm-architecture-details) + - [RISC-V Architecture Details](#riscv-architecture-details) - [How System Calls Connect to Drivers](#how-system-calls-connect-to-drivers) - [Error and Return Types](#error-and-return-types) - * [Naming Conventions](#naming-conventions) - * [Type Descriptions](#type-descriptions) + - [Naming Conventions](#naming-conventions) + - [Type Descriptions](#type-descriptions) - [Allocated Driver Numbers](#allocated-driver-numbers) diff --git a/doc/TockBinaryFormat.md b/doc/TockBinaryFormat.md index 33a990d440..cffc6a7071 100644 --- a/doc/TockBinaryFormat.md +++ b/doc/TockBinaryFormat.md @@ -4,21 +4,23 @@ + + - [App Storage](#app-storage) - [Empty Tock Apps](#empty-tock-apps) - [TBF Header Section](#tbf-header-section) - * [TBF Header Base](#tbf-header-base) - * [TLV Elements](#tlv-elements) - * [TLV Types](#tlv-types) - + [`1` Main](#1-main) - + [`2` Writeable Flash Region](#2-writeable-flash-region) - + [`3` Package Name](#3-package-name) - + [`5` Fixed Addresses](#5-fixed-addresses) - + [`6` Permissions](#6-permissions) - + [`7` Storage Permissions](#7-storage-permissions) - + [`8` Kernel Version](#8-kernel-version) - + [`9` Program](#9-program) - + [`128` Credentials Footer](#128-credentials-footer) + - [TBF Header Base](#tbf-header-base) + - [TLV Elements](#tlv-elements) + - [TLV Types](#tlv-types) + - [`1` Main](#1-main) + - [`2` Writeable Flash Region](#2-writeable-flash-region) + - [`3` Package Name](#3-package-name) + - [`5` Fixed Addresses](#5-fixed-addresses) + - [`6` Permissions](#6-permissions) + - [`7` Storage Permissions](#7-storage-permissions) + - [`8` Kernel Version](#8-kernel-version) + - [`9` Program](#9-program) + - [`128` Credentials Footer](#128-credentials-footer) - [Code](#code) diff --git a/doc/Userland.md b/doc/Userland.md index 0e78ead8f3..cc65bbe5eb 100644 --- a/doc/Userland.md +++ b/doc/Userland.md @@ -9,12 +9,14 @@ of how applications function. + + - [Overview of Processes in Tock](#overview-of-processes-in-tock) - [System Calls](#system-calls) - [Upcalls and Termination](#upcalls-and-termination) -- [Inter-Process Communication](#inter-process-communication) - * [Services](#services) - * [Clients](#clients) +- [Inter-Process Communication](#interprocess-communication) + - [Services](#services) + - [Clients](#clients) - [Application Entry Point](#application-entry-point) - [Stack and Heap](#stack-and-heap) - [Debugging](#debugging) diff --git a/doc/syscalls/README.md b/doc/syscalls/README.md index 70d0db5f13..5f23613a9b 100644 --- a/doc/syscalls/README.md +++ b/doc/syscalls/README.md @@ -9,19 +9,21 @@ provided syscalls, and the driver specific interfaces (using `allow`, + + - [Syscall Binary Interface](#syscall-binary-interface) - [Core Kernel Provided Syscalls](#core-kernel-provided-syscalls) - [Capsule Provided Drivers](#capsule-provided-drivers) - * [Base](#base) - * [Kernel](#kernel) - * [Hardware Access](#hardware-access) - * [Radio](#radio) - * [Cryptography](#cryptography) - * [Storage](#storage) - * [Sensors](#sensors) - * [Sensor ICs](#sensor-ics) - * [Other ICs](#other-ics) - * [Miscellaneous](#miscellaneous) + - [Base](#base) + - [Kernel](#kernel) + - [Hardware Access](#hardware-access) + - [Radio](#radio) + - [Cryptography](#cryptography) + - [Storage](#storage) + - [Sensors](#sensors) + - [Sensor ICs](#sensor-ics) + - [Other ICs](#other-ics) + - [Miscellaneous](#miscellaneous)