bl61x_pac/
dma.rs

1#[doc = r"Register block"]
2#[repr(C)]
3pub struct RegisterBlock {
4    interrupt_state: INTERRUPT_STATE,
5    terminate_state: TERMINATE_STATE,
6    terminate_clear: TERMINATE_CLEAR,
7    error_state: ERROR_STATE,
8    error_clear: ERROR_CLEAR,
9    terminate_state_raw: TERMINATE_STATE_RAW,
10    error_state_raw: ERROR_STATE_RAW,
11    channel_state: CHANNEL_STATE,
12    burst_request: BURST_REQUEST,
13    single_request: SINGLE_REQUEST,
14    last_burst_request: LAST_BURST_REQUEST,
15    last_single_request: LAST_SINGLE_REQUEST,
16    config: CONFIG,
17    synchronize: SYNCHRONIZE,
18    _reserved14: [u8; 0xc8],
19    channel: (),
20}
21impl RegisterBlock {
22    #[doc = "0x00 - ??"]
23    #[inline(always)]
24    pub const fn interrupt_state(&self) -> &INTERRUPT_STATE {
25        &self.interrupt_state
26    }
27    #[doc = "0x04 - ??"]
28    #[inline(always)]
29    pub const fn terminate_state(&self) -> &TERMINATE_STATE {
30        &self.terminate_state
31    }
32    #[doc = "0x08 - ??"]
33    #[inline(always)]
34    pub const fn terminate_clear(&self) -> &TERMINATE_CLEAR {
35        &self.terminate_clear
36    }
37    #[doc = "0x0c - ??"]
38    #[inline(always)]
39    pub const fn error_state(&self) -> &ERROR_STATE {
40        &self.error_state
41    }
42    #[doc = "0x10 - ??"]
43    #[inline(always)]
44    pub const fn error_clear(&self) -> &ERROR_CLEAR {
45        &self.error_clear
46    }
47    #[doc = "0x14 - ??"]
48    #[inline(always)]
49    pub const fn terminate_state_raw(&self) -> &TERMINATE_STATE_RAW {
50        &self.terminate_state_raw
51    }
52    #[doc = "0x18 - ??"]
53    #[inline(always)]
54    pub const fn error_state_raw(&self) -> &ERROR_STATE_RAW {
55        &self.error_state_raw
56    }
57    #[doc = "0x1c - ??"]
58    #[inline(always)]
59    pub const fn channel_state(&self) -> &CHANNEL_STATE {
60        &self.channel_state
61    }
62    #[doc = "0x20 - ??"]
63    #[inline(always)]
64    pub const fn burst_request(&self) -> &BURST_REQUEST {
65        &self.burst_request
66    }
67    #[doc = "0x24 - ??"]
68    #[inline(always)]
69    pub const fn single_request(&self) -> &SINGLE_REQUEST {
70        &self.single_request
71    }
72    #[doc = "0x28 - ??"]
73    #[inline(always)]
74    pub const fn last_burst_request(&self) -> &LAST_BURST_REQUEST {
75        &self.last_burst_request
76    }
77    #[doc = "0x2c - ??"]
78    #[inline(always)]
79    pub const fn last_single_request(&self) -> &LAST_SINGLE_REQUEST {
80        &self.last_single_request
81    }
82    #[doc = "0x30 - ??"]
83    #[inline(always)]
84    pub const fn config(&self) -> &CONFIG {
85        &self.config
86    }
87    #[doc = "0x34 - ??"]
88    #[inline(always)]
89    pub const fn synchronize(&self) -> &SYNCHRONIZE {
90        &self.synchronize
91    }
92    #[doc = "0x100..0x150 - Direct Memory Access channel"]
93    #[inline(always)]
94    pub const fn channel(&self, n: usize) -> &CHANNEL {
95        #[allow(clippy::no_effect)]
96        [(); 4][n];
97        unsafe {
98            &*(self as *const Self)
99                .cast::<u8>()
100                .add(256)
101                .add(256 * n)
102                .cast()
103        }
104    }
105    #[doc = "Iterator for array of:"]
106    #[doc = "0x100..0x150 - Direct Memory Access channel"]
107    #[inline(always)]
108    pub fn channel_iter(&self) -> impl Iterator<Item = &CHANNEL> {
109        (0..4).map(|n| unsafe {
110            &*(self as *const Self)
111                .cast::<u8>()
112                .add(256)
113                .add(256 * n)
114                .cast()
115        })
116    }
117}
118#[doc = "interrupt_state (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`interrupt_state::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`interrupt_state::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@interrupt_state`]
119module"]
120pub type INTERRUPT_STATE = crate::Reg<interrupt_state::INTERRUPT_STATE_SPEC>;
121#[doc = "??"]
122pub mod interrupt_state;
123#[doc = "terminate_state (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`terminate_state::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`terminate_state::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@terminate_state`]
124module"]
125pub type TERMINATE_STATE = crate::Reg<terminate_state::TERMINATE_STATE_SPEC>;
126#[doc = "??"]
127pub mod terminate_state;
128#[doc = "terminate_clear (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`terminate_clear::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`terminate_clear::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@terminate_clear`]
129module"]
130pub type TERMINATE_CLEAR = crate::Reg<terminate_clear::TERMINATE_CLEAR_SPEC>;
131#[doc = "??"]
132pub mod terminate_clear;
133#[doc = "error_state (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`error_state::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`error_state::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@error_state`]
134module"]
135pub type ERROR_STATE = crate::Reg<error_state::ERROR_STATE_SPEC>;
136#[doc = "??"]
137pub mod error_state;
138#[doc = "error_clear (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`error_clear::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`error_clear::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@error_clear`]
139module"]
140pub type ERROR_CLEAR = crate::Reg<error_clear::ERROR_CLEAR_SPEC>;
141#[doc = "??"]
142pub mod error_clear;
143#[doc = "terminate_state_raw (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`terminate_state_raw::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`terminate_state_raw::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@terminate_state_raw`]
144module"]
145pub type TERMINATE_STATE_RAW = crate::Reg<terminate_state_raw::TERMINATE_STATE_RAW_SPEC>;
146#[doc = "??"]
147pub mod terminate_state_raw;
148#[doc = "error_state_raw (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`error_state_raw::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`error_state_raw::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@error_state_raw`]
149module"]
150pub type ERROR_STATE_RAW = crate::Reg<error_state_raw::ERROR_STATE_RAW_SPEC>;
151#[doc = "??"]
152pub mod error_state_raw;
153#[doc = "channel_state (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`channel_state::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`channel_state::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@channel_state`]
154module"]
155pub type CHANNEL_STATE = crate::Reg<channel_state::CHANNEL_STATE_SPEC>;
156#[doc = "??"]
157pub mod channel_state;
158#[doc = "burst_request (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`burst_request::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`burst_request::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@burst_request`]
159module"]
160pub type BURST_REQUEST = crate::Reg<burst_request::BURST_REQUEST_SPEC>;
161#[doc = "??"]
162pub mod burst_request;
163#[doc = "single_request (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`single_request::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`single_request::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@single_request`]
164module"]
165pub type SINGLE_REQUEST = crate::Reg<single_request::SINGLE_REQUEST_SPEC>;
166#[doc = "??"]
167pub mod single_request;
168#[doc = "last_burst_request (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`last_burst_request::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`last_burst_request::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@last_burst_request`]
169module"]
170pub type LAST_BURST_REQUEST = crate::Reg<last_burst_request::LAST_BURST_REQUEST_SPEC>;
171#[doc = "??"]
172pub mod last_burst_request;
173#[doc = "last_single_request (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`last_single_request::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`last_single_request::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@last_single_request`]
174module"]
175pub type LAST_SINGLE_REQUEST = crate::Reg<last_single_request::LAST_SINGLE_REQUEST_SPEC>;
176#[doc = "??"]
177pub mod last_single_request;
178#[doc = "config (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`config::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`config::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@config`]
179module"]
180pub type CONFIG = crate::Reg<config::CONFIG_SPEC>;
181#[doc = "??"]
182pub mod config;
183#[doc = "synchronize (rw) register accessor: ??\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`synchronize::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`synchronize::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@synchronize`]
184module"]
185pub type SYNCHRONIZE = crate::Reg<synchronize::SYNCHRONIZE_SPEC>;
186#[doc = "??"]
187pub mod synchronize;
188#[doc = "Direct Memory Access channel"]
189pub use self::channel::CHANNEL;
190#[doc = r"Cluster"]
191#[doc = "Direct Memory Access channel"]
192pub mod channel;