1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4 _reserved_0_dr: [u8; 0x04],
5 #[doc = "0x04 - Independent data register"]
6 pub idr: crate::Reg<idr::IDR_SPEC>,
7 #[doc = "0x08 - Control register"]
8 pub cr: crate::Reg<cr::CR_SPEC>,
9 _reserved3: [u8; 0x04],
10 #[doc = "0x10 - Initial CRC value"]
11 pub init: crate::Reg<init::INIT_SPEC>,
12 #[doc = "0x14 - CRC polynomial"]
13 pub pol: crate::Reg<pol::POL_SPEC>,
14}
15impl RegisterBlock {
16 #[doc = "0x00 - Data register - half-word sized"]
17 #[inline(always)]
18 pub fn dr16(&self) -> &crate::Reg<dr16::DR16_SPEC> {
19 unsafe {
20 &*(((self as *const Self) as *const u8).add(0usize)
21 as *const crate::Reg<dr16::DR16_SPEC>)
22 }
23 }
24 #[doc = "0x00 - Data register - byte sized"]
25 #[inline(always)]
26 pub fn dr8(&self) -> &crate::Reg<dr8::DR8_SPEC> {
27 unsafe {
28 &*(((self as *const Self) as *const u8).add(0usize) as *const crate::Reg<dr8::DR8_SPEC>)
29 }
30 }
31 #[doc = "0x00 - Data register"]
32 #[inline(always)]
33 pub fn dr(&self) -> &crate::Reg<dr::DR_SPEC> {
34 unsafe {
35 &*(((self as *const Self) as *const u8).add(0usize) as *const crate::Reg<dr::DR_SPEC>)
36 }
37 }
38}
39#[doc = "DR register accessor: an alias for `Reg<DR_SPEC>`"]
40pub type DR = crate::Reg<dr::DR_SPEC>;
41#[doc = "Data register"]
42pub mod dr;
43#[doc = "IDR register accessor: an alias for `Reg<IDR_SPEC>`"]
44pub type IDR = crate::Reg<idr::IDR_SPEC>;
45#[doc = "Independent data register"]
46pub mod idr;
47#[doc = "CR register accessor: an alias for `Reg<CR_SPEC>`"]
48pub type CR = crate::Reg<cr::CR_SPEC>;
49#[doc = "Control register"]
50pub mod cr;
51#[doc = "INIT register accessor: an alias for `Reg<INIT_SPEC>`"]
52pub type INIT = crate::Reg<init::INIT_SPEC>;
53#[doc = "Initial CRC value"]
54pub mod init;
55#[doc = "POL register accessor: an alias for `Reg<POL_SPEC>`"]
56pub type POL = crate::Reg<pol::POL_SPEC>;
57#[doc = "CRC polynomial"]
58pub mod pol;
59#[doc = "DR8 register accessor: an alias for `Reg<DR8_SPEC>`"]
60pub type DR8 = crate::Reg<dr8::DR8_SPEC>;
61#[doc = "Data register - byte sized"]
62pub mod dr8;
63#[doc = "DR16 register accessor: an alias for `Reg<DR16_SPEC>`"]
64pub type DR16 = crate::Reg<dr16::DR16_SPEC>;
65#[doc = "Data register - half-word sized"]
66pub mod dr16;