TockOS Hail: Difference between revisions

From
Jump to navigation Jump to search
Line 47: Line 47:
| SI7021 Temperature and Humidity Sensor || - || Messung von Temperatur und Luftfeuchtigkeit || -
| SI7021 Temperature and Humidity Sensor || - || Messung von Temperatur und Luftfeuchtigkeit || -
|-
|-
| ISL29035 Light Sensor || 16-Bit ADC, 11<math>\mu</math>s - 105ms RT || Messung von Helligkeit in Lumen || [https://www.renesas.com/us/en/document/dst/isl29035-datasheet?r=497231 Dokumentation]
| ISL29035 Light Sensor || Example || Example || Example
|-
|-
| FXOS8700CQ 6-axis Accelerometer and Magnetometer || 6-axis e-compass (<math>\plusmn 1200 \mu</math>T range), <math>\plusmn 8g</math> acceleration, ODR 1.5 Hz - 800 Hz || Sensor zur Bestimmung von Drehungen, Geschwindigkeit etc. Andwendung für digitale Kompasse, Bewegungserkennung oder Erkennung der Orientierung des Geräts. || [https://www.nxp.com/docs/en/data-sheet/FXOS8700CQ.pdf Dokumentation]
| FXOS8700CQ 6-axis Accelerometer and Magnetometer || Example || Example || Example
|-
|-
| RGB LED || Example || Example || Example
| RGB LED || 3 LEDs (R,G,B) || Ansteuerbare LED mit 3 Kanälen (rot,grün,blau) || -
|-
|-
| User push-button || Example || Example || Example
| User push-button || E2 || Programmierbarer Knopf (sehr klein) || -
|}
|}



Revision as of 09:13, 10 October 2022

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.


Tockloader

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 - Messung von Temperatur und Luftfeuchtigkeit -
ISL29035 Light Sensor 16-Bit ADC, 11s - 105ms RT Messung von Helligkeit in Lumen Dokumentation
FXOS8700CQ 6-axis Accelerometer and Magnetometer 6-axis e-compass (T range), acceleration, ODR 1.5 Hz - 800 Hz Sensor zur Bestimmung von Drehungen, Geschwindigkeit etc. Andwendung für digitale Kompasse, Bewegungserkennung oder Erkennung der Orientierung des Geräts. Dokumentation
RGB LED 3 LEDs (R,G,B) Ansteuerbare LED mit 3 Kanälen (rot,grün,blau) -
User push-button E2 Programmierbarer Knopf (sehr klein) -


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

BLE API für Rust

TO-DO

1. GPIO Communication via external devices

2. BLE userland bindings

References

TockOS Introduction

TockOS Kernel

Libtock-c

Libtock-rs

Pin Layout