-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
104 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
VA416xx Flashloader Application | ||
======== | ||
|
||
This flashloader shows a minimal example for a self-updatable Rust software which exposes | ||
a simple PUS (CCSDS) interface to update the software. It also provides a Python application | ||
called the `image-loader.py` which can be used to upload compiled images to the flashloader | ||
application to write them to the NVM. | ||
|
||
The software can quickly be adapted to interface with a real primary on-board software instead of | ||
the Python script provided here to upload images because it uses a low-level CCSDS based packet | ||
interface. | ||
|
||
## Using the Python image loader | ||
|
||
It is recommended to run the script in a dedicated virtual environment. For example, on UNIX | ||
systems you can use `python3 -m venv venv` and then `source venv/bin/activate` to create | ||
and activate a virtual environment. | ||
|
||
After that, you can use | ||
|
||
```sh | ||
pip install -r requirements.txt | ||
``` | ||
|
||
to install all required dependencies. | ||
|
||
After that, it is recommended to use `./image-load.py -h` to get an overview of some options. | ||
The flash loader uses the UART0 interface of the VA416xx board to perform CCSDS based | ||
communication. The Python image loader application will search for a file named `loader.toml` and | ||
use the `serial_port` key to determine the serial port to use for serial communication. | ||
|
||
### Examples | ||
|
||
You can use | ||
|
||
```sh | ||
./image-loader.py -p | ||
``` | ||
|
||
to send a ping an verify the connection. | ||
|
||
You can use | ||
|
||
```sh | ||
cd flashloader/slot-a-blinky | ||
cargo build --release | ||
cd ../.. | ||
./image-loader.py -t a ./slot-a-blinky/target/thumbv7em-none-eabihf/release/slot-a-blinky | ||
``` | ||
|
||
to build the slot A sample application and upload it to a running flash loader application | ||
to write it to slot A. | ||
|
||
You can use | ||
|
||
```sh | ||
./image-loader.py -c -t a | ||
``` | ||
|
||
to corrupt the image A and test that it switches to image B after a failed CRC check instead. |