Skip to content

Prepare release #37

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@ These libraries were originally written by Ferrous Systems, and are based on the
[`cortex-m` libraries]: https://github.com/rust-embedded/cortex-m
[Rust Embedded Devices Working Group]: https://github.com/rust-embedded

There are currently three libraries here:
There are currently five libraries here:

* [cortex-ar](./cortex-ar/) - support library for Cortex-R and Cortex-A CPUs (like [cortex-m])
* [cortex-r-rt](./cortex-r-rt/) - run-time library for Cortex-R CPUs (like [cortex-m-rt])
* [cortex-a-rt](./cortex-a-rt/) - run-time library for Cortex-A CPUs (like [cortex-m-rt])
* [arm-targets](./arm-targets/) - a helper library for your build.rs that sets various `--cfg` flags according to the current target
* [cortex-ar-rt-macros](./cortex-ar-rt-macros/) - macros for `cortex-a-rt` and `cortex-r-rt` (this is an implementation detail - do not use this crate directly)

There are also example programs for QEMU in the [examples](./examples/) folder.

Expand Down
29 changes: 29 additions & 0 deletions arm-targets/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Change Log

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]

No changes

## [v0.2.0]

### Added

* `TargetInfo` struct
* Armv7-A support

### Changed

* The `process_target` function returns a `TargetInfo`

## [v0.1.0]

Initial release

[Unreleased]: https://github.com/rust-embedded/cortex-ar/compare/arm-targets-v0.1.0...HEAD
[v0.2.0]: https://github.com/rust-embedded/cortex-ar/compare/arm-targets-v0.1.0...arm-targets-v0.2.0
[v0.1.0]: https://github.com/rust-embedded/cortex-ar/releases/tag/arm-targets-v0.1.0
4 changes: 2 additions & 2 deletions arm-targets/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
authors = [
"Jonathan Pallant <[email protected]>",
"The Cortex-R Team <cortex-r@teams.rust-embedded.org>"
"The Embedded Devices Working Group Arm Team <arm@teams.rust-embedded.org>"
]
categories = ["development-tools::build-utils"]
description = "Compile-time feature detection for Arm processors"
Expand All @@ -12,6 +12,6 @@ readme = "README.md"
repository = "https://github.com/rust-embedded/cortex-ar.git"
homepage = "https://github.com/rust-embedded/cortex-ar.git"
rust-version = "1.59"
version = "0.1.0"
version = "0.2.0"

[dependencies]
11 changes: 8 additions & 3 deletions arm-targets/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,17 @@ This allows you to write Rust code in your firmware like:

## Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.82.0 and up. It *might*
compile with older versions but that may change in any new patch release.
This crate is guaranteed to compile on stable Rust 1.59.0 and up, as recorded
by the `package.rust-version` property in `Cargo.toml`.

Increasing the MSRV is not considered a breaking change and may occur in a
minor version release (e.g. from `0.3.0` to `0.3.1`, because this is still a
`0.x` release).

## Licence

Copyright (c) Ferrous Systems, 2025
* Copyright (c) Ferrous Systems
* Copyright (c) The Rust Embedded Devices Working Group developers

Licensed under either [MIT](./LICENSE-MIT) or [Apache-2.0](./LICENSE-APACHE) at
your option.
Expand Down
8 changes: 6 additions & 2 deletions cortex-a-rt/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [unreleased]
## [Unreleased]

No changes

## [v0.1.0]

Initial release

[unreleased]: https://github.com/rust-embedded/cortex-ar/compare/cortex-a-rt-v0.1.0...HEAD
[Unreleased]: https://github.com/rust-embedded/cortex-ar/compare/cortex-a-rt-v0.1.0...HEAD
[v0.1.0]: https://github.com/rust-embedded/cortex-ar/releases/tag/cortex-a-rt-v0.1.0
6 changes: 3 additions & 3 deletions cortex-a-rt/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
authors = [
"Robin Mueller <[email protected]>",
"Jonathan Pallant <[email protected]>",
"The Cortex-R Team <cortex-r@teams.rust-embedded.org>"
"The Embedded Devices Working Group Arm Team <arm@teams.rust-embedded.org>"
]
description = "Run-Time support for Arm Cortex-A"
edition = "2021"
Expand All @@ -15,7 +15,7 @@ rust-version = "1.82"
version = "0.1.0"

[dependencies]
cortex-ar = {version = "0.1.0", path = "../cortex-ar"}
cortex-ar = {version = "0.2.0", path = "../cortex-ar"}
cortex-ar-rt-macros = { path = "../cortex-ar-rt-macros", version = "=0.1.0" }

[features]
Expand All @@ -26,7 +26,7 @@ eabi-fpu = []
vfp-dp = []

[build-dependencies]
arm-targets = {version = "0.1.0", path = "../arm-targets"}
arm-targets = {version = "0.2.0", path = "../arm-targets"}

