atsamd51g/nvmctrl/
eccerr.rs
1#[doc = "Register `ECCERR` reader"]
2pub type R = crate::R<EccerrSpec>;
3#[doc = "Field `ADDR` reader - Error Address"]
4pub type AddrR = crate::FieldReader<u32>;
5#[doc = "Low Double-Word Error Type\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7#[repr(u8)]
8pub enum Typelselect {
9 #[doc = "0: No Error Detected Since Last Read"]
10 None = 0,
11 #[doc = "1: At Least One Single Error Detected Since last Read"]
12 Single = 1,
13 #[doc = "2: At Least One Dual Error Detected Since Last Read"]
14 Dual = 2,
15}
16impl From<Typelselect> for u8 {
17 #[inline(always)]
18 fn from(variant: Typelselect) -> Self {
19 variant as _
20 }
21}
22impl crate::FieldSpec for Typelselect {
23 type Ux = u8;
24}
25impl crate::IsEnum for Typelselect {}
26#[doc = "Field `TYPEL` reader - Low Double-Word Error Type"]
27pub type TypelR = crate::FieldReader<Typelselect>;
28impl TypelR {
29 #[doc = "Get enumerated values variant"]
30 #[inline(always)]
31 pub const fn variant(&self) -> Option<Typelselect> {
32 match self.bits {
33 0 => Some(Typelselect::None),
34 1 => Some(Typelselect::Single),
35 2 => Some(Typelselect::Dual),
36 _ => None,
37 }
38 }
39 #[doc = "No Error Detected Since Last Read"]
40 #[inline(always)]
41 pub fn is_none(&self) -> bool {
42 *self == Typelselect::None
43 }
44 #[doc = "At Least One Single Error Detected Since last Read"]
45 #[inline(always)]
46 pub fn is_single(&self) -> bool {
47 *self == Typelselect::Single
48 }
49 #[doc = "At Least One Dual Error Detected Since Last Read"]
50 #[inline(always)]
51 pub fn is_dual(&self) -> bool {
52 *self == Typelselect::Dual
53 }
54}
55#[doc = "High Double-Word Error Type\n\nValue on reset: 0"]
56#[derive(Clone, Copy, Debug, PartialEq, Eq)]
57#[repr(u8)]
58pub enum Typehselect {
59 #[doc = "0: No Error Detected Since Last Read"]
60 None = 0,
61 #[doc = "1: At Least One Single Error Detected Since last Read"]
62 Single = 1,
63 #[doc = "2: At Least One Dual Error Detected Since Last Read"]
64 Dual = 2,
65}
66impl From<Typehselect> for u8 {
67 #[inline(always)]
68 fn from(variant: Typehselect) -> Self {
69 variant as _
70 }
71}
72impl crate::FieldSpec for Typehselect {
73 type Ux = u8;
74}
75impl crate::IsEnum for Typehselect {}
76#[doc = "Field `TYPEH` reader - High Double-Word Error Type"]
77pub type TypehR = crate::FieldReader<Typehselect>;
78impl TypehR {
79 #[doc = "Get enumerated values variant"]
80 #[inline(always)]
81 pub const fn variant(&self) -> Option<Typehselect> {
82 match self.bits {
83 0 => Some(Typehselect::None),
84 1 => Some(Typehselect::Single),
85 2 => Some(Typehselect::Dual),
86 _ => None,
87 }
88 }
89 #[doc = "No Error Detected Since Last Read"]
90 #[inline(always)]
91 pub fn is_none(&self) -> bool {
92 *self == Typehselect::None
93 }
94 #[doc = "At Least One Single Error Detected Since last Read"]
95 #[inline(always)]
96 pub fn is_single(&self) -> bool {
97 *self == Typehselect::Single
98 }
99 #[doc = "At Least One Dual Error Detected Since Last Read"]
100 #[inline(always)]
101 pub fn is_dual(&self) -> bool {
102 *self == Typehselect::Dual
103 }
104}
105impl R {
106 #[doc = "Bits 0:23 - Error Address"]
107 #[inline(always)]
108 pub fn addr(&self) -> AddrR {
109 AddrR::new(self.bits & 0x00ff_ffff)
110 }
111 #[doc = "Bits 28:29 - Low Double-Word Error Type"]
112 #[inline(always)]
113 pub fn typel(&self) -> TypelR {
114 TypelR::new(((self.bits >> 28) & 3) as u8)
115 }
116 #[doc = "Bits 30:31 - High Double-Word Error Type"]
117 #[inline(always)]
118 pub fn typeh(&self) -> TypehR {
119 TypehR::new(((self.bits >> 30) & 3) as u8)
120 }
121}
122#[doc = "ECC Error Status Register\n\nYou can [`read`](crate::Reg::read) this register and get [`eccerr::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
123pub struct EccerrSpec;
124impl crate::RegisterSpec for EccerrSpec {
125 type Ux = u32;
126}
127#[doc = "`read()` method returns [`eccerr::R`](R) reader structure"]
128impl crate::Readable for EccerrSpec {}
129#[doc = "`reset()` method sets ECCERR to value 0"]
130impl crate::Resettable for EccerrSpec {
131 const RESET_VALUE: u32 = 0;
132}