forked from M-Labs/zynq-rs
implemented display trait for errors
This commit is contained in:
parent
2c14a2a1a2
commit
2c3fa991ad
|
@ -88,7 +88,7 @@ pub fn main_core0() {
|
||||||
let result = SdCard::from_sdio(sd);
|
let result = SdCard::from_sdio(sd);
|
||||||
match &result {
|
match &result {
|
||||||
Ok(_) => info!("OK!"),
|
Ok(_) => info!("OK!"),
|
||||||
Err(a) => info!("{:?}", a),
|
Err(a) => info!("{}", a),
|
||||||
};
|
};
|
||||||
const SIZE: usize = 512 * 2 + 1;
|
const SIZE: usize = 512 * 2 + 1;
|
||||||
let mut sd_card = result.unwrap();
|
let mut sd_card = result.unwrap();
|
||||||
|
|
|
@ -28,6 +28,19 @@ pub enum CmdTransferError {
|
||||||
Other(regs::interrupt_status::Read),
|
Other(regs::interrupt_status::Read),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl core::fmt::Display for CmdTransferError {
|
||||||
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
||||||
|
use CmdTransferError::*;
|
||||||
|
write!(f, "Command transfer error: ")?;
|
||||||
|
match self {
|
||||||
|
CmdInhibited => write!(f, "Command line inhibited."),
|
||||||
|
DatLineInhibited => write!(f, "Data line inhibited, possibly due to ongonging data transfer."),
|
||||||
|
CmdTimeout => write!(f, "Command timeout, check if the card is inserted properly."),
|
||||||
|
Other(x) => write!(f, "Unknown Error, interrupt status = 0x{:0X}", x.inner),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(PartialEq, Debug, Clone, Copy)]
|
#[derive(PartialEq, Debug, Clone, Copy)]
|
||||||
pub enum CardType {
|
pub enum CardType {
|
||||||
CardNone,
|
CardNone,
|
||||||
|
|
|
@ -11,6 +11,19 @@ pub enum CardInitializationError {
|
||||||
InitializationFailedCmd(CmdTransferError),
|
InitializationFailedCmd(CmdTransferError),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl core::fmt::Display for CardInitializationError {
|
||||||
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
||||||
|
use CardInitializationError::*;
|
||||||
|
write!(f, "Card initialization error: \n ")?;
|
||||||
|
match self {
|
||||||
|
AlreadyInitialized => write!(f, "Card already initialized."),
|
||||||
|
NoCardInserted => write!(f, "No card inserted, check if the card is inserted properly."),
|
||||||
|
InitializationFailedOther => write!(f, "Unknown error. Please check the debug messages."),
|
||||||
|
InitializationFailedCmd(x) => write!(f, "{}", x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl From<CmdTransferError> for CardInitializationError {
|
impl From<CmdTransferError> for CardInitializationError {
|
||||||
fn from(error: CmdTransferError) -> Self {
|
fn from(error: CmdTransferError) -> Self {
|
||||||
CardInitializationError::InitializationFailedCmd(error)
|
CardInitializationError::InitializationFailedCmd(error)
|
||||||
|
|
Loading…
Reference in New Issue