Compare commits
13 Commits
va108xx-ha
...
e30d6d3f22
Author | SHA1 | Date | |
---|---|---|---|
e30d6d3f22
|
|||
7603185156
|
|||
2b6c013241
|
|||
ee8a481c4f
|
|||
ea35221d41
|
|||
a1a5156caf
|
|||
0f3614465f
|
|||
52f5d42358
|
|||
1f4d6f601d
|
|||
f7ff74940a
|
|||
60305ef393
|
|||
ce7a8665a3
|
|||
784a6d7146
|
@ -19,11 +19,6 @@ This workspace contains the following released crates:
|
||||
|
||||
It also contains the following helper crates:
|
||||
|
||||
- The [`bootloader`](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/bootloader)
|
||||
crate contains a sample bootloader strongly based on the one provided by Vorago.
|
||||
- The [`flashloader`](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/flashloader)
|
||||
crate contains a sample flashloader which is able to update the redundant images in the NVM which
|
||||
is compatible to the provided bootloader as well.
|
||||
- The [`board-tests`](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/board-tests)
|
||||
contains an application which can be used to test the libraries on the board.
|
||||
- The [`examples`](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/examples)
|
||||
|
@ -14,6 +14,7 @@ embedded-hal-nb = "1"
|
||||
embedded-io = "0.6"
|
||||
|
||||
[dependencies.va108xx-hal]
|
||||
version = "0.7"
|
||||
path = "../va108xx-hal"
|
||||
features = ["rt"]
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
VA108xx Bootloader Application
|
||||
VA416xx Bootloader Application
|
||||
=======
|
||||
|
||||
This is the Rust version of the bootloader supplied by Vorago.
|
||||
@ -11,10 +11,10 @@ The bootloader uses the following memory map:
|
||||
| ------ | ---- | ---- |
|
||||
| 0x0 | Bootloader start | code up to 0x3FFC bytes |
|
||||
| 0x2FFE | Bootloader CRC | word |
|
||||
| 0x3000 | App image A start | code up to 0xE7F8 (~58K) bytes |
|
||||
| 0x3000 | App image A start | code up to 0x1DFFC (~120K) bytes |
|
||||
| 0x117F8 | App image A CRC check length | word |
|
||||
| 0x117FC | App image A CRC check value | word |
|
||||
| 0x11800 | App image B start | code up to 0xE7F8 (~58K) bytes |
|
||||
| 0x11800 | App image B start | code up to 0x1DFFC (~120K) bytes |
|
||||
| 0x1FFF8 | App image B CRC check length | word |
|
||||
| 0x1FFFC | App image B CRC check value | word |
|
||||
| 0x20000 | End of NVM | end |
|
||||
|
@ -33,9 +33,10 @@ default-features = false
|
||||
features = ["critical-section"]
|
||||
|
||||
[dependencies.ringbuf]
|
||||
version = "0.4.7"
|
||||
version = "0.4"
|
||||
git = "https://github.com/us-irs/ringbuf.git"
|
||||
branch = "use-portable-atomic-crate"
|
||||
default-features = false
|
||||
features = ["portable-atomic"]
|
||||
|
||||
[dependencies.va108xx-hal]
|
||||
path = "../../va108xx-hal"
|
||||
|
@ -125,7 +125,6 @@ fn main() -> ! {
|
||||
Some(spi_clk_cfg),
|
||||
Some(SPI_MODE),
|
||||
BLOCKMODE,
|
||||
true,
|
||||
false,
|
||||
);
|
||||
spi.cfg_transfer(&transfer_cfg);
|
||||
@ -139,7 +138,6 @@ fn main() -> ! {
|
||||
Some(SPI_MODE),
|
||||
Some(hw_cs_pin),
|
||||
BLOCKMODE,
|
||||
true,
|
||||
false,
|
||||
);
|
||||
spi.cfg_transfer(&transfer_cfg);
|
||||
|
@ -19,12 +19,15 @@ version = "0.2"
|
||||
default-features = false
|
||||
|
||||
[dependencies.rtt-log]
|
||||
version = "0.4"
|
||||
version = "0.3"
|
||||
git = "https://github.com/us-irs/rtt-log-rs.git"
|
||||
branch = "allow-usage-on-non-cas-systems"
|
||||
|
||||
[dependencies.ringbuf]
|
||||
version = "0.4.7"
|
||||
version = "0.4"
|
||||
git = "https://github.com/us-irs/ringbuf.git"
|
||||
branch = "use-portable-atomic-crate"
|
||||
default-features = false
|
||||
features = ["portable-atomic"]
|
||||
|
||||
[dependencies.once_cell]
|
||||
version = "1"
|
||||
|
@ -1,4 +1,4 @@
|
||||
VA108xx Flashloader Application
|
||||
VA416xx Flashloader Application
|
||||
========
|
||||
|
||||
This flashloader shows a minimal example for a self-updatable Rust software which exposes
|
||||
@ -7,7 +7,7 @@ called the `image-loader.py` which can be used to upload compiled images to the
|
||||
application to write them to the NVM.
|
||||
|
||||
Please note that the both the application and the image loader are tailored towards usage
|
||||
with the [bootloader provided by this repository](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/bootloader).
|
||||
with the [bootloader provided by this repository](https://egit.irs.uni-stuttgart.de/rust/va416xx-rs/src/branch/main/bootloader).
|
||||
|
||||
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
|
||||
@ -31,7 +31,7 @@ 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 with the Pins PA8 (RX) and PA9 (TX) interface of the VA108xx to perform CCSDS based
|
||||
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.
|
||||
|
||||
@ -51,7 +51,7 @@ You can use
|
||||
cd flashloader/slot-a-blinky
|
||||
cargo build --release
|
||||
cd ../..
|
||||
./image-loader.py -t a ./slot-a-blinky/target/thumbv6m-none-eabi/release/slot-a-blinky
|
||||
./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
|
||||
|
@ -1,6 +1,6 @@
|
||||
MEMORY
|
||||
{
|
||||
FLASH : ORIGIN = 0x00003000, LENGTH = 0xE7F8 /* (128k - 12k) / 2 - 8 */
|
||||
FLASH : ORIGIN = 0x00003000, LENGTH = 0x20000 /* 128K */
|
||||
RAM : ORIGIN = 0x10000000, LENGTH = 0x08000 /* 32K */
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
MEMORY
|
||||
{
|
||||
FLASH : ORIGIN = 0x00011800, LENGTH = 0xE7F8 /* (128k - 12k) / 2 - 8 */
|
||||
FLASH : ORIGIN = 0x00011800, LENGTH = 0x20000 /* 128K */
|
||||
RAM : ORIGIN = 0x10000000, LENGTH = 0x08000 /* 32K */
|
||||
}
|
||||
|
||||
|
@ -8,8 +8,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [unreleased]
|
||||
|
||||
## [v0.8.0] 2024-09-30
|
||||
|
||||
## Changed
|
||||
|
||||
- Improves `CascardSource` handling and general API when chosing cascade sources.
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "va108xx-hal"
|
||||
version = "0.8.0"
|
||||
version = "0.7.0"
|
||||
authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"]
|
||||
edition = "2021"
|
||||
description = "HAL for the Vorago VA108xx family of microcontrollers"
|
||||
|
@ -301,9 +301,6 @@ pub struct TransferConfig {
|
||||
/// the BMSTOP bit is set on a dataword. A frame is defined as CSn being active for the
|
||||
/// duration of multiple data words
|
||||
pub blockmode: bool,
|
||||
/// Only used when blockmode is used. The SCK will be stalled until an explicit stop bit
|
||||
/// is set on a written word.
|
||||
pub bmstall: bool,
|
||||
pub hw_cs: HwChipSelectId,
|
||||
}
|
||||
|
||||
@ -312,7 +309,6 @@ impl TransferConfigWithHwcs<NoneT> {
|
||||
clk_cfg: Option<SpiClkConfig>,
|
||||
mode: Option<Mode>,
|
||||
blockmode: bool,
|
||||
bmstall: bool,
|
||||
sod: bool,
|
||||
) -> Self {
|
||||
TransferConfigWithHwcs {
|
||||
@ -322,7 +318,6 @@ impl TransferConfigWithHwcs<NoneT> {
|
||||
mode,
|
||||
sod,
|
||||
blockmode,
|
||||
bmstall,
|
||||
hw_cs: HwChipSelectId::Invalid,
|
||||
},
|
||||
}
|
||||
@ -335,7 +330,6 @@ impl<HwCs: HwCsProvider> TransferConfigWithHwcs<HwCs> {
|
||||
mode: Option<Mode>,
|
||||
hw_cs: Option<HwCs>,
|
||||
blockmode: bool,
|
||||
bmstall: bool,
|
||||
sod: bool,
|
||||
) -> Self {
|
||||
TransferConfigWithHwcs {
|
||||
@ -345,7 +339,6 @@ impl<HwCs: HwCsProvider> TransferConfigWithHwcs<HwCs> {
|
||||
mode,
|
||||
sod,
|
||||
blockmode,
|
||||
bmstall,
|
||||
hw_cs: HwCs::CS_ID,
|
||||
},
|
||||
}
|
||||
@ -428,11 +421,6 @@ impl SpiConfig {
|
||||
self
|
||||
}
|
||||
|
||||
pub fn bmstall(mut self, enable: bool) -> Self {
|
||||
self.bmstall = enable;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn mode(mut self, mode: Mode) -> Self {
|
||||
self.init_mode = mode;
|
||||
self
|
||||
@ -756,8 +744,12 @@ where
|
||||
} else {
|
||||
w.sod().clear_bit();
|
||||
}
|
||||
w.blockmode().bit(transfer_cfg.cfg.blockmode);
|
||||
w.bmstall().bit(transfer_cfg.cfg.bmstall)
|
||||
if transfer_cfg.cfg.blockmode {
|
||||
w.blockmode().set_bit();
|
||||
} else {
|
||||
w.blockmode().clear_bit();
|
||||
}
|
||||
w
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -3,8 +3,7 @@
|
||||
//! ## Examples
|
||||
//!
|
||||
//! - [UART simple example](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/examples/simple/examples/uart.rs)
|
||||
//! - [UART with IRQ and RTIC](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/examples/rtic/src/bin/uart-echo-rtic.rs)
|
||||
//! - [Flashloader exposing a CCSDS interface via UART](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/flashloader)
|
||||
//! - [UART with IRQ and RTIC](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/va108xx-update-package/examples/rtic/src/bin/uart-rtic.rs)
|
||||
use core::{convert::Infallible, ops::Deref};
|
||||
use fugit::RateExtU32;
|
||||
use va108xx::Uarta;
|
||||
@ -864,7 +863,7 @@ impl<Uart: Instance> Tx<Uart> {
|
||||
///
|
||||
/// This does not necesarily mean that the FIFO can process another word because it might be
|
||||
/// full.
|
||||
/// Use the [Self::write_fifo] function to write a word to the FIFO reliably using the [nb]
|
||||
/// Use the [Self::read_fifo] function to write a word to the FIFO reliably using the [nb]
|
||||
/// API.
|
||||
#[inline(always)]
|
||||
pub fn write_fifo_unchecked(&self, data: u32) {
|
||||
@ -917,7 +916,7 @@ impl<Uart: Instance> embedded_io::Write for Tx<Uart> {
|
||||
|
||||
/// Serial receiver, using interrupts to offload reading to the hardware.
|
||||
///
|
||||
/// You can use [Rx::into_rx_with_irq] to convert a normal [Rx] structure into this structure.
|
||||
/// You can use [Rx::to_rx_with_irq] to convert a normal [Rx] structure into this structure.
|
||||
/// This structure provides two distinct ways to read the UART RX using interrupts. It should
|
||||
/// be noted that the interrupt service routine (ISR) still has to be provided by the user. However,
|
||||
/// this structure provides API calls which can be used inside the ISRs to simplify the reading
|
||||
|
@ -21,7 +21,7 @@ bitfield = "0.17"
|
||||
version = "0.3"
|
||||
|
||||
[dependencies.va108xx-hal]
|
||||
version = ">=0.7, <=0.8"
|
||||
version = ">=0.7, <0.8"
|
||||
path = "../va108xx-hal"
|
||||
features = ["rt"]
|
||||
|
||||
|
@ -327,7 +327,7 @@
|
||||
"device": "Cortex-M0",
|
||||
"svdFile": "./va108xx/svd/va108xx.svd.patched",
|
||||
"preLaunchTask": "blinky-hal",
|
||||
"executable": "${workspaceFolder}/target/thumbv6m-none-eabi/debug/examples/blinky",
|
||||
"executable": "${workspaceFolder}/target/thumbv6m-none-eabi/debug/examples/adxl343-accelerometer",
|
||||
"interface": "jtag",
|
||||
"runToEntryPoint": "main",
|
||||
},
|
||||
@ -460,7 +460,7 @@
|
||||
"device": "Cortex-M0",
|
||||
"svdFile": "./va108xx/svd/va108xx.svd.patched",
|
||||
"preLaunchTask": "bootloader",
|
||||
"executable": "${workspaceFolder}/target/thumbv6m-none-eabi/release/bootloader",
|
||||
"executable": "${workspaceFolder}/target/thumbv6m-none-eabi/debug/bootloader",
|
||||
"interface": "jtag",
|
||||
"runToEntryPoint": "main",
|
||||
"rttConfig": {
|
||||
@ -484,7 +484,7 @@
|
||||
"device": "Cortex-M0",
|
||||
"svdFile": "./va108xx/svd/va108xx.svd.patched",
|
||||
"preLaunchTask": "flashloader",
|
||||
"executable": "${workspaceFolder}/target/thumbv6m-none-eabi/release/flashloader",
|
||||
"executable": "${workspaceFolder}/target/thumbv6m-none-eabi/debug/flashloader",
|
||||
"interface": "jtag",
|
||||
"runToEntryPoint": "main",
|
||||
"rttConfig": {
|
||||
|
@ -7,9 +7,7 @@
|
||||
"label": "rust: cargo build",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build"
|
||||
],
|
||||
"args": ["build"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -19,13 +17,7 @@
|
||||
"label": "rust: cargo build hal tests",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--bin",
|
||||
"board-tests",
|
||||
"--features",
|
||||
"rt"
|
||||
],
|
||||
"args": ["build", "--bin", "board-tests", "--features", "rt"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -35,11 +27,7 @@
|
||||
"label": "rust: cargo build rtt",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"rtt-log"
|
||||
],
|
||||
"args": ["build", "--example", "rtt-log"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -49,13 +37,7 @@
|
||||
"label": "rust: cargo build systick",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"timer-ticks",
|
||||
"--features",
|
||||
"rt"
|
||||
],
|
||||
"args": ["build", "--example", "timer-ticks", "--features", "rt"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -65,11 +47,7 @@
|
||||
"label": "rust: cargo build uart",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"uart"
|
||||
],
|
||||
"args": ["build", "--example", "uart"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -79,11 +57,7 @@
|
||||
"label": "rust: cargo build spi",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"spi"
|
||||
],
|
||||
"args": ["build", "--example", "spi"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -93,13 +67,7 @@
|
||||
"label": "rust: cargo build pwm",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"pwm",
|
||||
"--features",
|
||||
"rt"
|
||||
],
|
||||
"args": ["build", "--example", "pwm", "--features", "rt"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -109,13 +77,7 @@
|
||||
"label": "rust: cargo build cascade",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"cascade",
|
||||
"--features",
|
||||
"rt"
|
||||
],
|
||||
"args": ["build", "--example", "cascade", "--features", "rt"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -125,11 +87,7 @@
|
||||
"label": "uart-echo-rtic-example",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--bin",
|
||||
"uart-echo-rtic"
|
||||
],
|
||||
"args": ["build", "--bin", "uart-echo-rtic"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -139,11 +97,7 @@
|
||||
"label": "blinky-hal",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"blinky"
|
||||
],
|
||||
"args": ["build", "--example", "blinky"],
|
||||
"group": {
|
||||
"kind": "build"
|
||||
}
|
||||
@ -152,11 +106,7 @@
|
||||
"label": "rust: cargo build led blinky",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"blinky-leds"
|
||||
],
|
||||
"args": ["build", "--example", "blinky-leds"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -166,11 +116,7 @@
|
||||
"label": "rust: cargo build button blinky",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"blinky-button-irq"
|
||||
],
|
||||
"args": ["build", "--example", "blinky-button-irq"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -180,11 +126,7 @@
|
||||
"label": "rust: cargo build temp sensor",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"adt75-temp-sensor"
|
||||
],
|
||||
"args": ["build", "--example", "adt75-temp-sensor"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -194,11 +136,7 @@
|
||||
"label": "rust: cargo build button blinky rtic",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"blinky-button-rtic"
|
||||
],
|
||||
"args": ["build", "--example", "blinky-button-rtic"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -208,11 +146,7 @@
|
||||
"label": "rust: cargo build accelerometer",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"adxl343-accelerometer"
|
||||
],
|
||||
"args": ["build", "--example", "adxl343-accelerometer"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -222,11 +156,7 @@
|
||||
"label": "rust: cargo build adc",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"max11619-adc"
|
||||
],
|
||||
"args": ["build", "--example", "max11619-adc"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -236,11 +166,7 @@
|
||||
"label": "reb1-nvm",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--example",
|
||||
"nvm"
|
||||
],
|
||||
"args": ["build", "--example", "nvm"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
@ -250,43 +176,25 @@
|
||||
"label": "rtic-example",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--bin",
|
||||
"rtic-example"
|
||||
]
|
||||
"args": ["build", "--bin", "rtic-example"]
|
||||
},
|
||||
{
|
||||
"label": "embassy-example",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--bin",
|
||||
"embassy-example"
|
||||
]
|
||||
"args": ["build", "--bin", "embassy-example"]
|
||||
},
|
||||
{
|
||||
"label": "bootloader",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--bin",
|
||||
"bootloader",
|
||||
"--release",
|
||||
]
|
||||
"args": ["build", "--bin", "bootloader"]
|
||||
},
|
||||
{
|
||||
"label": "flashloader",
|
||||
"type": "shell",
|
||||
"command": "~/.cargo/bin/cargo", // note: full path to the cargo
|
||||
"args": [
|
||||
"build",
|
||||
"--bin",
|
||||
"flashloader",
|
||||
"--release"
|
||||
]
|
||||
"args": ["build", "--bin", "flashloader"]
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user