This release is the first on the path to OTT (One True Tockloader). The goal is to enable developers to build Tock apps without having to specify which board they are targeting. Instead, the build system generates binaries for all platforms (architectures, really) and then the correct one is flashed on the target board. If all platforms support Tockloader, then developers never need to specify which board they are using.
We are not quite at this goal, but moving to flashing TABs rather than just TBF binaries means that Tockloader can determine what board it is connected to and choose the correct architecture-specific binary, and the developer does not have to specify this manually.
This release is not backwards compatible because it no longer supports passing TBF binaries to the application install commands. All applications must be flashed using TABs.
This release also includes many other features:
- JTAG support. Tockloader can flash boards over JLinkExe.
- Attributes support. Attributes are how Tockloader figures out which board it is connected to.
- Code re-organization. Commands specific to the serial bootloader protocol and JTAG protocol are in their own classes. Also moved to exception based error handling.
- Better handling of arguments. Arguments can be passed in more orders on the command line now.
- Added `replace --add` to mimic how applications on other platforms (desktop, smartphone) are typically installed.
- Make `flash` command the only one that works on raw binaries. It also _only_ works on raw binaries. This can be used to put arbitrary bits in arbitrary places.