# Matcha SW Repository

This project contains the support needed to build a TockOS artifact that can run on the
Matcha security core, and integrated as part of the Shodan repository.

## Prerequisite

If you get this project from Project Shodan manifest, you are all set.

This project needs to be at `<dir>/sw/matcha`.

## Code structure

* app: TockOS applications (including the boot loader)
* blob_fs: prototype implementation of a Blob filesystem (unused)
* capsules: TockOS capsules
* config: TockOS configuration for Matcha
* hal: TockOS hal crates
* platform: TockOS Matcha platform support
* utils: utility code for apps & capsules
