#[repr(transparent)]pub struct SmExecctrl(pub u32);
Expand description
Execution/behavioural settings for state machine 0
Tuple Fields§
§0: u32
Implementations§
Source§impl SmExecctrl
impl SmExecctrl
Sourcepub const fn status_n(&self) -> ExecctrlStatusN
pub const fn status_n(&self) -> ExecctrlStatusN
Comparison level or IRQ index for the MOV x, STATUS instruction. If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N greater than the current FIFO depth are reserved, and have undefined behaviour.
Sourcepub fn set_status_n(&mut self, val: ExecctrlStatusN)
pub fn set_status_n(&mut self, val: ExecctrlStatusN)
Comparison level or IRQ index for the MOV x, STATUS instruction. If STATUS_SEL is TXLEVEL or RXLEVEL, then values of STATUS_N greater than the current FIFO depth are reserved, and have undefined behaviour.
Sourcepub const fn status_sel(&self) -> ExecctrlStatusSel
pub const fn status_sel(&self) -> ExecctrlStatusSel
Comparison used for the MOV x, STATUS instruction.
Sourcepub fn set_status_sel(&mut self, val: ExecctrlStatusSel)
pub fn set_status_sel(&mut self, val: ExecctrlStatusSel)
Comparison used for the MOV x, STATUS instruction.
Sourcepub const fn wrap_bottom(&self) -> u8
pub const fn wrap_bottom(&self) -> u8
After reaching wrap_top, execution is wrapped to this address.
Sourcepub fn set_wrap_bottom(&mut self, val: u8)
pub fn set_wrap_bottom(&mut self, val: u8)
After reaching wrap_top, execution is wrapped to this address.
Sourcepub const fn wrap_top(&self) -> u8
pub const fn wrap_top(&self) -> u8
After reaching this address, execution is wrapped to wrap_bottom. If the instruction is a jump, and the jump condition is true, the jump takes priority.
Sourcepub fn set_wrap_top(&mut self, val: u8)
pub fn set_wrap_top(&mut self, val: u8)
After reaching this address, execution is wrapped to wrap_bottom. If the instruction is a jump, and the jump condition is true, the jump takes priority.
Sourcepub const fn out_sticky(&self) -> bool
pub const fn out_sticky(&self) -> bool
Continuously assert the most recent OUT/SET to the pins
Sourcepub fn set_out_sticky(&mut self, val: bool)
pub fn set_out_sticky(&mut self, val: bool)
Continuously assert the most recent OUT/SET to the pins
Sourcepub const fn inline_out_en(&self) -> bool
pub const fn inline_out_en(&self) -> bool
If 1, use a bit of OUT data as an auxiliary write enable When used in conjunction with OUT_STICKY, writes with an enable of 0 will deassert the latest pin write. This can create useful masking/override behaviour due to the priority ordering of state machine pin writes (SM0 < SM1 < …)
Sourcepub fn set_inline_out_en(&mut self, val: bool)
pub fn set_inline_out_en(&mut self, val: bool)
If 1, use a bit of OUT data as an auxiliary write enable When used in conjunction with OUT_STICKY, writes with an enable of 0 will deassert the latest pin write. This can create useful masking/override behaviour due to the priority ordering of state machine pin writes (SM0 < SM1 < …)
Sourcepub const fn out_en_sel(&self) -> u8
pub const fn out_en_sel(&self) -> u8
Which data bit to use for inline OUT enable
Sourcepub fn set_out_en_sel(&mut self, val: u8)
pub fn set_out_en_sel(&mut self, val: u8)
Which data bit to use for inline OUT enable
Sourcepub const fn jmp_pin(&self) -> u8
pub const fn jmp_pin(&self) -> u8
The GPIO number to use as condition for JMP PIN. Unaffected by input mapping.
Sourcepub fn set_jmp_pin(&mut self, val: u8)
pub fn set_jmp_pin(&mut self, val: u8)
The GPIO number to use as condition for JMP PIN. Unaffected by input mapping.
Sourcepub const fn side_pindir(&self) -> bool
pub const fn side_pindir(&self) -> bool
If 1, side-set data is asserted to pin directions, instead of pin values
Sourcepub fn set_side_pindir(&mut self, val: bool)
pub fn set_side_pindir(&mut self, val: bool)
If 1, side-set data is asserted to pin directions, instead of pin values
Sourcepub const fn side_en(&self) -> bool
pub const fn side_en(&self) -> bool
If 1, the MSB of the Delay/Side-set instruction field is used as side-set enable, rather than a side-set data bit. This allows instructions to perform side-set optionally, rather than on every instruction, but the maximum possible side-set width is reduced from 5 to 4. Note that the value of PINCTRL_SIDESET_COUNT is inclusive of this enable bit.
Sourcepub fn set_side_en(&mut self, val: bool)
pub fn set_side_en(&mut self, val: bool)
If 1, the MSB of the Delay/Side-set instruction field is used as side-set enable, rather than a side-set data bit. This allows instructions to perform side-set optionally, rather than on every instruction, but the maximum possible side-set width is reduced from 5 to 4. Note that the value of PINCTRL_SIDESET_COUNT is inclusive of this enable bit.
Sourcepub const fn exec_stalled(&self) -> bool
pub const fn exec_stalled(&self) -> bool
If 1, an instruction written to SMx_INSTR is stalled, and latched by the state machine. Will clear to 0 once this instruction completes.
Sourcepub fn set_exec_stalled(&mut self, val: bool)
pub fn set_exec_stalled(&mut self, val: bool)
If 1, an instruction written to SMx_INSTR is stalled, and latched by the state machine. Will clear to 0 once this instruction completes.
Trait Implementations§
Source§impl Clone for SmExecctrl
impl Clone for SmExecctrl
Source§fn clone(&self) -> SmExecctrl
fn clone(&self) -> SmExecctrl
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more