nrf-pac

Crates

git

Versions

nrf54l15-app

Flavors

nrf_pac::etm

Struct Etm

Source
pub struct Etm { /* private fields */ }
Expand description

Embedded Trace Macrocell

Implementations§

Source§

impl Etm

Source

pub const unsafe fn from_ptr(ptr: *mut ()) -> Self

Source

pub const fn as_ptr(&self) -> *mut ()

Source

pub const fn trcprgctlr(self) -> Reg<Trcprgctlr, RW>

Enables the trace unit.

Source

pub const fn trcprocselr(self) -> Reg<Trcprocselr, RW>

Controls which PE to trace. Might ignore writes when the trace unit is enabled or not idle. Before writing to this register, ensure that TRCSTATR.IDLE == 1 so that the trace unit can synchronize with the chosen PE. Implemented if TRCIDR3.NUMPROC is greater than zero.

Source

pub const fn trcstatr(self) -> Reg<Trcstatr, RW>

Idle status bit

Source

pub const fn trcconfigr(self) -> Reg<Trcconfigr, RW>

Controls the tracing options This register must always be programmed as part of trace unit initialization. Might ignore writes when the trace unit is enabled or not idle.

Source

pub const fn trceventctl0r(self) -> Reg<Trceventctl0r, RW>

Controls the tracing of arbitrary events. If the selected event occurs a trace element is generated in the trace stream according to the settings in TRCEVENTCTL1R.DATAEN and TRCEVENTCTL1R.INSTEN.

Source

pub const fn trceventctl1r(self) -> Reg<Trceventctl1r, RW>

Controls the behavior of the events that TRCEVENTCTL0R selects. This register must always be programmed as part of trace unit initialization. Might ignore writes when the trace unit is enabled or not idle.

Source

pub const fn trcstallctlr(self) -> Reg<Trcstallctlr, RW>

Enables trace unit functionality that prevents trace unit buffer overflows. Might ignore writes when the trace unit is enabled or not idle. Must be programmed if TRCIDR3.STALLCTL == 1.

Source

pub const fn trctsctlr(self) -> Reg<Trctsctlr, RW>

Controls the insertion of global timestamps in the trace streams. When the selected event is triggered, the trace unit inserts a global timestamp into the trace streams. Might ignore writes when the trace unit is enabled or not idle. Must be programmed if TRCCONFIGR.TS == 1.

Source

pub const fn trcsyncpr(self) -> Reg<Trcsyncpr, RW>

Controls how often trace synchronization requests occur. Might ignore writes when the trace unit is enabled or not idle. If writes are permitted then the register must be programmed.

Source

pub const fn trcccctlr(self) -> Reg<Trcccctlr, RW>

Sets the threshold value for cycle counting. Might ignore writes when the trace unit is enabled or not idle. Must be programmed if TRCCONFIGR.CCI==1.

Source

pub const fn trcbbctlr(self) -> Reg<Trcbbctlr, RW>

Controls which regions in the memory map are enabled to use branch broadcasting. Might ignore writes when the trace unit is enabled or not idle. Must be programmed if TRCCONFIGR.BB == 1.

Source

pub const fn trctraceidr(self) -> Reg<Trctraceidr, RW>

Sets the trace ID for instruction trace. If data trace is enabled then it also sets the trace ID for data trace, to (trace ID for instruction trace) + 1. This register must always be programmed as part of trace unit initialization. Might ignore writes when the trace unit is enabled or not idle.

Source

pub const fn trcqctlr(self) -> Reg<Trcqctlr, RW>

Controls when Q elements are enabled. Might ignore writes when the trace unit is enabled or not idle. This register must be programmed if it is implemented and TRCCONFIGR.QE is set to any value other than 0b00.

Source

pub const fn trcvictlr(self) -> Reg<Trcvictlr, RW>

Controls instruction trace filtering. Might ignore writes when the trace unit is enabled or not idle. Only returns stable data when TRCSTATR.PMSTABLE == 1. Must be programmed, particularly to set the value of the SSSTATUS bit, which sets the state of the start/stop logic.

Source

pub const fn trcviiectlr(self) -> Reg<Trcviiectlr, RW>

ViewInst exclude control. Might ignore writes when the trace unit is enabled or not idle. This register must be programmed when one or more address comparators are implemented.

Source

pub const fn trcvissctlr(self) -> Reg<Trcvissctlr, RW>

Use this to set, or read, the single address comparators that control the ViewInst start/stop logic. The start/stop logic is active for an instruction which causes a start and remains active up to and including an instruction which causes a stop, and then the start/stop logic becomes inactive. Might ignore writes when the trace unit is enabled or not idle. If implemented then this register must be programmed.

Source

pub const fn trcvipcssctlr(self) -> Reg<Trcvipcssctlr, RW>

Use this to set, or read, which PE comparator inputs can control the ViewInst start/stop logic. Might ignore writes when the trace unit is enabled or not idle. If implemented then this register must be programmed.

Source

pub const fn trcvdctlr(self) -> Reg<Trcvdctlr, RW>

Controls data trace filtering. Might ignore writes when the trace unit is enabled or not idle. This register must be programmed when data tracing is enabled, that is, when either TRCCONFIGR.DA == 1 or TRCCONFIGR.DV == 1.

Source

pub const fn trcvdsacctlr(self) -> Reg<Trcvdsacctlr, RW>

ViewData include / exclude control. Might ignore writes when the trace unit is enabled or not idle. This register must be programmed when one or more address comparators are implemented.

