opentitanlib::transport::hyperdebug::gpio

Struct HyperdebugGpioBitbanging

Source
pub struct HyperdebugGpioBitbanging { /* private fields */ }

Implementations§

Source§

impl HyperdebugGpioBitbanging

Source

pub fn open(inner: &Rc<Inner>, cmsis_interface: BulkInterface) -> Result<Self>

Trait Implementations§

Source§

impl GpioBitbanging for HyperdebugGpioBitbanging

Source§

fn start<'a>( &self, pins: &[&dyn GpioPin], clock_tick: Duration, waveform: Box<[BitbangEntry<'a, 'a>]>, ) -> Result<Box<dyn GpioBitbangOperation<'a, 'a> + 'a>>

Apply the given sequence of values to the given set of GPIO pins, by each tick of a clock with the given period. This function does not change the mode of any pins, they must already be put into PushPull, OpenDrain or Input mode as appropriate. (In the latter case, the specified waveform data does not matter, as the pin is not driving, and would be included in the set of pins only in order to have it sampled at each clock tick.) Returns a GpioBitbangOperation which must be continuously polled, to know when the waveform is complete.
Source§

fn dac_start( &self, pins: &[&dyn GpioPin], clock_tick: Duration, waveform: Box<[DacBangEntry<'_>]>, ) -> Result<Box<dyn GpioDacBangOperation>>

Apply given sequence of voltage values to the given set of pins assumed to already be in AnalogOutput mode.
Source§

fn run<'a>( &self, pins: &[&dyn GpioPin], clock_tick: Duration, waveform: Box<[BitbangEntry<'a, 'a>]>, ) -> Result<Box<[BitbangEntry<'a, 'a>]>>

Convenience method which starts the bitbanging operation, and blocks until it is complete.
Source§

fn dac_run( &self, pins: &[&dyn GpioPin], clock_tick: Duration, waveform: Box<[DacBangEntry<'_>]>, ) -> Result<()>

Convenience method which starts the DAC-banging operation, and blocks until it is complete.

Auto Trait Implementations§

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> 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> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V