Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
422: Add ITNS field to NVIC peripheral r=adamgreig a=sphw
This PR adds the ITNS (Interrupt Target Non-secure) field to the NIVC peripheral. This field is required to write a boot loader for TrustZone-M devices, since it allows the user to use interrupts from non-secure states.
I believe I have maintained the correct padding for the next fields, but I have not tested these changes on a non M33 device. So a close review and test would be appreciated.
Co-authored-by: Sascha Wise <me@saschawise.com>
|
|
Co-Authored-By: Markus Reiter <me@reitermark.us>
|
|
|
|
|
|
add inline to most cortex_m::asm methods
|
|
|
|
checking code that uses it on native platform.
|
|
|
|
|
|
|
|
Per #370/#235, the const fn ptr() was supposed to be deprecated and
subsequently removed. This PR removes it for the master branch tracking
the 0.8 release
|
|
|
|
|
|
|
|
Closes #332
|
|
366: itm: derive serde for `LocalTimestampOptions`, impl gated `TryFrom<u8>` r=adamgreig a=tmplt
This PR is an upstream push of more std-features required by `cargo-rtic-scope`. If required, the `TryFrom<u8>` impl can be kept downstream.
Co-authored-by: Viktor Sonesten <v@tmplt.dev>
|
|
367: add methods needed for cycle count comparisons r=adamgreig a=TDHolmes
Extends the existing DWT comparator code to include cycle count comparisons which fire a `DebugMonitor` exception, if enabled with `enable_debug_monitor`. See working example [here](https://github.com/TDHolmes/embedded-profiling/blob/58d8b106921977816e2b5a05bcb43e976197edaf/ep-dwt/src/lib.rs#L57)
Co-authored-by: Tyler Holmes <tyler@holmesengineering.com>
|
|
If `HOST==TARGET`, we know we're compiling natively. Set a new `rustc`
cfg for this and use it where we previously checked for `x86_64`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The alternative is to create another std-* gate for each std-related
functionality. I do not think this will scale well, and makes the crate
difficult to use.
If the end-user wants to use host-side functionality they will only need
to specify "std".
|
|
|
|
342: Implement various interfaces for trace configuration r=adamgreig a=tmplt
I'm working on tracing support and aim to implement functions that abstract the configuration of relevant peripherals. Of chief interest is `DWT`, `ITM` and `TPIU`. Some propored abstractions will go against what is established in the crate; I will ask for comments on these.
Co-authored-by: Viktor Sonesten <v@tmplt.dev>
|
|
|
|
As per Rust API guidelines:
<https://rust-lang.github.io/api-guidelines/interoperability.html#c-common-traits>.
|
|
|
|
|
|
|
|
A DWT unit can do much more than just comparing addresses. PC
comparison, for example, which is only possible with the first DWT unit.
|
|
|
|
|
|
|
|
The function is a bit too large to warrant inlining.
|
|
|
|
|
|
|
|
Exposes two new feature gates for VectActive serde::{Serialize,
Deserialize} (via "serde") and Hash, PartialOrd (via "std-map") for use
on host-side ITM tracing programs. While the struct itself is not
received directly over ITM, its use greatly simplifies the
implementation by allowing VectActive as keys in map collections and
file/socket {,de}serialization to forward the structure elsewhere. These
features are not enabled by default.
Before this patch, serde functionality could be realized via [0], but
this does not propagate down a dependency chain (i.e. if realized for
crate B, which crate A depends on, serde functionality is not exposed in
crate A unless VectActive is wrapped in a type from crate B). I am not
aware of any method to realize PartialOrd, Hash derivation for a
downstream crate.
[0] https://serde.rs/remote-derive.html
|
|
|