Source

pub const fn trcvdarcctlr(self) -> Reg<Trcvdarcctlr, RW>

ViewData include / exclude control. Might ignore writes when the trace unit is enabled or not idle. This register must be programmed when one or more address comparators are implemented.

Source

pub const fn trcseqevr(self, n: usize) -> Reg<Trcseqevr, RW>

Description collection: Moves the sequencer state according to programmed events. Might ignore writes when the trace unit is enabled or not idle. When the sequencer is used, all sequencer state transitions must be programmed with a valid event.

Source

pub const fn trcseqrstevr(self) -> Reg<Trcseqrstevr, RW>

Moves the sequencer to state 0 when a programmed event occurs. Might ignore writes when the trace unit is enabled or not idle. When the sequencer is used, all sequencer state transitions must be programmed with a valid event.

Source

pub const fn trcseqstr(self) -> Reg<Trcseqstr, RW>

Use this to set, or read, the sequencer state. Might ignore writes when the trace unit is enabled or not idle. Only returns stable data when TRCSTATR.PMSTABLE == 1. When the sequencer is used, all sequencer state transitions must be programmed with a valid event.

Source

pub const fn trcextinselr(self) -> Reg<Trcextinselr, RW>

Use this to set, or read, which external inputs are resources to the trace unit. Might ignore writes when the trace unit is enabled or not idle. Only returns stable data when TRCSTATR.PMSTABLE == 1. When the sequencer is used, all sequencer state transitions must be programmed with a valid event.

Source

pub const fn trccntrldvr(self, n: usize) -> Reg<Trccntrldvr, RW>

Description collection: This sets or returns the reload count value for counter n. Might ignore writes when the trace unit is enabled or not idle.

Source

pub const fn trccntctlr(self, n: usize) -> Reg<Trccntctlr, RW>

Description collection: Controls the operation of counter n. Might ignore writes when the trace unit is enabled or not idle.

Source

pub const fn trccntvr(self, n: usize) -> Reg<Trccntvr, RW>

Description collection: This sets or returns the value of counter n. The count value is only stable when TRCSTATR.PMSTABLE == 1. If software uses counter n then it must write to this register to set the initial counter value. Might ignore writes when the trace unit is enabled or not idle.

Source

pub const fn trcrsctlr(self, n: usize) -> Reg<Trcrsctlr, RW>

Description collection: Controls the selection of the resources in the trace unit. Might ignore writes when the trace unit is enabled or not idle. If software selects a non-implemented resource then CONSTRAINED UNPREDICTABLE behavior of the resource selector occurs, so the resource selector might fire unexpectedly or might not fire. Reads of the TRCRSCTLRn might return UNKNOWN.

Source

pub const fn trcssccr0(self) -> Reg<Trcssccr0, RW>

Controls the single-shot comparator.

Source

pub const fn trcsscsr0(self) -> Reg<Trcsscsr0, RW>

Indicates the status of the single-shot comparators. TRCSSCSR0 is sensitive toinstruction addresses.

Source

pub const fn trcsspcicr0(self) -> Reg<Trcsspcicr0, RW>

Selects the processor comparator inputs for Single-shot control.

Source

pub const fn trcpdcr(self) -> Reg<Trcpdcr, RW>

Controls the single-shot comparator.

Source

pub const fn trcpdsr(self) -> Reg<Trcpdsr, RW>

Indicates the power down status of the ETM.

Source

pub const fn trcitatbidr(self) -> Reg<Trcitatbidr, RW>

Sets the state of output pins.

Source

pub const fn trcitiatbinr(self) -> Reg<Trcitiatbinr, RW>

Reads the state of the input pins.

Source

pub const fn trcitiatboutr(self) -> Reg<Trcitiatboutr, RW>

Sets the state of the output pins.

Source

pub const fn trcitctrl(self) -> Reg<Trcitctrl, RW>

Enables topology detection or integration testing, by putting ETM-M33 into integration mode.

Source

pub const fn trcclaimset(self) -> Reg<Trcclaimset, RW>

Sets bits in the claim tag and determines the number of claim tag bits implemented.

Source

pub const fn trcclaimclr(self) -> Reg<Trcclaimclr, RW>

Clears bits in the claim tag and determines the current value of the claim tag.

Source

pub const fn trcauthstatus(self) -> Reg<Trcauthstatus, RW>

Indicates the current level of tracing permitted by the system

Source

pub const fn trcdevarch(self) -> Reg<Trcdevarch, R>

The TRCDEVARCH identifies ETM-M33 as an ETMv4.2 component

Source

pub const fn trcdevtype(self) -> Reg<Trcdevtype, R>

Controls the single-shot comparator.

Source

pub const fn trcpidr(self, n: usize) -> Reg<u32, RW>

Description collection: Coresight peripheral identification registers.

Source

pub const fn trccidr(self, n: usize) -> Reg<u32, RW>

Description collection: Coresight component identification registers.

Trait Implementations§

Source§

impl Clone for Etm

Source§

fn clone(&self) -> Etm

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl PartialEq for Etm

Source§

fn eq(&self, other: &Etm) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Etm

Source§

impl Eq for Etm

Source§

impl Send for Etm

Source§

impl StructuralPartialEq for Etm

Source§

impl Sync for Etm

Auto Trait Implementations§

§

impl Freeze for Etm

§

impl RefUnwindSafe for Etm

§

impl Unpin for Etm

§

impl UnwindSafe for Etm

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.