2.5 KiB
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
va416xx
PAC crate containing basic low-level register definition - The
va416xx-hal
HAL crate containing higher-level abstractions on top of the PAC register crate. - The
vorago-peb1
BSP 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