pub struct Devices {Show 13 fields
pub flash: Vec<u8>,
pub uart: Vec<u8>,
pub link_out: VecDeque<u8>,
pub link_in: VecDeque<u8>,
pub buttons: u64,
pub leds: u64,
pub switches: u64,
pub rtl_md5: [u8; 16],
pub ddr_ready: bool,
pub ddr_failed: bool,
pub cycles: u64,
pub exit: Option<u64>,
pub reset: bool,
/* private fields */
}Expand description
The board’s devices, as the model of the system around the hart: memory, the flash behind the streaming port,
and every register in REGS with the behaviour its line documents. The RTL SoC is held to these. The bus
completes every access the memory map permits (memory_map): a device address no register holds reads as
zero and ignores writes.
Fields§
§flash: Vec<u8>The flash: the bitstream’s 4 MB, then the boot image.
uart: Vec<u8>Every byte written to the log UART.
link_out: VecDeque<u8>Bytes the hart sent into the terminal link.
link_in: VecDeque<u8>Bytes waiting for the hart from the terminal link.
leds: u64§switches: u64§rtl_md5: [u8; 16]The bitstream’s RTL fingerprint.
ddr_ready: boolWhether the DDR2 has calibrated (and whether it failed to).
ddr_failed: bool§cycles: u64Clock cycles since reset, as SYS_CYCLES reads them.
exit: Option<u64>The status the firmware stopped the board with.
reset: boolThe firmware asked the board to restart.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Devices
impl RefUnwindSafe for Devices
impl Send for Devices
impl Sync for Devices
impl Unpin for Devices
impl UnsafeUnpin for Devices
impl UnwindSafe for Devices
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.