2021-11-09 19:26:39 +01:00
|
|
|
[![Crates.io](https://img.shields.io/crates/v/vorago-reb1)](https://crates.io/crates/vorago-reb1)
|
2021-11-09 19:27:36 +01:00
|
|
|
[![ci](https://github.com/robamu-org/vorago-reb1-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/robamu-org/vorago-reb1-rs/actions/workflows/ci.yml)
|
2021-11-09 19:26:39 +01:00
|
|
|
[![docs.rs](https://img.shields.io/docsrs/vorago-reb1)](https://docs.rs/vorago-reb1)
|
|
|
|
|
2021-11-09 19:10:05 +01:00
|
|
|
# Rust BSP for the Vorago REB1 development board
|
|
|
|
|
|
|
|
This is the Rust **B**oard **S**upport **P**ackage crate for the Vorago REB1 development board.
|
|
|
|
Its aim is to provide drivers for the board features of the REB1 board
|
|
|
|
|
|
|
|
The BSP builds on top of the [HAL crate for VA108xx devices](https://github.com/robamu-org/va108xx-hal-rs).
|
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
|
|
Building an application requires the `thumbv6m-none-eabi` cross-compiler toolchain.
|
|
|
|
If you have not installed it yet, you can do so with
|
|
|
|
|
|
|
|
```sh
|
|
|
|
rustup target add thumbv6m-none-eabi
|
|
|
|
```
|
|
|
|
|
|
|
|
This repository provides some example applications to show how the BSP is used. For example
|
|
|
|
you can build the blinky example with
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cargo build --example blinky-leds
|
|
|
|
```
|
|
|
|
|
2021-11-11 17:52:37 +01:00
|
|
|
If you have not done this yet, it is recommended to read some of the excellent resources
|
|
|
|
available to learn Rust:
|
|
|
|
|
|
|
|
- [Rust Embedded Book](https://docs.rust-embedded.org/book/)
|
|
|
|
- [Rust Discovery Book](https://docs.rust-embedded.org/discovery/)
|
|
|
|
|
2021-11-09 19:10:05 +01:00
|
|
|
## Flashing from the command line
|
|
|
|
|
|
|
|
A `jlink.gdb` file is provided to allow flashing of the board from the command line.
|
|
|
|
|
|
|
|
|
|
|
|
1. Ensure that you have a suitable GDB application like `arm-none-eabi-gdb` or `gdb-multiarch`
|
|
|
|
installed first. On Windows, you can use [xPacks](https://xpack.github.io/arm-none-eabi-gcc/).
|
|
|
|
On Linux, you can install `gdb-multiarch` from the package manager.
|
|
|
|
|
|
|
|
2. Install the [JLink Tools](https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack).
|
|
|
|
|
|
|
|
3. Start the JLink GDB server with the GUI or from the command line. The device should be recognized
|
|
|
|
automatically
|
|
|
|
|
|
|
|
4. Make sure to select an appropriate runner in the `.cargo/config.toml` file depending on which
|
|
|
|
GDB application you are using
|
|
|
|
|
|
|
|
5. Use
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cargo run --example blinky-leds
|
|
|
|
```
|
|
|
|
|
|
|
|
to flash the board. The debugger should stop at the start of the main.
|
|
|
|
|
|
|
|
## Debugging with VS Code
|
|
|
|
|
|
|
|
The REB1 board features an on-board JTAG, so all that is required to flash the board is a
|
|
|
|
Micro-USB cable and an
|
|
|
|
You can debug applications on the REB1 board with a graphical user interface using VS Code with
|
|
|
|
the [`Cortex-Debug` plugin](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug).
|
|
|
|
|
|
|
|
Some sample configuration files for VS code were provided as well. You can simply use `Run and Debug`
|
|
|
|
to automatically rebuild and flash your application.
|
|
|
|
|
2021-12-12 13:46:45 +01:00
|
|
|
The `tasks.json` and the `launch.json` files are generic and you can use them immediately by
|
|
|
|
opening the folder in VS code or adding it to a workspace.
|
|
|
|
|
|
|
|
If you would like to use a custom GDB application, you can specify the gdb binary in the following
|
|
|
|
configuration variables in your `settings.json`:
|
|
|
|
|
|
|
|
- `"cortex-debug.gdbPath"`
|
|
|
|
- `"cortex-debug.gdbPath.linux"`
|
|
|
|
- `"cortex-debug.gdbPath.windows"`
|
|
|
|
- `"cortex-debug.gdbPath.osx"`
|
|
|
|
|
2021-11-09 19:10:05 +01:00
|
|
|
## Flashing the non-volatile memory
|
|
|
|
|
|
|
|
Coming Soon
|