#[doc = "Register `CPUID` reader"] pub struct R(crate::R); impl core::ops::Deref for R { type Target = crate::R; #[inline(always)] fn deref(&self) -> &Self::Target { &self.0 } } impl From> for R { #[inline(always)] fn from(reader: crate::R) -> Self { R(reader) } } #[doc = "Field `REVISION` reader - Minor revision number"] pub struct REVISION_R(crate::FieldReader); impl REVISION_R { pub(crate) fn new(bits: u8) -> Self { REVISION_R(crate::FieldReader::new(bits)) } } impl core::ops::Deref for REVISION_R { type Target = crate::FieldReader; #[inline(always)] fn deref(&self) -> &Self::Target { &self.0 } } #[doc = "Field `PARTNO` reader - Processor Part Number, 0xC60=Cortex-M0+"] pub struct PARTNO_R(crate::FieldReader); impl PARTNO_R { pub(crate) fn new(bits: u16) -> Self { PARTNO_R(crate::FieldReader::new(bits)) } } impl core::ops::Deref for PARTNO_R { type Target = crate::FieldReader; #[inline(always)] fn deref(&self) -> &Self::Target { &self.0 } } #[doc = "Field `ARCHITECTURE` reader - Processor Architecture, 0xC=ARMv6-M"] pub struct ARCHITECTURE_R(crate::FieldReader); impl ARCHITECTURE_R { pub(crate) fn new(bits: u8) -> Self { ARCHITECTURE_R(crate::FieldReader::new(bits)) } } impl core::ops::Deref for ARCHITECTURE_R { type Target = crate::FieldReader; #[inline(always)] fn deref(&self) -> &Self::Target { &self.0 } } #[doc = "Field `VARIANT` reader - Major revision number"] pub struct VARIANT_R(crate::FieldReader); impl VARIANT_R { pub(crate) fn new(bits: u8) -> Self { VARIANT_R(crate::FieldReader::new(bits)) } } impl core::ops::Deref for VARIANT_R { type Target = crate::FieldReader; #[inline(always)] fn deref(&self) -> &Self::Target { &self.0 } } #[doc = "Field `IMPLEMENTER` reader - Implementer code, ARM=0x41"] pub struct IMPLEMENTER_R(crate::FieldReader); impl IMPLEMENTER_R { pub(crate) fn new(bits: u8) -> Self { IMPLEMENTER_R(crate::FieldReader::new(bits)) } } impl core::ops::Deref for IMPLEMENTER_R { type Target = crate::FieldReader; #[inline(always)] fn deref(&self) -> &Self::Target { &self.0 } } impl R { #[doc = "Bits 0:3 - Minor revision number"] #[inline(always)] pub fn revision(&self) -> REVISION_R { REVISION_R::new((self.bits & 0x0f) as u8) } #[doc = "Bits 4:15 - Processor Part Number, 0xC60=Cortex-M0+"] #[inline(always)] pub fn partno(&self) -> PARTNO_R { PARTNO_R::new(((self.bits >> 4) & 0x0fff) as u16) } #[doc = "Bits 16:19 - Processor Architecture, 0xC=ARMv6-M"] #[inline(always)] pub fn architecture(&self) -> ARCHITECTURE_R { ARCHITECTURE_R::new(((self.bits >> 16) & 0x0f) as u8) } #[doc = "Bits 20:23 - Major revision number"] #[inline(always)] pub fn variant(&self) -> VARIANT_R { VARIANT_R::new(((self.bits >> 20) & 0x0f) as u8) } #[doc = "Bits 24:31 - Implementer code, ARM=0x41"] #[inline(always)] pub fn implementer(&self) -> IMPLEMENTER_R { IMPLEMENTER_R::new(((self.bits >> 24) & 0xff) as u8) } } #[doc = "CPUID Base Register\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [cpuid](index.html) module"] pub struct CPUID_SPEC; impl crate::RegisterSpec for CPUID_SPEC { type Ux = u32; } #[doc = "`read()` method returns [cpuid::R](R) reader structure"] impl crate::Readable for CPUID_SPEC { type Reader = R; } #[doc = "`reset()` method sets CPUID to value 0x410c_c601"] impl crate::Resettable for CPUID_SPEC { #[inline(always)] fn reset_value() -> Self::Ux { 0x410c_c601 } }