This folder contains the detailed documentation for the interfaces between
userspace and the kernel. It includes details of the ABI interface, the kernel
provided syscalls, and the driver specific interfaces (using allow
,
schedule
, and command
). For more information on the general syscalls, see
here .
Details of the application binary interface .
Core Kernel Provided Syscalls
memop
: Memory-related operations.
Each driver type that has been allocated a permanent driver number is listed in
the tables below. The "2.0" column indicates whether the driver has been
stabilized or not (a "✓" indicates stability) in the Tock 2.0 release.
2.0
Driver Number
Driver
Description
✓
0x00000
Alarm
Used for timers in userspace
✓
0x00001
Console
UART console
✓
0x00002
LED
Control LEDs on board
✓
0x00003
Button
Get interrupts from buttons on the board
✓
0x00005
ADC
Sample analog-to-digital converter pins
0x00006
DAC
Digital to analog converter
0x00007
AnalogComparator
Analog Comparator
0x00008
Low-Level Debug
Low-level debugging tools
0x00009
ROS
Read Only State, access system information
0x00010
PWM
Control PWM pins
2.0
Driver Number
Driver
Description
0x10000
IPC
Inter-process communication
2.0
Driver Number
Driver
Description
0x00004
GPIO
Set and read GPIO pins
0x20000
UART
UART
0x20001
SPI
Raw SPI Master interface
0x20002
SPI Slave
Raw SPI slave interface
0x20003
I2C Master
Raw I2C Master interface
0x20004
I2C Slave
Raw I2C Slave interface
0x20005
USB
Universal Serial Bus interface
0x20007
CAN
Controller Area Network interface
Note: GPIO is slated for re-numbering in Tock 2.0.
2.0
Driver Number
Driver
Description
0x30000
BLE
Bluetooth Low Energy
0x30001
802.15.4
IEEE 802.15.4
0x30002
UDP
UDP / 6LoWPAN Interface
2.0
Driver Number
Driver
Description
0x40000
AES
AES Symmetric Key Cryptography
0x40001
RNG
Random number generator
0x40002
CRC
Cyclic Redundancy Check computation
2.0
Driver Number
Driver
Description
0x50000
App Flash
Allow apps to write their own flash
0x50001
Nonvolatile Storage
Generic interface for persistent storage
0x50002
SDCard
Raw block access to an SD card
2.0
Driver Number
Driver
Description
✓
0x60000
Ambient Temp.
Ambient temperature (centigrate)
✓
0x60001
Humidity
Humidity Sensor (percent)
✓
0x60002
Luminance
Ambient Light Sensor (lumens)
0x60003
Pressure
Pressure sensor
0x60004
Ninedof
Virtualized accelerometer/magnetometer/gyroscope
0x60005
Proximity
Proximity Sensor
0x60006
SoundPressure
Sound Pressure Sensor
2.0
Driver Number
Driver
Description
0x70000
TSL2561
Light sensor
0x70001
TMP006
Temperature sensor
0x70004
LPS25HB
Pressure sensor
0x70005
L3GD20
3 axis gyroscope and temperature sensor
0x70006
LSM303DLHC
3 axis accelerometer, magnetometer and temperature sensor
2.0
Driver Number
Driver
Description
0x80000
LTC294X
Battery gauge IC
0x80001
MAX17205
Battery gauge IC
0x80002
PCA9544A
I2C address multiplexing
0x80003
GPIO Async
Asynchronous GPIO pins
0x80004
nRF51822
nRF serialization link to nRF51822 BLE SoC
2.0
Driver Number
Driver
Description
0x90000
Buzzer
Buzzer
0x90001
Screen
Graphic Screen
0x90002
Touch
Multi Touch Panel
0x90003
Text Screen
Text Screen