pub struct Program<const PROGRAM_SIZE: usize> {
pub code: ArrayVec<u16, PROGRAM_SIZE>,
pub origin: Option<u8>,
pub wrap: Wrap,
pub side_set: SideSet,
pub version: PioVersion,
}
Expand description
Program ready to be executed by PIO hardware.
Fields§
§code: ArrayVec<u16, PROGRAM_SIZE>
Assembled program code.
origin: Option<u8>
Offset at which the program must be loaded.
Most often 0 if defined. This might be needed when using data based JMP
s.
NOTE: Instruction addresses in JMP instructions as well as wrap source/target are calculated as if the origin was 0. Functions loading the program into PIO instruction memory will adjust those addresses accordingly if the program is loaded to a non-zero origin address.
wrap: Wrap
Wrapping behavior for this program.
side_set: SideSet
Side-set info for this program.
version: PioVersion
Pio Version required for this program.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<const PROGRAM_SIZE: usize> Freeze for Program<PROGRAM_SIZE>
impl<const PROGRAM_SIZE: usize> RefUnwindSafe for Program<PROGRAM_SIZE>
impl<const PROGRAM_SIZE: usize> Send for Program<PROGRAM_SIZE>
impl<const PROGRAM_SIZE: usize> Sync for Program<PROGRAM_SIZE>
impl<const PROGRAM_SIZE: usize> Unpin for Program<PROGRAM_SIZE>
impl<const PROGRAM_SIZE: usize> UnwindSafe for Program<PROGRAM_SIZE>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more