[package.metadata.docs.rs]
targets = ["armv7a-none-eabihf"]
17 changes: 14 additions & 3 deletions cortex-a-rt/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
# Arm Cortex-A Run-Time
# Run-time support for Arm Cortex-A (AArch32)

This library implements a simple Arm vector table, suitable for getting into a
Rust application running in System Mode. It also provides a reference start
up method. Most Cortex-A based systems will require chip specific start-up
code, so the start-up method can over overriden.

See <https://docs.rs/cortex-a-rt> for detailed documentation.

## Features

Expand All @@ -8,8 +15,12 @@

## Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.82.0 and up. It *might*
compile with older versions but that may change in any new patch release.
This crate is guaranteed to compile on stable Rust 1.82.0 and up, as recorded
by the `package.rust-version` property in `Cargo.toml`.

Increasing the MSRV is not considered a breaking change and may occur in a
minor version release (e.g. from `0.3.0` to `0.3.1`, because this is still a
`0.x` release).

## Licence

Expand Down
17 changes: 17 additions & 0 deletions cortex-ar-rt-macros/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Change Log

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]

No changes

## [v0.1.0]

Initial release

[Unreleased]: https://github.com/rust-embedded/cortex-ar/compare/cortex-ar-rt-macros-v0.1.0...HEAD
[v0.1.0]: https://github.com/rust-embedded/cortex-ar/releases/tag/cortex-ar-rt-macros-v0.1.0
2 changes: 1 addition & 1 deletion cortex-ar-rt-macros/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
authors = [
"Robin Mueller <[email protected]>",
"Jonathan Pallant <[email protected]>",
"The Cortex-R Team <cortex-r@teams.rust-embedded.org>"
"The Embedded Devices Working Group Arm Team <arm@teams.rust-embedded.org>"
]
description = "Run-Time macros for Arm Cortex-A and Cortex-R"
edition = "2021"
Expand Down
32 changes: 32 additions & 0 deletions cortex-ar-rt-macros/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Macros for `cortex-a-rt` and `cortex-r-rt`

This crate contains proc-macros that are re-exported through the following crates:

* [`cortex-a-rt`]
* [`cortex-r-rt`]

[cortex-a-rt]: https://crates.io/crates/cortex-a-rt
[cortex-r-rt]: https://crates.io/crates/cortex-r-rt

## Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.82.0 and up, as recorded
by the `package.rust-version` property in `Cargo.toml`.

Increasing the MSRV is not considered a breaking change and may occur in a
minor version release (e.g. from `0.3.0` to `0.3.1`, because this is still a
`0.x` release).

## Licence

* Copyright (c) Ferrous Systems
* Copyright (c) The Rust Embedded Devices Working Group developers

Licensed under either [MIT](./LICENSE-MIT) or [Apache-2.0](./LICENSE-APACHE) at
your option.

## Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you shall be licensed as above, without any
additional terms or conditions.
15 changes: 12 additions & 3 deletions cortex-ar/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,27 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [unreleased]
## [Unreleased]

## [v0.2.0]

### Added

- General support for the Cortex-A architecture.
- New `sev` function in ASM module.
- Compiler fences for `dsb` and `isb`
- Added multi-core-safe critical-section implementation
- Additional EL1 MPU methods `set_region`, `set_attributes` and `background_region_enable`

### Changed

- Timer methods only need `&self` not `&mut self`
- The `dsb` and `isb` functions now include compiler fences
- Added `nomem`, `nostack` and `preserves_flags` options for ASM where applicable.

## [v0.1.0]

Initial release

