Struct DebugAssist

Source
pub struct DebugAssist<'d> { /* private fields */ }
Available on crate feature unstable only.
Expand description

The debug assist driver instance.

Implementations§

Source§

impl<'d> DebugAssist<'d>

Source

pub fn new(debug_assist: impl Peripheral<P = ASSIST_DEBUG> + 'd) -> Self

Create a new instance in crate::Blocking mode.

Source

pub fn set_interrupt_handler(&mut self, handler: InterruptHandler)

Register an interrupt handler for the Debug Assist module.

Note that this will replace any previously registered interrupt handlers.

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Source§

impl DebugAssist<'_>

Source

pub fn enable_sp_monitor(&mut self, lower_bound: u32, upper_bound: u32)

Enable SP monitoring on main core. When the SP exceeds the lower_bound or upper_bound threshold, the module will record the PC pointer and generate an interrupt.

Source

pub fn disable_sp_monitor(&mut self)

Disable SP monitoring on main core.

Source

pub fn clear_sp_monitor_interrupt(&mut self)

Clear SP monitoring interrupt on main core.

Source

pub fn is_sp_monitor_interrupt_set(&self) -> bool

Check, if SP monitoring interrupt is set on main core.

Source

pub fn sp_monitor_pc(&self) -> u32

Get SP monitoring PC value on main core.

Source§

impl DebugAssist<'_>

Source

pub fn enable_region0_monitor( &mut self, lower_bound: u32, upper_bound: u32, reads: bool, writes: bool, )

Enable region monitoring of read/write performed by the main CPU in a certain memory region0. Whenever the bus reads or writes in the specified memory region, an interrupt will be triggered. Two memory regions (region0, region1) can be monitored at the same time.

Source

pub fn disable_region0_monitor(&mut self)

Disable region0 monitoring on main core.

Source

pub fn clear_region0_monitor_interrupt(&mut self)

Clear region0 monitoring interrupt on main core.

Source

pub fn is_region0_monitor_interrupt_set(&self) -> bool

Check, if region0 monitoring interrupt is set on main core.

Source

pub fn enable_region1_monitor( &mut self, lower_bound: u32, upper_bound: u32, reads: bool, writes: bool, )

Enable region monitoring of read/write performed by the main CPU in a certain memory region1. Whenever the bus reads or writes in the specified memory region, an interrupt will be triggered.

Source

pub fn disable_region1_monitor(&mut self)

Disable region1 monitoring on main core.

Source

pub fn clear_region1_monitor_interrupt(&mut self)

Clear region1 monitoring interrupt on main core.

Source

pub fn is_region1_monitor_interrupt_set(&self) -> bool

Check, if region1 monitoring interrupt is set on main core.

Source

pub fn region_monitor_pc(&self) -> u32

Get region monitoring PC value on main core.

Trait Implementations§

Source§

impl InterruptConfigurable for DebugAssist<'_>

§Stability

This API is marked as unstable and is only available when the unstable crate feature is enabled. This comes with no stability guarantees, and could be changed or removed at any time.

Source§

fn set_interrupt_handler(&mut self, handler: InterruptHandler)

Registers an interrupt handler for the peripheral. Read more

Auto Trait Implementations§

§

impl<'d> Freeze for DebugAssist<'d>

§

impl<'d> RefUnwindSafe for DebugAssist<'d>

§

impl<'d> Send for DebugAssist<'d>

§

impl<'d> Sync for DebugAssist<'d>

§

impl<'d> Unpin for DebugAssist<'d>

§

impl<'d> !UnwindSafe for DebugAssist<'d>

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.