Vorago VA416xx Rust Support
This crate collection provided support to write Rust applications for the VA416XX family of devices.
List of crates
This workspace contains the following crates:
- The
va416xxPAC crate containing basic low-level register definition - The
va416xx-halHAL crate containing higher-level abstractions on top of the PAC register crate. - The
vorago-peb1BSP crate containing support for the PEB1 development board.
Using the .cargo/config.toml file
Use the following command to have a starting config.toml file
cp .cargo/def-config.toml .cargo/config.toml
You then can adapt the config.toml to your needs. For example, you can configure runners
to conveniently flash with cargo run.
Using the sample VS Code files
Use the following command to have a starting configuration for VS Code:
cp vscode .vscode -r
You can then adapt the files in .vscode to your needs.
Flashing, running and debugging with the command line
Prerequisites
- SEGGER J-Link tools installed
- gdb-multiarch or similar
cross-architecture debugger installed. All commands here assume
gdb-multiarch.
Flashing and debugging the blinky application
You can build the blinky example application with the following command
cargo build -p va416xx-hal --example blinky
Start the GDB server first. The server needs to be started with a certain configuration and with
a JLink script to disable ROM protection.
For example, on Debian based system the following command can be used to do this (this command
is also run when running the jlink-gdb.sh script)
JLinkGDBServer -select USB -device Cortex-M4 -endian little -if SWD -speed 2000 \
-LocalhostOnly -vd -jlinkscriptfile ./jlink/JLinkSettings.JLinkScript
After this, you can flash and debug the application with the following command
gdb-mutliarch -q -x jlink/jlink.gdb target/thumbv7em-none-eabihf/debug/examples/blinky
Please note that you can automate all steps except starting the GDB server by using a cargo
runner configuration, for example with the following lines in your .cargo/config.toml file:
[target.'cfg(all(target_arch = "arm", target_os = "none"))']
runner = "gdb-multiarch -q -x jlink/jlink.gdb"
After that, you can simply use cargo run -p va416xx-hal --example blinky to flash the blinky
example.
Flashing, running and debugging with VS Code
TODO