[unreleased]: https://github.com/rust-embedded/cortex-ar/compare/cortex-ar-v0.1.0...HEAD
[Unreleased]: https://github.com/rust-embedded/cortex-ar/compare/cortex-ar-v0.2.0...HEAD
[v0.2.0]: https://github.com/rust-embedded/cortex-ar/compare/cortex-ar-v0.1.0...cortex-ar-v0.2.0
[v0.1.0]: https://github.com/rust-embedded/cortex-ar/releases/tag/cortex-ar-v0.1.0
6 changes: 3 additions & 3 deletions cortex-ar/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
authors = [
"Jonathan Pallant <[email protected]>",
"The Cortex-R Team <cortex-r@teams.rust-embedded.org>",
"The Embedded Devices Working Group Arm Team <arm@teams.rust-embedded.org>",
]
categories = [
"embedded",
Expand All @@ -22,7 +22,7 @@ readme = "README.md"
repository = "https://github.com/rust-embedded/cortex-ar.git"
homepage = "https://github.com/rust-embedded/cortex-ar.git"
rust-version = "1.82"
version = "0.1.0"
version = "0.2.0"

[dependencies]
arbitrary-int = "1.3.0"
Expand All @@ -32,7 +32,7 @@ critical-section = {version = "1.2.0", features = ["restore-state-u8"], optional
defmt = {version = "0.3", optional = true}

[build-dependencies]
arm-targets = {version = "0.1.0", path = "../arm-targets"}
arm-targets = {version = "0.2.0", path = "../arm-targets"}

[features]
# Adds a critical-section implementation that only disables interrupts.
Expand Down
11 changes: 8 additions & 3 deletions cortex-ar/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,17 @@ If you need a driver for the Arm Generic Interrupt Controller, see

## Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.82.0 and up. It *might*
compile with older versions but that may change in any new patch release.
This crate is guaranteed to compile on stable Rust 1.82.0 and up, as recorded
by the `package.rust-version` property in `Cargo.toml`.

Increasing the MSRV is not considered a breaking change and may occur in a
minor version release (e.g. from `0.3.0` to `0.3.1`, because this is still a
`0.x` release).

## Licence

Copyright (c) Ferrous Systems, 2025
* Copyright (c) Ferrous Systems
* Copyright (c) The Rust Embedded Devices Working Group developers

Licensed under either [MIT](./LICENSE-MIT) or [Apache-2.0](./LICENSE-APACHE) at
your option.
Expand Down
15 changes: 12 additions & 3 deletions cortex-r-rt/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,29 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [unreleased]
## [Unreleased]

## [v0.2.0]

## Added

- Added ABT und UND mode stack setup.
- Default exception handlers for undefined, prefetch and data abort exceptions
- Default exception handlers for undefined, prefetch abort and data abort exceptions
- SMP support
- Zeroing of registers on start-up
- `#[entry]` and `#[exception]` and `#[interrupt]` macros

## Changed

- Fixed interrupt handler so interrupts can be re-entrant
- Default Rust exception handler is now an empty permanent loop instead of a semihosting exit.
- The SVC asm trampoline can now be over-ridden
- The Undefined, Prefetch and Abort handlers can either return never, or can return a new address to continue executing from when the handler is over

## [v0.1.0]

Initial release

[unreleased]: https://github.com/rust-embedded/cortex-ar/compare/cortex-r-rt-v0.1.0...HEAD
[Unreleased]: https://github.com/rust-embedded/cortex-ar/compare/cortex-r-rt-v0.2.0...HEAD
[v0.2.0]: https://github.com/rust-embedded/cortex-ar/compare/cortex-r-rt-v0.1.0...cortex-r-rt-v0.2.0
[v0.1.0]: https://github.com/rust-embedded/cortex-ar/releases/tag/cortex-r-rt-v0.1.0
10 changes: 5 additions & 5 deletions cortex-r-rt/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
authors = [
"Jonathan Pallant <[email protected]>",
"The Cortex-R Team <cortex-r@teams.rust-embedded.org>"
"The Embedded Devices Working Group Arm Team <arm@teams.rust-embedded.org>"
]
categories = [
"embedded",
Expand All @@ -21,19 +21,19 @@ name = "cortex-r-rt"
readme = "README.md"
repository = "https://github.com/rust-embedded/cortex-r.git"
rust-version = "1.82"
version = "0.1.0"
version = "0.2.0"

[dependencies]
cortex-ar = {version = "0.1.0", path = "../cortex-ar"}
cortex-ar = {version = "0.2.0", path = "../cortex-ar"}
semihosting = {version = "0.1.18", features = ["stdio"]}
cortex-ar-rt-macros = { path = "../cortex-ar-rt-macros", version = "=0.1.0" }
cortex-ar-rt-macros = {path = "../cortex-ar-rt-macros", version = "=0.1.0"}

[features]
# Enable the FPU on start-up, even on a soft-float EABI target
eabi-fpu = []

[build-dependencies]
arm-targets = {version = "0.1.0", path = "../arm-targets"}
arm-targets = {version = "0.2.0", path = "../arm-targets"}

[package.metadata.docs.rs]
targets = ["armv7r-none-eabihf", "armv7r-none-eabihf"]
20 changes: 16 additions & 4 deletions cortex-r-rt/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,25 @@
# Arm Cortex-R Run-Time
# Run-time support for Arm Cortex-R (AArch32)

This library implements a simple Arm vector table, suitable for getting into a
Rust application running in System Mode. It also provides a reference start
up method. Most Cortex-R based systems will require chip specific start-up
code, so the start-up method can over overriden.

See <https://docs.rs/cortex-r-rt> for detailed documentation.

## Minimum Supported Rust Version (MSRV)

This crate is guaranteed to compile on stable Rust 1.82.0 and up. It *might*
compile with older versions but that may change in any new patch release.
This crate is guaranteed to compile on stable Rust 1.82.0 and up, as recorded
by the `package.rust-version` property in `Cargo.toml`.

Increasing the MSRV is not considered a breaking change and may occur in a
minor version release (e.g. from `0.3.0` to `0.3.1`, because this is still a
`0.x` release).

## Licence

Copyright (c) Ferrous Systems, 2025
* Copyright (c) Ferrous Systems
* Copyright (c) The Rust Embedded Devices Working Group developers

Licensed under either [MIT](./LICENSE-MIT) or [Apache-2.0](./LICENSE-APACHE) at
your option.
Expand Down
Loading