va416xx-rs/va416xx-hal
Robin Mueller f16ddc3114
Some checks failed
Rust/va416xx-rs/pipeline/pr-main There was a failure building this commit
UART with IRQ + Embassy example
2024-09-23 17:16:32 +02:00
..
jlink Init Commit 2024-06-25 20:01:21 +02:00
src UART with IRQ + Embassy example 2024-09-23 17:16:32 +02:00
.gitignore Init Commit 2024-06-25 20:01:21 +02:00
Cargo.toml Add embassy example 2024-09-17 21:30:57 +02:00
CHANGELOG.md Flashloader and UART improvements 2024-09-23 11:57:32 +02:00
jlink-gdb.sh Init Commit 2024-06-25 20:01:21 +02:00
LICENSE-APACHE Init Commit 2024-06-25 20:01:21 +02:00
NOTICE Init Commit 2024-06-25 20:01:21 +02:00
README.md Device specific support and UART Improvements 2024-07-18 21:32:36 -07:00

Crates.io docs.rs

HAL for the Vorago VA416xx MCU family

This repository contains the Hardware Abstraction Layer (HAL), which is an additional hardware abstraction on top of the peripheral access API.

It is the result of reading the datasheet for the device and encoding a type-safe layer over the raw PAC. This crate also implements traits specified by the embedded-hal project, making it compatible with various drivers in the embedded rust ecosystem.

You have to enable one of the following device features to use this crate depending on which chip you are using:

  • va41630
  • va41629
  • va41628
  • va41620

Building

Building an application requires the thumbv7em-none-eabihf cross-compiler toolchain. If you have not installed it yet, you can do so with

rustup target add thumbv7em-none-eabihf

After that, you can use cargo build to build the development version of the crate.

If you have not done this yet, it is recommended to read some of the excellent resources available to learn Rust:

Setting up your own binary crate

If you have a custom board, you might be interested in setting up a new binary crate for your project. These steps aim to provide a complete list to get a binary crate working to flash your custom board.

The hello world of embedded development is usually to blinky a LED. This example is contained within the examples folder.

  1. Set up your Rust cross-compiler if you have not done so yet. See more in the build chapter

  2. Create a new binary crate with cargo init

  3. To ensure that cargo build cross-compiles, it is recommended to create a .cargo/config.toml file. You can use this sample file as a starting point.

  4. Copy the memory.x file into your project. This file contains information required by the linker.

  5. Copy the blinky.rs file to the src/main.rs file in your binary crate

  6. You need to add some dependencies to your Cargo.toml file

     [dependencies]
     cortex-m = "<Compatible Version>"
     cortex-m-rt = "<Compatible Version>"
     panic-halt = "<Compatible Version>"
     embedded-hal = "<Compatible Version>"
    
     [dependencies.va416xx-hal]
     version = "<Most Recent Version>"
     features = ["va41630"]
    
  7. Build the application with cargo build

  8. Flashing the board might work differently for different boards and there is usually more than one way. You can find example instructions in primary README.