Releases: tock/tockloader
Fix for jtag using "cortex-m0" target
There seems to be issues with using the default target of cortex-m0
with the JLinkExe "reset" command. We can now read the attributes the first time without needing the "reset" command.
Also backport a fix for updating an app when the app is installed multiple times.
New Interface
The primary change in this release is a new command line interface that tries to mimic applications on smartphones and desktops. The verbs should match the expectations that people normally have for existing computers.
install
: Update the app if it already exists, install it otherwise.update
: Update the app if it already exists.uninstall
: Remove the app by name.
Other changes
- If the bootloader supports it, tockloader can increase the serial baud rate.
- Add support for inspecting the contents of TABs.
- Add
info
command to print more verbose information about the board. - Can read the bootloader version from the chip.
Fix issue with tockloader listen
tockloader listen
works again.
Support Tock Application Bundles (TABs)
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.
Improve Serial Port Detection
tockloader automatically searches for any serial ports with the string "tock"
in the information returned by serial ports.
This release adds the -d
/--device-name
flag, which allows users change this
search string to search for more specific devices.
Previously, if the search was ambiguous, tockloader would simply choose the
first device arbitrarily. Now it presents an interactive menu.
Other features:
- When possible, check that the binary was compiled with all required flags
- Terminals will retitle based on active connections
Manage Multiple Apps
This release adds the add
, remove
, and replace
commands which make it much easier to program a Tock board with multiple apps.
Other features:
- Sort apps by binary size for the MPU.
- Auto find .bin files so you can just run
tockloader add
in an app directory. - Check to see if Make has thing to build and warn the user.
- Allow arguments in a more flexible order.
- Better ignore bluetooth devices on mac when searching for a board's serial port.
Automatically find Tock compatible boards
- Use pyserial's grep feature to find boards with the string "tock" in them.
- Fix string printing issue when CRC checks fail.
Known Issues
- Some binaries causes a CRC check to fail repeatedly even though the binary is flashed successfully.
Initial Release
Get a version on PyPI that supports flash
and listen
.