#[non_exhaustive]pub struct PeripheralInfo {Show 15 fields
pub name: String,
pub display_name: Option<String>,
pub version: Option<String>,
pub description: Option<String>,
pub alternate_peripheral: Option<String>,
pub group_name: Option<String>,
pub prepend_to_name: Option<String>,
pub append_to_name: Option<String>,
pub header_struct_name: Option<String>,
pub base_address: u64,
pub default_register_properties: RegisterProperties,
pub address_block: Option<Vec<AddressBlock>>,
pub interrupt: Vec<Interrupt>,
pub registers: Option<Vec<RegisterCluster>>,
pub derived_from: Option<String>,
}Expand description
A description of a peripheral in the device, describing, for example, the memory mappings.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: StringThe string identifies the peripheral. Peripheral names are required to be unique for a device
display_name: Option<String>Specifies a register name without the restrictions of an ANSI C identifier.
version: Option<String>The string specifies the version of this peripheral description
description: Option<String>The string provides an overview of the purpose and functionality of the peripheral
alternate_peripheral: Option<String>Specifies peripheral assigned to the same address blocks
group_name: Option<String>Assigns this peripheral to a group of peripherals. This is only used bye the System View
prepend_to_name: Option<String>Define a string as prefix. All register names of this peripheral get this prefix
append_to_name: Option<String>Define a string as suffix. All register names of this peripheral get this suffix
header_struct_name: Option<String>Specify the struct type name created in the device header file
base_address: u64Lowest address reserved or used by the peripheral
default_register_properties: RegisterPropertiesDefault properties for all registers
address_block: Option<Vec<AddressBlock>>Specify an address range uniquely mapped to this peripheral
interrupt: Vec<Interrupt>A peripheral can have multiple associated interrupts
registers: Option<Vec<RegisterCluster>>Group to enclose register definitions.
None indicates that the <registers> node is not present
derived_from: Option<String>Specify the peripheral name from which to inherit data. Elements specified subsequently override inherited values
Implementations§
Source§impl PeripheralInfo
impl PeripheralInfo
Sourcepub fn builder() -> PeripheralInfoBuilder
pub fn builder() -> PeripheralInfoBuilder
Make a builder for PeripheralInfo
Sourcepub const fn single(self) -> Peripheral
pub const fn single(self) -> Peripheral
Construct single Peripheral
Sourcepub const fn array(self, dim: DimElement) -> Peripheral
pub const fn array(self, dim: DimElement) -> Peripheral
Construct Peripheral array
Sourcepub fn maybe_array(self, dim: Option<DimElement>) -> Peripheral
pub fn maybe_array(self, dim: Option<DimElement>) -> Peripheral
Construct single Peripheral or array
Sourcepub fn modify_from(
&mut self,
builder: PeripheralInfoBuilder,
lvl: ValidateLevel,
) -> Result<(), SvdError>
pub fn modify_from( &mut self, builder: PeripheralInfoBuilder, lvl: ValidateLevel, ) -> Result<(), SvdError>
Modify an existing Peripheral based on a builder.
Sourcepub fn validate(&self, lvl: ValidateLevel) -> Result<(), SvdError>
pub fn validate(&self, lvl: ValidateLevel) -> Result<(), SvdError>
Validate the PeripheralInfo
Sourcepub fn validate_all(&self, lvl: ValidateLevel) -> Result<(), SvdError>
pub fn validate_all(&self, lvl: ValidateLevel) -> Result<(), SvdError>
Validate the PeripheralInfo recursively
Sourcepub fn registers(&self) -> RegisterIter<'_> ⓘ
pub fn registers(&self) -> RegisterIter<'_> ⓘ
Returns iterator over child registers
Sourcepub fn registers_mut(&mut self) -> RegisterIterMut<'_> ⓘ
pub fn registers_mut(&mut self) -> RegisterIterMut<'_> ⓘ
Returns mutable iterator over child registers
Sourcepub fn clusters(&self) -> ClusterIter<'_> ⓘ
pub fn clusters(&self) -> ClusterIter<'_> ⓘ
Returns iterator over child clusters
Sourcepub fn clusters_mut(&mut self) -> ClusterIterMut<'_> ⓘ
pub fn clusters_mut(&mut self) -> ClusterIterMut<'_> ⓘ
Returns mutable iterator over child clusters
Sourcepub fn reg_iter(&self) -> AllRegistersIter<'_> ⓘ
👎Deprecated since 0.12.1: Please use all_registers instead
pub fn reg_iter(&self) -> AllRegistersIter<'_> ⓘ
all_registers insteadReturns iterator over all descendant registers
Sourcepub fn all_registers(&self) -> AllRegistersIter<'_> ⓘ
pub fn all_registers(&self) -> AllRegistersIter<'_> ⓘ
Returns iterator over all descendant registers
Sourcepub fn reg_iter_mut(&mut self) -> AllRegistersIterMut<'_> ⓘ
👎Deprecated since 0.12.1: Please use all_registers_mut instead
pub fn reg_iter_mut(&mut self) -> AllRegistersIterMut<'_> ⓘ
all_registers_mut insteadReturns mutable iterator over all descendant registers
Sourcepub fn all_registers_mut(&mut self) -> AllRegistersIterMut<'_> ⓘ
pub fn all_registers_mut(&mut self) -> AllRegistersIterMut<'_> ⓘ
Returns mutable iterator over all descendant registers
Sourcepub fn get_register(&self, name: &str) -> Option<&Register>
pub fn get_register(&self, name: &str) -> Option<&Register>
Get register by name
Sourcepub fn get_mut_register(&mut self, name: &str) -> Option<&mut Register>
pub fn get_mut_register(&mut self, name: &str) -> Option<&mut Register>
Get mutable register by name
Sourcepub fn get_cluster(&self, name: &str) -> Option<&Cluster>
pub fn get_cluster(&self, name: &str) -> Option<&Cluster>
Get cluster by name
Sourcepub fn get_mut_cluster(&mut self, name: &str) -> Option<&mut Cluster>
pub fn get_mut_cluster(&mut self, name: &str) -> Option<&mut Cluster>
Get mutable cluster by name
Sourcepub fn get_interrupt(&self, name: &str) -> Option<&Interrupt>
pub fn get_interrupt(&self, name: &str) -> Option<&Interrupt>
Get interrupt by name
Sourcepub fn get_mut_interrupt(&mut self, name: &str) -> Option<&mut Interrupt>
pub fn get_mut_interrupt(&mut self, name: &str) -> Option<&mut Interrupt>
Get mutable enumeratedValue by name
Trait Implementations§
Source§impl Clone for PeripheralInfo
impl Clone for PeripheralInfo
Source§fn clone(&self) -> PeripheralInfo
fn clone(&self) -> PeripheralInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more