TockOS Hail

From
Jump to navigation Jump to search

TockOS

Idee

Bei Tock handelt es sich um ein Betriebssystem für den Embedded-Bereich, welches u.a. Plattformen wie Cortex-M und RISCV unterstützt. Besonders dabei ist, dass dabei der Kernel als auch die Treiber in der Programmiersprache Rust geschrieben sind. Dabei werden die Speicherschutzmechanismen von Rust genutzt, um für Safety und Security innerhalb des Kernels aber auch der Anwendungen zu gewährleisten. Dabei sind 2 Techniken für den Speicherschutz besonders hervorzuheben:

1. Compile-Time Memory-Safety durch den Rust Compiler

2. Nutzung von Speicherschutzeinheiten um Anwendungen vom Kernel zu isolieren


Implementierungen

Insbesondere existieren bisher 2 Implementierung von Bibliotheken, welche eine Schnittstelle für die Anwendungsentwicklung in Tock zur Verfügung stellen. Zum einen die libtock-c, welche C-Bindings bereitstellt und die libtock-rs, welche direkt Rust-Bindings fr die Anwendungentwicklung bereitstellt.


Weitere Informationen zu Tock sind in der Dokumentation des Github Repositories von Tock zu finden.

libtock-c

libtock-rs

Hail Board

Komponenten des IoT-Boards

Das Tock Hail IoT-Development Board besitzt folgende Komponenten mit folgenden Funktionen:

Komponenten des Hail-Boards
Name Spezifikation Beschreibung Technische Details
SAM4L Cortex-M4 48 - 120 Mhz, 32 - 160 kB RAM, 128-2048 kB Flash Memory Microcontroller für sehr energiesparende Embedded-Systeme, Arm CPU, RISCV-Architektur Dokumentation
nRF51822 BLE Radio 2.4 Ghz, 16/32 kB RAM, 128/256 kB Das BLE (Bluetooth Low Energy) Radio ist in der Lage, zu anderen Geräten Bluetooth-Verbindungen aufzubauen. Dokumentation
SI7021 Temperature and Humidity Sensor Example Example Example
ISL29035 Light Sensor Example Example Example
FXOS8700CQ 6-axis Accelerometer and Magnetometer Example Example Example
RGB LED Example Example Example
User push-button Example Example Example


Photon Pinout

TockHail Pinout.png

PINS
Label Beschreibung
A0-A5 Example
DAC Example
WKP Example
RX Example
TX Example
GND Example
VIN Example
D0-D7 Example
3V3 Example
RST Example
VBAT Example


Ansteuerbare Pins

TO-DO

1. GPIO Communication via external devices

2. BLE userland bindings

References

TockOS Introduction

TockOS Kernel

Libtock-c

Libtock-rs

Pin Layout