Struct LiteXLedController

Source
pub struct LiteXLedController<R: LiteXSoCRegisterConfiguration> { /* private fields */ }
Expand description

LiteX led controller core

Implementations§

Source§

impl<R: LiteXSoCRegisterConfiguration> LiteXLedController<R>

Source

pub fn new( base: StaticRef<LiteXLedRegisters<R>>, led_count: usize, ) -> LiteXLedController<R>

Source

pub fn initialize(&self)

Initialize the LiteXLedController

This will turn all LEDs off, thus disabling the LED Chaser hardware-pattern of the LiteX core and switching to explicit software control.

Source

pub fn led_count(&self) -> usize

Returns the number of LEDs managed by the LiteXLedController

Source

pub fn get_led(&self, index: usize) -> Option<LiteXLed<'_, R>>

Create a LiteXLed instance

To avoid duplicate use of a LED, this will return None if an instance for the requested LED already exists. Call LiteXLed::destroy (or drop the LiteXLed) to be create a new instance for this LED.

Source

pub unsafe fn panic_led(&self, index: usize) -> Option<LiteXLed<'_, R>>

Create a LiteXLed without checking for duplicates

This function must only be used in a panic handler, if no other code will be running afterwards, in order to guarantee consistency between ownership of the LiteXLed instance and control over the LED state

This function only checks whether the requested LEDs is within the controller’s range of available LEDs, but NOT whether there already is a different reference to the same LED.

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, 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.