1 Commits

Author SHA1 Message Date
b3e9621326 Finished flashloader and bootloader implementation
Some checks are pending
Rust/va108xx-rs/pipeline/pr-main Build queued...
2024-09-30 11:37:07 +02:00
12 changed files with 16 additions and 20 deletions

View File

@@ -14,6 +14,7 @@ embedded-hal-nb = "1"
embedded-io = "0.6" embedded-io = "0.6"
[dependencies.va108xx-hal] [dependencies.va108xx-hal]
version = "0.7"
path = "../va108xx-hal" path = "../va108xx-hal"
features = ["rt"] features = ["rt"]

View File

@@ -1,4 +1,4 @@
VA108xx Bootloader Application VA416xx Bootloader Application
======= =======
This is the Rust version of the bootloader supplied by Vorago. 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 | | 0x0 | Bootloader start | code up to 0x3FFC bytes |
| 0x2FFE | Bootloader CRC | word | | 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 | | 0x117F8 | App image A CRC check length | word |
| 0x117FC | App image A CRC check value | 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 | | 0x1FFF8 | App image B CRC check length | word |
| 0x1FFFC | App image B CRC check value | word | | 0x1FFFC | App image B CRC check value | word |
| 0x20000 | End of NVM | end | | 0x20000 | End of NVM | end |

View File

@@ -38,7 +38,7 @@ default-features = false
features = ["portable-atomic"] features = ["portable-atomic"]
[dependencies.va108xx-hal] [dependencies.va108xx-hal]
version = "0.8" path = "../../va108xx-hal"
[dependencies.vorago-reb1] [dependencies.vorago-reb1]
path = "../../vorago-reb1" path = "../../vorago-reb1"

View File

@@ -16,7 +16,7 @@ embedded-io = "0.6"
cortex-m-semihosting = "0.5.0" cortex-m-semihosting = "0.5.0"
[dependencies.va108xx-hal] [dependencies.va108xx-hal]
version = "0.8" path = "../../va108xx-hal"
features = ["rt", "defmt"] features = ["rt", "defmt"]
[dependencies.vorago-reb1] [dependencies.vorago-reb1]

View File

@@ -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. application to write them to the NVM.
Please note that the both the application and the image loader are tailored towards usage 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 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 the Python script provided here to upload images because it uses a low-level CCSDS based packet

View File

@@ -1,6 +1,6 @@
MEMORY MEMORY
{ {
FLASH : ORIGIN = 0x00003000, LENGTH = 0xE7F8 /* (128k - 12k) / 2 - 8 */ FLASH : ORIGIN = 0x00003000, LENGTH = 0xE800 /* (128k - 12k) / 2 */
RAM : ORIGIN = 0x10000000, LENGTH = 0x08000 /* 32K */ RAM : ORIGIN = 0x10000000, LENGTH = 0x08000 /* 32K */
} }

View File

@@ -1,6 +1,6 @@
MEMORY MEMORY
{ {
FLASH : ORIGIN = 0x00011800, LENGTH = 0xE7F8 /* (128k - 12k) / 2 - 8 */ FLASH : ORIGIN = 0x00011800, LENGTH = 0xE800 /* (128k - 12k) / 2 */
RAM : ORIGIN = 0x10000000, LENGTH = 0x08000 /* 32K */ RAM : ORIGIN = 0x10000000, LENGTH = 0x08000 /* 32K */
} }

View File

@@ -8,8 +8,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
## [unreleased] ## [unreleased]
## [v0.8.0] 2024-09-30
## Changed ## Changed
- Improves `CascardSource` handling and general API when chosing cascade sources. - Improves `CascardSource` handling and general API when chosing cascade sources.

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "va108xx-hal" name = "va108xx-hal"
version = "0.8.0" version = "0.7.0"
authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"] authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"]
edition = "2021" edition = "2021"
description = "HAL for the Vorago VA108xx family of microcontrollers" description = "HAL for the Vorago VA108xx family of microcontrollers"

View File

@@ -3,8 +3,7 @@
//! ## Examples //! ## Examples
//! //!
//! - [UART simple example](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/examples/simple/examples/uart.rs) //! - [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) //! - [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)
//! - [Flashloader exposing a CCSDS interface via UART](https://egit.irs.uni-stuttgart.de/rust/va108xx-rs/src/branch/main/flashloader)
use core::{convert::Infallible, ops::Deref}; use core::{convert::Infallible, ops::Deref};
use fugit::RateExtU32; use fugit::RateExtU32;
use va108xx::Uarta; 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 /// This does not necesarily mean that the FIFO can process another word because it might be
/// full. /// 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. /// API.
#[inline(always)] #[inline(always)]
pub fn write_fifo_unchecked(&self, data: u32) { 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. /// 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 /// 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, /// 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 /// this structure provides API calls which can be used inside the ISRs to simplify the reading

View File

@@ -8,10 +8,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
## [unreleased] ## [unreleased]
## [v0.6.0] 2024-09-30
- Added M95M01 EEPROM module/API - Added M95M01 EEPROM module/API
- Update `va108xx-hal` dependency to range >=v0.8, <0.9
## [v0.5.1] 2024-07-04 ## [v0.5.1] 2024-07-04

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "vorago-reb1" name = "vorago-reb1"
version = "0.6.0" version = "0.5.1"
authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"] authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"]
edition = "2021" edition = "2021"
description = "Board Support Crate for the Vorago REB1 development board" description = "Board Support Crate for the Vorago REB1 development board"
@@ -21,7 +21,8 @@ bitfield = "0.17"
version = "0.3" version = "0.3"
[dependencies.va108xx-hal] [dependencies.va108xx-hal]
version = ">=0.8, <0.9" version = ">=0.7, <0.8"
path = "../va108xx-hal"
features = ["rt"] features = ["rt"]
[features] [features]