The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.
| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2021-08-25 | 30.2 kB | |
| Tock 2.0 source code.tar.gz | 2021-08-25 | 15.4 MB | |
| Tock 2.0 source code.zip | 2021-08-25 | 16.0 MB | |
| Totals: 3 Items | 31.5 MB | 0 | |
This is the second major release of Tock! Tock 2.0 comes with a revamped system call interface with clarified semantics for how resources are shared between processes and the kernel. This is a breaking change from Tock 1.x and Tock 2.0 requires apps compiled for the new syscall interface.
System Call Interface Changes
- Two new system calls:
AllowReadOnlyandExit.Allowhas been renamed toAllowReadWrite. - System calls can now return up to 4 registers of values to userspace. This flexibility introduces some additional restraints on capsule code, see https://github.com/tock/tock/blob/master/doc/Porting_v1_Capsules_to_v2.md for more details.
- Additional restrictions on how capsules implement Subscribe and Allow, with some in-kernel checks of these restrictions.
New Requirements in Tock 2.0
- All apps must include a TBF header specifying the minimum supported kernel version they require. By default, the process loader will check this header and refuse to load apps which are not explicitly compatible with 2.0.
- All capsules must store any process state in a
Grant, and each capsule may only have up to one grant.
Other Major Changes
- The
ChipandPlatformtraits in the kernel have been refactored.Chipnow only includes functions that are tightly coupled with microcontrollers.Platformhas been divided into separate, clearly defined traits. - How boards configure the kernel has been clarified. All resources the kernel needs to operate for a specific board are specified in the
KernelResourcestrait. This replaces the previous ad-hoc approach where some configuration was passed in as function arguments and others where in a trait. Additionally, individual boards can now choose to exclude chip peripherals which they do not use. - The kernel crate has been reorganized. Kernel exports are more clearly structured, and use full module paths by default. Inside the kernel crate, related files are namespaced as
feature_X.rs, such asprocess_standard.rsandprocess_utilities.rs. - The process console now is able to print memory maps.
New Platforms
- Nano RP2040 Connect
- Clue nRF52840
- BBC Micro:bit v2
- WeAct F401CCU6 Core Board
- i.MX RT 1052 Evaluation Kit
- Teensy 4.0
- Pico Explorer Base
- Rapsberry Pi Pico
- LiteX on Digilent Arty A-7
- Verilated LiteX simulation
- ESP32-C3-DevKitM-1
New HILs
- key/value store
- 8080 bus (for LCDs)
- text screen
- screen
- touch