A secure embedded operating system for microcontrollers
Third release candidate. Updates since 1.5-rc2:
Next 1.5 release candidate. Includes a couple bug fixes:
This is the first testing release for Tock 1.5.
New Features and Development
InterruptService
abstractionNew capsules
New Boards
New Documentation
setuptools
to svd2regs.nix
generated environmentThis fixes a small (in terms of lines of code) but substantial (in terms of GPIO usability) bug from the rewrite of the GPIO HIL.
For Tock 1.4 we had five milestones for the release:
The major changes are around updating HIL interfaces (UART, Time, and GPIO). Other changes include:
Updates:
Updates from RC1:
This is a feature-based release based on updates to three HILs: GPIO, UART, and Time.
Other major changes:
This is a large milestone-based release of Tock that encompasses numerous changes made by many contributors over the last five months. We set two main goals for this release which were tracked in the following issues:
We re-architected the core kernel to (hopefully!) remove all assumptions that Tock is running on a Cortex-M platform, and moved all of the architecture-specific code to the /arch
crates. This will enable Tock to run on other architectures in the future, like Cortex-MF or RISC-V.
We also significantly improved the IPv6/6LoWPAN based networking stack in Tock (built on top of 802.15.4) to enable UDP packet send and receive from userland. This is a promising step towards a full networking stack in Tock.
While we waited to complete these two goals before doing a release, numerous other changes were also made along the way. To briefly summarize:
debug
module in the kernel now includes a generic panic!()
routine used by many boards.debug
module is now a direct user of a UART
object rather than a psuedo-process. This provides more flexibility and simplifies the kernel internals.Capabilities
are a new feature for controlling access to sensitive (but public) internal Tock APIs.ADC
HIL changed to handle different resolution ADCs.UART
HIL changed to include a configure()
method.More details can be found in the CHANGELOG
file.
This release does not include any new API stability guarantees.
This release was tested on these platforms:
More little fixes:
make
in root lists boards properly.