Enum ArmError

Source
pub enum ArmError {
Show 30 variants ArchitectureRequired(&'static [&'static str]), Timeout, AddressOutOf32BitAddressSpace, NoArmTarget, AccessPort { address: FullyQualifiedApAddress, source: AccessPortError, }, DebugPort(DebugPortError), CoreNotHalted, ReAttachRequired, MissingPermissions(String), Dap(DapError), Probe(DebugProbeError), MemoryNotAligned(MemoryNotAlignedError), OutOfBounds, UnsupportedTransferWidth(usize), ApDoesNotExist(FullyQualifiedApAddress), WrongApVersion, WrongApType, UnsupportedBreakpointAddress(u32), Armv8a(Armv8aError), Armv7a(Armv7aError), DebugSequence(ArmDebugSequenceError), TracingUnconfigured, RegisterParse(RegisterParseError), RomTable(RomTableError), ChipEraseFailed, ExtensionRequired(&'static [&'static str]), RegisterAddressOutOfBounds(RegisterAddressOutOfBounds), NotImplemented(&'static str), InvalidDataLength(InvalidDataLengthError), Other(String),
}
Expand description

ARM-specific errors

Variants§

§

ArchitectureRequired(&'static [&'static str])

The operation requires one of the following architectures: {0:?}

§

Timeout

A timeout occurred during an operation.

§

AddressOutOf32BitAddressSpace

The address is too large for the 32 bit address space.

§

NoArmTarget

The current target device is not an ARM device.

§

AccessPort

Error using access port {address:?}.

Fields

§address: FullyQualifiedApAddress

Address of the access port

§source: AccessPortError

Source of the error.

§

DebugPort(DebugPortError)

An error occurred while using a debug port.

§

CoreNotHalted

The core has to be halted for the operation, but was not.

§

ReAttachRequired

Performing certain operations (e.g device unlock or Chip-Erase) can leave the device in a state that requires a probe re-attach to resolve.

§

MissingPermissions(String)

An operation could not be performed because it lacked the permission to do so: {0}

This can for example happen when the core is locked and needs to be erased to be unlocked. Then the correct permission needs to be given to automatically unlock the core to prevent accidental erases.

§

Dap(DapError)

An error occurred in the communication with an access port or debug port.

§

Probe(DebugProbeError)

The debug probe encountered an error.

§

MemoryNotAligned(MemoryNotAlignedError)

Failed to access address 0x{0.address:08x} as it is not aligned to the requirement of {0.alignment} bytes for this platform and API call.

§

OutOfBounds

A region outside of the AP address space was accessed.

§

UnsupportedTransferWidth(usize)

{0} bit is not a supported memory transfer width on the current core.

§

ApDoesNotExist(FullyQualifiedApAddress)

The AP with address {0:?} does not exist.

§

WrongApVersion

The AP has the wrong version for the operation.

§

WrongApType

The AP has the wrong type for the operation.

§

UnsupportedBreakpointAddress(u32)

Unable to create a breakpoint at address {0:#010X}. Hardware breakpoints are only supported at addresses < 0x2000_0000.

§

Armv8a(Armv8aError)

ARMv8a specific error occurred.

§

Armv7a(Armv7aError)

ARMv7a specific error occurred.

§

DebugSequence(ArmDebugSequenceError)

Error occurred in a debug sequence.

§

TracingUnconfigured

Tracing has not been configured.

§

RegisterParse(RegisterParseError)

Error parsing a register.

§

RomTable(RomTableError)

Error reading ROM table.

§

ChipEraseFailed

Failed to erase chip.

§

ExtensionRequired(&'static [&'static str])

The operation requires the following extension(s): {0:?}.

§

RegisterAddressOutOfBounds(RegisterAddressOutOfBounds)

An error occurred while calculating the address of a register.

§

NotImplemented(&'static str)

Some required functionality is not implemented: {0}

§

InvalidDataLength(InvalidDataLengthError)

Invalid data length error: {0}

§

Other(String)

Another ARM error occurred: {0}

Implementations§

Source§

impl ArmError

Source

pub fn from_access_port( err: AccessPortError, ap_address: &FullyQualifiedApAddress, ) -> Self

Constructs ArmError::MemoryNotAligned from the address and the required alignment.

Source

pub fn alignment_error(address: u64, alignment: usize) -> Self

Constructs a ArmError::MemoryNotAligned from the address and the required alignment.

Trait Implementations§

Source§

impl Debug for ArmError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ArmError

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for ArmError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<ArmDebugSequenceError> for ArmError

Source§

fn from(source: ArmDebugSequenceError) -> Self

Converts to this type from the input type.
Source§

impl From<ArmError> for Error

Source§

fn from(value: ArmError) -> Self

Converts to this type from the input type.
Source§

impl From<Armv7aError> for ArmError

Source§

fn from(source: Armv7aError) -> Self

Converts to this type from the input type.
Source§

impl From<Armv8aError> for ArmError

Source§

fn from(source: Armv8aError) -> Self

Converts to this type from the input type.
Source§

impl From<ComponentError> for ArmError

Source§

fn from(value: ComponentError) -> ArmError

Converts to this type from the input type.
Source§

impl From<DapError> for ArmError

Source§

fn from(source: DapError) -> Self

Converts to this type from the input type.
Source§

impl From<DebugPortError> for ArmError

Source§

fn from(source: DebugPortError) -> Self

Converts to this type from the input type.
Source§

impl From<DebugProbeError> for ArmError

Source§

fn from(source: DebugProbeError) -> Self

Converts to this type from the input type.
Source§

impl From<RegisterParseError> for ArmError

Source§

fn from(source: RegisterParseError) -> Self

Converts to this type from the input type.
Source§

impl From<RomTableError> for ArmError

Source§

fn from(value: RomTableError) -> Self

Converts to this type from the input type.

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

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,