1
0
Fork 0

implemented display trait for errors

This commit is contained in:
pca006132 2020-06-15 15:00:54 +08:00 committed by Gitea
parent 2c14a2a1a2
commit 2c3fa991ad
3 changed files with 27 additions and 1 deletions

View File

@ -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();

View File

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

View File

@ -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)