28 Commits

Author SHA1 Message Date
464cc60c75 Merge pull request 'regenerate PAC' (#42) from regenerate-pac into main
Reviewed-on: #42
2025-02-13 16:04:50 +01:00
2c9ca004ce regenerate PAC, va416xx v0.3.0 2025-02-13 16:03:19 +01:00
0c040515fe Merge pull request 'probe-rs update' (#40) from probe-rs-update into main
Reviewed-on: #40
2024-11-26 10:25:08 +01:00
f3fd5122cb probe-rs update 2024-11-26 10:24:50 +01:00
969e5bbc42 Merge pull request 'use released HAL dependency' (#39) from prep-bsp-release into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #39
2024-10-01 10:56:23 +02:00
6960c09627 Merge branch 'main' into prep-bsp-release 2024-10-01 10:56:15 +02:00
25f7b79f28 use released HAL dependency 2024-10-01 10:55:55 +02:00
2cf7554cab Merge pull request 'README and docs update' (#38) from prep-bsp-release into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #38
2024-10-01 10:54:52 +02:00
ff58fb7b55 prepare release for BSP 2024-10-01 10:54:11 +02:00
b1f63b64ce Merge pull request 'prepare release for BSP' (#37) from prep-bsp-release into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #37
2024-10-01 10:46:28 +02:00
22cc40c095 prepare release for BSP
Some checks are pending
Rust/va416xx-rs/pipeline/head Build started...
2024-10-01 10:43:06 +02:00
1ca319b433 Merge pull request 'bump version' (#36) from prep-hal-release into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #36
2024-09-30 15:34:11 +02:00
3813c397f7 bump HAL version
Some checks are pending
Rust/va416xx-rs/pipeline/pr-main Build started...
2024-09-30 15:23:24 +02:00
9d8772bf1f Merge pull request 'prepare HAL release' (#35) from prep-hal-release into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #35
2024-09-30 14:45:54 +02:00
246b084429 prepare HAL release
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
2024-09-30 14:13:11 +02:00
bea5a852a2 Merge pull request 'smaller improvements and fixes' (#34) from smaller-improvements-fixes into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #34
2024-09-30 13:50:52 +02:00
e1487c8969 smaller improvements and fixes
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
2024-09-30 12:17:05 +02:00
7e7416efd1 Merge pull request 'Improve UART Impl' (#33) from improve-uart-impl into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #33
2024-09-24 17:47:47 +02:00
42e3cfde8a improve UART impl
All checks were successful
Rust/va416xx-rs/pipeline/pr-main This commit looks good
2024-09-24 17:22:00 +02:00
a50f7a947a Merge pull request 'UART with IRQ + Embassy example' (#32) from add-uart-embassy-echo-example into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #32
2024-09-24 11:07:00 +02:00
abede6057e UART with IRQ + Embassy example
All checks were successful
Rust/va416xx-rs/pipeline/pr-main This commit looks good
2024-09-24 10:59:41 +02:00
e04f4336cc Merge pull request 'Flashloader and UART update' (#31) from flashloader-and-uart-update into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #31
2024-09-23 12:00:23 +02:00
aae870c767 Flashloader and UART improvements
Some checks are pending
Rust/va416xx-rs/pipeline/pr-main Build started...
2024-09-23 11:57:32 +02:00
3e67749452 Merge pull request 'calculate most bootloader properties' (#30) from bootloader-improvements into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #30
2024-09-23 10:26:57 +02:00
5eb38f9c2a fix
All checks were successful
Rust/va416xx-rs/pipeline/pr-main This commit looks good
2024-09-23 10:02:51 +02:00
5b336a2b41 calculate most bootloader properties
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Rust/va416xx-rs/pipeline/pr-main This commit looks good
2024-09-20 12:12:21 +02:00
051042ad1b Merge pull request 'Updates and fixes: SPI' (#29) from updates-and-fixes into main
All checks were successful
Rust/va416xx-rs/pipeline/head This commit looks good
Reviewed-on: #29
2024-09-20 11:43:44 +02:00
aa1ed2a20d Updates and fixes
Some checks are pending
Rust/va416xx-rs/pipeline/pr-main Build started...
- Improve and fix SPI HAL and example
- Fix RTIC example
2024-09-20 11:41:24 +02:00
552 changed files with 3155 additions and 3402 deletions

2
.gitignore vendored
View File

@ -15,3 +15,5 @@ Cargo.lock
/app.map /app.map
/app.bin /app.bin
/Embed.toml

View File

@ -41,4 +41,4 @@ debug-assertions = false # <-
lto = true lto = true
opt-level = 'z' # <- opt-level = 'z' # <-
overflow-checks = false # <- overflow-checks = false # <-
# strip = true # Automatically strip symbols from the binary. strip = true # Automatically strip symbols from the binary.

View File

@ -1,5 +1,5 @@
[default.general] [default.general]
chip = "VA416xx" chip = "VA416xx_RAM"
[default.rtt] [default.rtt]
enabled = true enabled = true

View File

@ -99,9 +99,9 @@ example.
### Using VS Code ### Using VS Code
Assuming a working debug connection to your VA108xx board, you can debug using VS Code with Assuming a working debug connection to your VA416xx board, you can debug using VS Code with
the [`Cortex-Debug` plugin](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug). Please make sure that the [`Cortex-Debug` plugin](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug).
[`objdump-multiarch` and `nm-multiarch`](https://forums.raspberrypi.com/viewtopic.php?t=333146) Please make sure that [`objdump-multiarch` and `nm-multiarch`](https://forums.raspberrypi.com/viewtopic.php?t=333146)
are installed as well. are installed as well.
Some sample configuration files for VS code were provided and can be used by running Some sample configuration files for VS code were provided and can be used by running

View File

@ -8,8 +8,15 @@ cortex-m = "0.7"
cortex-m-rt = "0.7" cortex-m-rt = "0.7"
embedded-hal = "1" embedded-hal = "1"
panic-rtt-target = { version = "0.1.3" } panic-rtt-target = { version = "0.1.3" }
panic-halt = { version = "0.2" }
rtt-target = { version = "0.5" } rtt-target = { version = "0.5" }
crc = "3" crc = "3"
static_assertions = "1"
[dependencies.va416xx-hal] [dependencies.va416xx-hal]
path = "../va416xx-hal" path = "../va416xx-hal"
features = ["va41630"]
[features]
default = []
rtt-panic = []

View File

@ -11,12 +11,12 @@ The bootloader uses the following memory map:
| ------ | ---- | ---- | | ------ | ---- | ---- |
| 0x0 | Bootloader start | code up to 0x3FFC bytes | | 0x0 | Bootloader start | code up to 0x3FFC bytes |
| 0x3FFC | Bootloader CRC | word | | 0x3FFC | Bootloader CRC | word |
| 0x4000 | App image A start | code up to 0x1DFFC (~120K) bytes | | 0x4000 | App image A start | code up to 0x1DFF8 (~120K) bytes |
| 0x21FFC | App image A CRC check length | word | | 0x21FF8 | App image A CRC check length | word |
| 0x21FFE | App image A CRC check value | word | | 0x21FFC | App image A CRC check value | word |
| 0x22000 | App image B start | code up to 0x1DFFC (~120K) bytes | | 0x22000 | App image B start | code up to 0x1DFF8 (~120K) bytes |
| 0x3FFFC | App image B CRC check length | word | | 0x3FFF8 | App image B CRC check length | word |
| 0x3FFFE | App image B CRC check value | word | | 0x3FFFC | App image B CRC check value | word |
| 0x40000 | End of NVM | end | | 0x40000 | End of NVM | end |
## Additional Information ## Additional Information

View File

@ -1,17 +1,5 @@
//! Vorago bootloader which can boot from two images. //! Vorago bootloader which can boot from two images.
//! //!
//! Bootloader memory map
//!
//! * <0x0> Bootloader start <code up to 0x3FFE bytes>
//! * <0x3FFE> Bootloader CRC <halfword>
//! * <0x4000> App image A start <code up to 0x1DFFC (~120K) bytes>
//! * <0x21FFC> App image A CRC check length <halfword>
//! * <0x21FFE> App image A CRC check value <halfword>
//! * <0x22000> App image B start <code up to 0x1DFFC (~120K) bytes>
//! * <0x3FFFC> App image B CRC check length <halfword>
//! * <0x3FFFE> App image B CRC check value <halfword>
//! * <0x40000> <end>
//!
//! As opposed to the Vorago example code, this bootloader assumes a 40 MHz external clock //! As opposed to the Vorago example code, this bootloader assumes a 40 MHz external clock
//! but does not scale that clock up. //! but does not scale that clock up.
#![no_main] #![no_main]
@ -19,6 +7,9 @@
use cortex_m_rt::entry; use cortex_m_rt::entry;
use crc::{Crc, CRC_32_ISO_HDLC}; use crc::{Crc, CRC_32_ISO_HDLC};
#[cfg(not(feature = "rtt-panic"))]
use panic_halt as _;
#[cfg(feature = "rtt-panic")]
use panic_rtt_target as _; use panic_rtt_target as _;
use rtt_target::{rprintln, rtt_init_print}; use rtt_target::{rprintln, rtt_init_print};
use va416xx_hal::{ use va416xx_hal::{
@ -42,23 +33,42 @@ const DEBUG_PRINTOUTS: bool = true;
// self-flash itself. It is recommended that you use a tool like probe-rs, Keil IDE, or a flash // self-flash itself. It is recommended that you use a tool like probe-rs, Keil IDE, or a flash
// loader to boot a bootloader without this feature. // loader to boot a bootloader without this feature.
const FLASH_SELF: bool = false; const FLASH_SELF: bool = false;
// Useful for debugging and see what the bootloader is doing. Enabled currently, because
// the binary stays small enough.
const RTT_PRINTOUT: bool = true;
// Important bootloader addresses and offsets, vector table information. // Important bootloader addresses and offsets, vector table information.
const NVM_SIZE: u32 = 0x40000;
const BOOTLOADER_START_ADDR: u32 = 0x0; const BOOTLOADER_START_ADDR: u32 = 0x0;
const BOOTLOADER_CRC_ADDR: u32 = BOOTLOADER_END_ADDR - 4;
const BOOTLOADER_END_ADDR: u32 = 0x4000; const BOOTLOADER_END_ADDR: u32 = 0x4000;
const BOOTLOADER_CRC_ADDR: u32 = 0x3FFC;
const APP_A_START_ADDR: u32 = 0x4000; // 0x4000
pub const APP_A_END_ADDR: u32 = 0x22000; const APP_A_START_ADDR: u32 = BOOTLOADER_END_ADDR;
// The actual size of the image which is relevant for CRC calculation. // The actual size of the image which is relevant for CRC calculation will be store at this
const APP_A_SIZE_ADDR: u32 = 0x21FF8; // address.
const APP_A_CRC_ADDR: u32 = 0x21FFC; // 0x21FF8
const APP_B_START_ADDR: u32 = 0x22000; const APP_A_SIZE_ADDR: u32 = APP_B_END_ADDR - 8;
pub const APP_B_END_ADDR: u32 = 0x40000; // 0x21FFC
// The actual size of the image which is relevant for CRC calculation. const APP_A_CRC_ADDR: u32 = APP_B_END_ADDR - 4;
const APP_B_SIZE_ADDR: u32 = 0x3FFF8; pub const APP_A_END_ADDR: u32 = BOOTLOADER_END_ADDR + APP_IMG_SZ;
const APP_B_CRC_ADDR: u32 = 0x3FFFC;
pub const APP_IMG_SZ: u32 = 0x1E000; // 0x22000
const APP_B_START_ADDR: u32 = APP_A_END_ADDR;
// The actual size of the image which is relevant for CRC calculation will be stored at this
// address.
// 0x3FFF8
const APP_B_SIZE_ADDR: u32 = APP_B_END_ADDR - 8;
// 0x3FFFC
const APP_B_CRC_ADDR: u32 = APP_B_END_ADDR - 4;
// 0x40000
pub const APP_B_END_ADDR: u32 = NVM_SIZE;
pub const APP_IMG_SZ: u32 = APP_B_END_ADDR - APP_A_START_ADDR / 2;
static_assertions::const_assert!((APP_B_END_ADDR - BOOTLOADER_END_ADDR) % 2 == 0);
pub const VECTOR_TABLE_OFFSET: u32 = 0x0; pub const VECTOR_TABLE_OFFSET: u32 = 0x0;
pub const VECTOR_TABLE_LEN: u32 = 0x350; pub const VECTOR_TABLE_LEN: u32 = 0x350;
@ -88,8 +98,10 @@ impl WdtInterface for OptWdt {
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
rtt_init_print!(); if RTT_PRINTOUT {
rprintln!("-- VA416xx bootloader --"); rtt_init_print!();
rprintln!("-- VA416xx bootloader --");
}
let mut dp = pac::Peripherals::take().unwrap(); let mut dp = pac::Peripherals::take().unwrap();
let cp = cortex_m::Peripherals::take().unwrap(); let cp = cortex_m::Peripherals::take().unwrap();
// Disable ROM protection. // Disable ROM protection.
@ -133,18 +145,24 @@ fn main() -> ! {
nvm.write_data(0x0, &first_four_bytes); nvm.write_data(0x0, &first_four_bytes);
nvm.write_data(0x4, bootloader_data); nvm.write_data(0x4, bootloader_data);
if let Err(e) = nvm.verify_data(0x0, &first_four_bytes) { if let Err(e) = nvm.verify_data(0x0, &first_four_bytes) {
rprintln!("verification of self-flash to NVM failed: {:?}", e); if RTT_PRINTOUT {
rprintln!("verification of self-flash to NVM failed: {:?}", e);
}
} }
if let Err(e) = nvm.verify_data(0x4, bootloader_data) { if let Err(e) = nvm.verify_data(0x4, bootloader_data) {
rprintln!("verification of self-flash to NVM failed: {:?}", e); if RTT_PRINTOUT {
rprintln!("verification of self-flash to NVM failed: {:?}", e);
}
} }
nvm.write_data(BOOTLOADER_CRC_ADDR, &bootloader_crc.to_be_bytes()); nvm.write_data(BOOTLOADER_CRC_ADDR, &bootloader_crc.to_be_bytes());
if let Err(e) = nvm.verify_data(BOOTLOADER_CRC_ADDR, &bootloader_crc.to_be_bytes()) { if let Err(e) = nvm.verify_data(BOOTLOADER_CRC_ADDR, &bootloader_crc.to_be_bytes()) {
rprintln!( if RTT_PRINTOUT {
"error: CRC verification for bootloader self-flash failed: {:?}", rprintln!(
e "error: CRC verification for bootloader self-flash failed: {:?}",
); e
);
}
} }
} }
@ -156,7 +174,7 @@ fn main() -> ! {
} else if check_app_crc(AppSel::B, &opt_wdt) { } else if check_app_crc(AppSel::B, &opt_wdt) {
boot_app(AppSel::B, &cp) boot_app(AppSel::B, &cp)
} else { } else {
if DEBUG_PRINTOUTS { if DEBUG_PRINTOUTS && RTT_PRINTOUT {
rprintln!("both images corrupt! booting image A"); rprintln!("both images corrupt! booting image A");
} }
// TODO: Shift a CCSDS packet out to inform host/OBC about image corruption. // TODO: Shift a CCSDS packet out to inform host/OBC about image corruption.
@ -184,7 +202,7 @@ fn check_own_crc(wdt: &OptWdt, nvm: &Nvm, cp: &cortex_m::Peripherals) {
let crc_calc = digest.finalize(); let crc_calc = digest.finalize();
wdt.feed(); wdt.feed();
if crc_exp == 0x0000 || crc_exp == 0xffff { if crc_exp == 0x0000 || crc_exp == 0xffff {
if DEBUG_PRINTOUTS { if DEBUG_PRINTOUTS && RTT_PRINTOUT {
rprintln!("BL CRC blank - prog new CRC"); rprintln!("BL CRC blank - prog new CRC");
} }
// Blank CRC, write it to NVM. // Blank CRC, write it to NVM.
@ -194,7 +212,7 @@ fn check_own_crc(wdt: &OptWdt, nvm: &Nvm, cp: &cortex_m::Peripherals) {
// cortex_m::peripheral::SCB::sys_reset(); // cortex_m::peripheral::SCB::sys_reset();
} else if crc_exp != crc_calc { } else if crc_exp != crc_calc {
// Bootloader is corrupted. Try to run App A. // Bootloader is corrupted. Try to run App A.
if DEBUG_PRINTOUTS { if DEBUG_PRINTOUTS && RTT_PRINTOUT {
rprintln!( rprintln!(
"bootloader CRC corrupt, read {} and expected {}. booting image A immediately", "bootloader CRC corrupt, read {} and expected {}. booting image A immediately",
crc_calc, crc_calc,
@ -217,7 +235,7 @@ fn read_four_bytes_at_addr_zero(buf: &mut [u8; 4]) {
} }
} }
fn check_app_crc(app_sel: AppSel, wdt: &OptWdt) -> bool { fn check_app_crc(app_sel: AppSel, wdt: &OptWdt) -> bool {
if DEBUG_PRINTOUTS { if DEBUG_PRINTOUTS && RTT_PRINTOUT {
rprintln!("Checking image {:?}", app_sel); rprintln!("Checking image {:?}", app_sel);
} }
if app_sel == AppSel::A { if app_sel == AppSel::A {
@ -237,7 +255,9 @@ fn check_app_given_addr(
let image_size = unsafe { (image_size_addr as *const u32).read_unaligned().to_be() }; let image_size = unsafe { (image_size_addr as *const u32).read_unaligned().to_be() };
// Sanity check. // Sanity check.
if image_size > APP_A_END_ADDR - APP_A_START_ADDR - 8 { if image_size > APP_A_END_ADDR - APP_A_START_ADDR - 8 {
rprintln!("detected invalid app size {}", image_size); if RTT_PRINTOUT {
rprintln!("detected invalid app size {}", image_size);
}
return false; return false;
} }
wdt.feed(); wdt.feed();
@ -252,7 +272,7 @@ fn check_app_given_addr(
} }
fn boot_app(app_sel: AppSel, cp: &cortex_m::Peripherals) -> ! { fn boot_app(app_sel: AppSel, cp: &cortex_m::Peripherals) -> ! {
if DEBUG_PRINTOUTS { if DEBUG_PRINTOUTS && RTT_PRINTOUT {
rprintln!("booting app {:?}", app_sel); rprintln!("booting app {:?}", app_sel);
} }
let clkgen = unsafe { pac::Clkgen::steal() }; let clkgen = unsafe { pac::Clkgen::steal() };

View File

@ -7,6 +7,7 @@ edition = "2021"
cortex-m = { version = "0.7", features = ["critical-section-single-core"] } cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
cortex-m-rt = "0.7" cortex-m-rt = "0.7"
embedded-hal = "1" embedded-hal = "1"
embedded-io = "0.6"
rtt-target = { version = "0.5" } rtt-target = { version = "0.5" }
panic-rtt-target = { version = "0.1" } panic-rtt-target = { version = "0.1" }
@ -16,6 +17,10 @@ embassy-sync = { version = "0.6.0" }
embassy-time = { version = "0.3.2" } embassy-time = { version = "0.3.2" }
embassy-time-driver = { version = "0.1" } embassy-time-driver = { version = "0.1" }
[dependencies.ringbuf]
version = "0.4"
default-features = false
[dependencies.once_cell] [dependencies.once_cell]
version = "1" version = "1"
default-features = false default-features = false

View File

@ -0,0 +1,161 @@
//! This is an example of using the UART HAL abstraction with the IRQ support and embassy.
//!
//! It uses the UART0 for communication with another MCU or a host computer (recommended).
//! You can connect a USB-to-Serial converter to the UART0 pins and then use a serial terminal
//! application like picocom to send data to the microcontroller, which should be echoed
//! back to the sender.
//!
//! This application uses the interrupt support of the VA416xx to read the data arriving
//! on the UART without requiring polling.
#![no_std]
#![no_main]
use core::cell::RefCell;
use embassy_example::EXTCLK_FREQ;
use embassy_executor::Spawner;
use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
use embassy_sync::blocking_mutex::Mutex;
use embassy_time::{Duration, Ticker};
use embedded_hal::digital::StatefulOutputPin;
use embedded_io::Write;
use panic_rtt_target as _;
use ringbuf::{
traits::{Consumer, Observer, Producer},
StaticRb,
};
use rtt_target::{rprintln, rtt_init_print};
use va416xx_hal::{
gpio::{OutputReadablePushPull, Pin, PinsG, PG5},
pac::{self, interrupt},
prelude::*,
time::Hertz,
uart,
};
pub type SharedUart = Mutex<CriticalSectionRawMutex, RefCell<Option<uart::RxWithIrq<pac::Uart0>>>>;
static RX: SharedUart = Mutex::new(RefCell::new(None));
const BAUDRATE: u32 = 115200;
// Ring buffer size.
const RING_BUF_SIZE: usize = 2048;
pub type SharedRingBuf =
Mutex<CriticalSectionRawMutex, RefCell<Option<StaticRb<u8, RING_BUF_SIZE>>>>;
// Ring buffers to handling variable sized telemetry
static RINGBUF: SharedRingBuf = Mutex::new(RefCell::new(None));
// See https://embassy.dev/book/#_sharing_using_a_mutex for background information about sharing
// a peripheral with embassy.
#[embassy_executor::main]
async fn main(spawner: Spawner) {
rtt_init_print!();
rprintln!("VA416xx UART-Embassy Example");
let mut dp = pac::Peripherals::take().unwrap();
// Initialize the systick interrupt & obtain the token to prove that we did
// Use the external clock connected to XTAL_N.
let clocks = dp
.clkgen
.constrain()
.xtal_n_clk_with_src_freq(Hertz::from_raw(EXTCLK_FREQ))
.freeze(&mut dp.sysconfig)
.unwrap();
// Safety: Only called once here.
unsafe {
embassy_example::init(
&mut dp.sysconfig,
&dp.irq_router,
dp.tim15,
dp.tim14,
&clocks,
)
};
let portg = PinsG::new(&mut dp.sysconfig, dp.portg);
let tx = portg.pg0.into_funsel_1();
let rx = portg.pg1.into_funsel_1();
let uart0 = uart::Uart::new(
dp.uart0,
(tx, rx),
Hertz::from_raw(BAUDRATE),
&mut dp.sysconfig,
&clocks,
);
let (mut tx, rx) = uart0.split();
let mut rx = rx.into_rx_with_irq();
rx.start();
RX.lock(|static_rx| {
static_rx.borrow_mut().replace(rx);
});
RINGBUF.lock(|static_rb| {
static_rb.borrow_mut().replace(StaticRb::default());
});
let led = portg.pg5.into_readable_push_pull_output();
let mut ticker = Ticker::every(Duration::from_millis(50));
let mut processing_buf: [u8; RING_BUF_SIZE] = [0; RING_BUF_SIZE];
let mut read_bytes = 0;
spawner.spawn(blinky(led)).expect("failed to spawn blinky");
loop {
RINGBUF.lock(|static_rb| {
let mut rb_borrow = static_rb.borrow_mut();
let rb_mut = rb_borrow.as_mut().unwrap();
read_bytes = rb_mut.occupied_len();
rb_mut.pop_slice(&mut processing_buf[0..read_bytes]);
});
// Simply send back all received data.
tx.write_all(&processing_buf[0..read_bytes])
.expect("sending back read data failed");
ticker.next().await;
}
}
#[embassy_executor::task]
async fn blinky(mut led: Pin<PG5, OutputReadablePushPull>) {
let mut ticker = Ticker::every(Duration::from_millis(500));
loop {
led.toggle().ok();
ticker.next().await;
}
}
#[interrupt]
#[allow(non_snake_case)]
fn UART0_RX() {
let mut buf: [u8; 16] = [0; 16];
let mut read_len: usize = 0;
let mut errors = None;
RX.lock(|static_rx| {
let mut rx_borrow = static_rx.borrow_mut();
let rx_mut_ref = rx_borrow.as_mut().unwrap();
let result = rx_mut_ref.irq_handler(&mut buf);
read_len = result.bytes_read;
if result.errors.is_some() {
errors = result.errors;
}
});
let mut ringbuf_full = false;
if read_len > 0 {
// Send the received buffer to the main thread for processing via a ring buffer.
RINGBUF.lock(|static_rb| {
let mut rb_borrow = static_rb.borrow_mut();
let rb_mut_ref = rb_borrow.as_mut().unwrap();
if rb_mut_ref.vacant_len() < read_len {
ringbuf_full = true;
for _ in rb_mut_ref.pop_iter() {}
}
rb_mut_ref.push_slice(&buf[0..read_len]);
});
}
if errors.is_some() {
rprintln!("UART error: {:?}", errors);
}
if ringbuf_full {
rprintln!("ringbuffer is full, deleted oldest data");
}
}

View File

@ -1,4 +1,6 @@
#![no_std] #![no_std]
pub mod time_driver; pub mod time_driver;
pub const EXTCLK_FREQ: u32 = 40_000_000;
pub use time_driver::init; pub use time_driver::init;

View File

@ -1,5 +1,6 @@
#![no_std] #![no_std]
#![no_main] #![no_main]
use embassy_example::EXTCLK_FREQ;
use embassy_executor::Spawner; use embassy_executor::Spawner;
use embassy_time::{Duration, Instant, Ticker}; use embassy_time::{Duration, Instant, Ticker};
use embedded_hal::digital::StatefulOutputPin; use embedded_hal::digital::StatefulOutputPin;
@ -7,8 +8,6 @@ use panic_rtt_target as _;
use rtt_target::{rprintln, rtt_init_print}; use rtt_target::{rprintln, rtt_init_print};
use va416xx_hal::{gpio::PinsG, pac, prelude::*, time::Hertz}; use va416xx_hal::{gpio::PinsG, pac, prelude::*, time::Hertz};
const EXTCLK_FREQ: u32 = 40_000_000;
// main is itself an async function. // main is itself an async function.
#[embassy_executor::main] #[embassy_executor::main]
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {

View File

@ -17,7 +17,7 @@ use va416xx_hal::{
enable_interrupt, enable_interrupt,
irq_router::enable_and_init_irq_router, irq_router::enable_and_init_irq_router,
pac::{self, interrupt}, pac::{self, interrupt},
pwm::{assert_tim_reset_for_two_cycles, enable_tim_clk, ValidTim}, timer::{assert_tim_reset_for_two_cycles, enable_tim_clk, ValidTim},
}; };
pub type TimekeeperClk = pac::Tim15; pub type TimekeeperClk = pac::Tim15;

View File

@ -2,8 +2,13 @@
#![no_main] #![no_main]
#![no_std] #![no_std]
use va416xx_hal::time::Hertz;
const EXTCLK_FREQ: Hertz = Hertz::from_raw(40_000_000);
#[rtic::app(device = pac, dispatchers = [U1, U2, U3])] #[rtic::app(device = pac, dispatchers = [U1, U2, U3])]
mod app { mod app {
use super::*;
use cortex_m::asm; use cortex_m::asm;
use embedded_hal::digital::StatefulOutputPin; use embedded_hal::digital::StatefulOutputPin;
use panic_rtt_target as _; use panic_rtt_target as _;
@ -13,6 +18,7 @@ mod app {
use va416xx_hal::{ use va416xx_hal::{
gpio::{OutputReadablePushPull, Pin, PinsG, PG5}, gpio::{OutputReadablePushPull, Pin, PinsG, PG5},
pac, pac,
prelude::*,
}; };
#[local] #[local]
@ -23,14 +29,22 @@ mod app {
#[shared] #[shared]
struct Shared {} struct Shared {}
rtic_monotonics::systick_monotonic!(Mono, 10_000); rtic_monotonics::systick_monotonic!(Mono, 1_000);
#[init] #[init]
fn init(_ctx: init::Context) -> (Shared, Local) { fn init(mut cx: init::Context) -> (Shared, Local) {
rtt_init_default!(); rtt_init_default!();
rprintln!("-- Vorago RTIC template --"); rprintln!("-- Vorago RTIC example application --");
let mut dp = pac::Peripherals::take().unwrap(); // Use the external clock connected to XTAL_N.
let portg = PinsG::new(&mut dp.sysconfig, dp.portg); let clocks = cx
.device
.clkgen
.constrain()
.xtal_n_clk_with_src_freq(EXTCLK_FREQ)
.freeze(&mut cx.device.sysconfig)
.unwrap();
Mono::start(cx.core.SYST, clocks.sysclk().raw());
let portg = PinsG::new(&mut cx.device.sysconfig, cx.device.portg);
let led = portg.pg5.into_readable_push_pull_output(); let led = portg.pg5.into_readable_push_pull_output();
blinky::spawn().ok(); blinky::spawn().ok();
(Shared {}, Local { led }) (Shared {}, Local { led })

View File

@ -12,7 +12,7 @@ use rtt_target::{rprintln, rtt_init_print};
use simple_examples::peb1; use simple_examples::peb1;
use va416xx_hal::dma::{Dma, DmaCfg, DmaChannel, DmaCtrlBlock}; use va416xx_hal::dma::{Dma, DmaCfg, DmaChannel, DmaCtrlBlock};
use va416xx_hal::irq_router::enable_and_init_irq_router; use va416xx_hal::irq_router::enable_and_init_irq_router;
use va416xx_hal::pwm::CountdownTimer; use va416xx_hal::timer::CountdownTimer;
use va416xx_hal::{ use va416xx_hal::{
pac::{self, interrupt}, pac::{self, interrupt},
prelude::*, prelude::*,

View File

@ -11,7 +11,8 @@ use va416xx_hal::{
gpio::PinsA, gpio::PinsA,
pac, pac,
prelude::*, prelude::*,
pwm::{self, get_duty_from_percent, CountdownTimer, PwmA, PwmB, ReducedPwmPin}, pwm::{self, get_duty_from_percent, PwmA, PwmB, ReducedPwmPin},
timer::CountdownTimer,
}; };
#[entry] #[entry]

View File

@ -3,13 +3,12 @@
//! If you do not use the loopback mode, MOSI and MISO need to be tied together on the board. //! If you do not use the loopback mode, MOSI and MISO need to be tied together on the board.
#![no_main] #![no_main]
#![no_std] #![no_std]
use cortex_m_rt::entry; use cortex_m_rt::entry;
use embedded_hal::spi::{Mode, SpiBus, MODE_0}; use embedded_hal::spi::{Mode, SpiBus, MODE_0};
use panic_rtt_target as _; use panic_rtt_target as _;
use rtt_target::{rprintln, rtt_init_print}; use rtt_target::{rprintln, rtt_init_print};
use simple_examples::peb1; use simple_examples::peb1;
use va416xx_hal::spi::{clk_div_for_target_clock, Spi, TransferConfig}; use va416xx_hal::spi::{Spi, SpiClkConfig};
use va416xx_hal::{ use va416xx_hal::{
gpio::{PinsB, PinsC}, gpio::{PinsB, PinsC},
pac, pac,
@ -22,9 +21,8 @@ use va416xx_hal::{
pub enum ExampleSelect { pub enum ExampleSelect {
// Enter loopback mode. It is not necessary to tie MOSI/MISO together for this // Enter loopback mode. It is not necessary to tie MOSI/MISO together for this
Loopback, Loopback,
// Send a test buffer and print everything received. You need to tie together MOSI/MISO in this // You need to tie together MOSI/MISO in this mode.
// mode. MosiMisoTiedTogether,
TestBuffer,
} }
const EXAMPLE_SEL: ExampleSelect = ExampleSelect::Loopback; const EXAMPLE_SEL: ExampleSelect = ExampleSelect::Loopback;
@ -50,21 +48,23 @@ fn main() -> ! {
let pins_b = PinsB::new(&mut dp.sysconfig, dp.portb); let pins_b = PinsB::new(&mut dp.sysconfig, dp.portb);
let pins_c = PinsC::new(&mut dp.sysconfig, dp.portc); let pins_c = PinsC::new(&mut dp.sysconfig, dp.portc);
// Configure SPI1 pins. // Configure SPI0 pins.
let (sck, miso, mosi) = ( let (sck, miso, mosi) = (
pins_b.pb15.into_funsel_1(), pins_b.pb15.into_funsel_1(),
pins_c.pc0.into_funsel_1(), pins_c.pc0.into_funsel_1(),
pins_c.pc1.into_funsel_1(), pins_c.pc1.into_funsel_1(),
); );
let mut spi_cfg = SpiConfig::default().clk_div( let mut spi_cfg = SpiConfig::default()
clk_div_for_target_clock(Hertz::from_raw(SPI_SPEED_KHZ), &clocks) .clk_cfg(
.expect("invalid target clock"), SpiClkConfig::from_clk(Hertz::from_raw(SPI_SPEED_KHZ), &clocks)
); .expect("invalid target clock"),
)
.mode(SPI_MODE)
.blockmode(BLOCKMODE);
if EXAMPLE_SEL == ExampleSelect::Loopback { if EXAMPLE_SEL == ExampleSelect::Loopback {
spi_cfg = spi_cfg.loopback(true) spi_cfg = spi_cfg.loopback(true)
} }
let transfer_cfg = TransferConfig::new_no_hw_cs(None, Some(SPI_MODE), BLOCKMODE, false);
// Create SPI peripheral. // Create SPI peripheral.
let mut spi0 = Spi::new( let mut spi0 = Spi::new(
&mut dp.sysconfig, &mut dp.sysconfig,
@ -72,29 +72,27 @@ fn main() -> ! {
dp.spi0, dp.spi0,
(sck, miso, mosi), (sck, miso, mosi),
spi_cfg, spi_cfg,
Some(&transfer_cfg.downgrade()), );
)
.expect("creating SPI peripheral failed");
spi0.set_fill_word(FILL_WORD); spi0.set_fill_word(FILL_WORD);
loop { loop {
let mut tx_buf: [u8; 3] = [1, 2, 3]; let tx_buf: [u8; 4] = [1, 2, 3, 0];
let mut rx_buf: [u8; 3] = [0; 3]; let mut rx_buf: [u8; 4] = [0; 4];
// Can't really verify correct reply here. // Can't really verify correct behaviour here. Just verify nothing crazy happens or it hangs up.
spi0.write(&[0x42]).expect("write failed"); spi0.write(&[0x42, 0x43]).expect("write failed");
// Need small delay.. otherwise we will read back the sent byte (which we don't want here).
// The write function will return as soon as all bytes were shifted out, ignoring the
// reply bytes.
delay_sysclk.delay_us(50);
// Because of the loopback mode, we should get back the fill word here.
spi0.read(&mut rx_buf[0..1]).unwrap();
assert_eq!(rx_buf[0], FILL_WORD);
spi0.transfer_in_place(&mut tx_buf) // Can't really verify correct behaviour here. Just verify nothing crazy happens or it hangs up.
spi0.read(&mut rx_buf[0..2]).unwrap();
// If the pins are tied together, we should received exactly what we send.
let mut inplace_buf = tx_buf;
spi0.transfer_in_place(&mut inplace_buf)
.expect("SPI transfer_in_place failed"); .expect("SPI transfer_in_place failed");
assert_eq!([1, 2, 3], tx_buf); assert_eq!([1, 2, 3, 0], inplace_buf);
spi0.transfer(&mut rx_buf, &tx_buf) spi0.transfer(&mut rx_buf, &tx_buf)
.expect("SPI transfer failed"); .expect("SPI transfer failed");
assert_eq!(rx_buf, tx_buf); assert_eq!(rx_buf, [1, 2, 3, 0]);
delay_sysclk.delay_ms(500); delay_sysclk.delay_ms(500);
} }
} }

View File

@ -6,12 +6,18 @@ a simple PUS (CCSDS) interface to update the software. It also provides a Python
called the `image-loader.py` which can be used to upload compiled images to the flashloader called the `image-loader.py` which can be used to upload compiled images to the flashloader
application to write them to the NVM. application to write them to the NVM.
Please note that the both the application and the image loader are tailored towards usage
with the [bootloader provided by this repository](https://egit.irs.uni-stuttgart.de/rust/va416xx-rs/src/branch/main/bootloader).
The software can quickly be adapted to interface with a real primary on-board software instead of The software can quickly be adapted to interface with a real primary on-board software instead of
the Python script provided here to upload images because it uses a low-level CCSDS based packet the Python script provided here to upload images because it uses a low-level CCSDS based packet
interface. interface.
## Using the Python image loader ## Using the Python image loader
The Python image loader communicates with the Rust flashload application using a dedicated serial
port with a baudrate of 115200.
It is recommended to run the script in a dedicated virtual environment. For example, on UNIX It is recommended to run the script in a dedicated virtual environment. For example, on UNIX
systems you can use `python3 -m venv venv` and then `source venv/bin/activate` to create systems you can use `python3 -m venv venv` and then `source venv/bin/activate` to create
and activate a virtual environment. and activate a virtual environment.

View File

@ -1,6 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from typing import List, Tuple
from spacepackets.ecss.defs import PusService from spacepackets.ecss.defs import PusService
from spacepackets.ecss.tm import PusTm from spacepackets.ecss.tm import PusTm
from tmtccmd.com import ComInterface
import toml import toml
import struct import struct
import logging import logging
@ -21,20 +23,27 @@ from elftools.elf.elffile import ELFFile
BAUD_RATE = 115200 BAUD_RATE = 115200
BOOTLOADER_START_ADDR = 0x0 BOOTLOADER_START_ADDR = 0x0
BOOTLOADER_END_ADDR = 0x4000 BOOTLOADER_END_ADDR = 0x4000
BOOTLOADER_CRC_ADDR = 0x3FFC BOOTLOADER_CRC_ADDR = BOOTLOADER_END_ADDR - 4
BOOTLOADER_MAX_SIZE = BOOTLOADER_END_ADDR - BOOTLOADER_START_ADDR - 4
APP_A_START_ADDR = 0x4000 APP_A_START_ADDR = 0x4000
APP_A_END_ADDR = 0x22000 APP_A_END_ADDR = 0x22000
# The actual size of the image which is relevant for CRC calculation. # The actual size of the image which is relevant for CRC calculation.
APP_A_SIZE_ADDR = 0x21FF8 APP_A_SIZE_ADDR = APP_A_END_ADDR - 8
APP_A_CRC_ADDR = 0x21FFC APP_A_CRC_ADDR = APP_A_END_ADDR - 4
APP_A_MAX_SIZE = APP_A_END_ADDR - APP_A_START_ADDR - 8
APP_B_START_ADDR = 0x22000 APP_B_START_ADDR = 0x22000
APP_B_END_ADDR = 0x40000 APP_B_END_ADDR = 0x40000
# The actual size of the image which is relevant for CRC calculation. # The actual size of the image which is relevant for CRC calculation.
APP_B_SIZE_ADDR = 0x3FFF8 APP_B_SIZE_ADDR = APP_B_END_ADDR - 8
APP_B_CRC_ADDR = 0x3FFFC APP_B_CRC_ADDR = APP_B_END_ADDR - 4
APP_IMG_SZ = 0x1E000 APP_B_MAX_SIZE = APP_A_END_ADDR - APP_A_START_ADDR - 8
APP_IMG_SZ = (APP_B_END_ADDR - APP_A_START_ADDR) // 2
CHUNK_SIZE = 896 CHUNK_SIZE = 896
@ -52,6 +61,7 @@ class ActionId(enum.IntEnum):
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
SEQ_PROVIDER = SeqCountProvider(bit_width=14)
@dataclasses.dataclass @dataclasses.dataclass
@ -62,7 +72,174 @@ class LoadableSegment:
data: bytes data: bytes
SEQ_PROVIDER = SeqCountProvider(bit_width=14) class Target(enum.Enum):
BOOTLOADER = 0
APP_A = 1
APP_B = 2
class ImageLoader:
def __init__(self, com_if: ComInterface, verificator: PusVerificator) -> None:
self.com_if = com_if
self.verificator = verificator
def handle_ping_cmd(self):
_LOGGER.info("Sending ping command")
ping_tc = PusTc(
apid=0x00,
service=PusService.S17_TEST,
subservice=1,
seq_count=SEQ_PROVIDER.get_and_increment(),
app_data=bytes(PING_PAYLOAD_SIZE),
)
self.verificator.add_tc(ping_tc)
self.com_if.send(bytes(ping_tc.pack()))
data_available = self.com_if.data_available(0.4)
if not data_available:
_LOGGER.warning("no ping reply received")
for reply in self.com_if.receive():
result = self.verificator.add_tm(
Service1Tm.from_tm(PusTm.unpack(reply, 0), UnpackParams(0))
)
if result is not None and result.completed:
_LOGGER.info("received ping completion reply")
def handle_corruption_cmd(self, target: Target):
if target == Target.BOOTLOADER:
_LOGGER.error("can not corrupt bootloader")
if target == Target.APP_A:
self.send_tc(
PusTc(
apid=0,
service=ACTION_SERVICE,
subservice=ActionId.CORRUPT_APP_A,
),
)
if target == Target.APP_B:
self.send_tc(
PusTc(
apid=0,
service=ACTION_SERVICE,
subservice=ActionId.CORRUPT_APP_B,
),
)
def handle_flash_cmd(self, target: Target, file_path: Path) -> int:
loadable_segments = []
_LOGGER.info("Parsing ELF file for loadable sections")
total_size = 0
loadable_segments, total_size = create_loadable_segments(target, file_path)
segments_info_str(target, loadable_segments, total_size, file_path)
result = self._perform_flashing_algorithm(loadable_segments)
if result != 0:
return result
self._crc_and_app_size_postprocessing(target, total_size, loadable_segments)
return 0
def _perform_flashing_algorithm(
self,
loadable_segments: List[LoadableSegment],
) -> int:
# Perform the flashing algorithm.
for segment in loadable_segments:
segment_end = segment.offset + segment.size
current_addr = segment.offset
pos_in_segment = 0
while pos_in_segment < segment.size:
next_chunk_size = min(segment_end - current_addr, CHUNK_SIZE)
data = segment.data[pos_in_segment : pos_in_segment + next_chunk_size]
next_packet = pack_memory_write_command(current_addr, data)
_LOGGER.info(
f"Sending memory write command for address {current_addr:#08x} and data with "
f"length {len(data)}"
)
self.verificator.add_tc(next_packet)
self.com_if.send(bytes(next_packet.pack()))
current_addr += next_chunk_size
pos_in_segment += next_chunk_size
start_time = time.time()
while True:
if time.time() - start_time > 1.0:
_LOGGER.error("Timeout while waiting for reply")
return -1
data_available = self.com_if.data_available(0.1)
done = False
if not data_available:
continue
replies = self.com_if.receive()
for reply in replies:
tm = PusTm.unpack(reply, 0)
if tm.service != 1:
continue
service_1_tm = Service1Tm.from_tm(tm, UnpackParams(0))
check_result = self.verificator.add_tm(service_1_tm)
# We could send after we have received the step reply, but that can
# somehow lead to overrun errors. I think it's okay to do it like
# this as long as the flash loader only uses polling..
if (
check_result is not None
and check_result.status.completed == StatusField.SUCCESS
):
done = True
# This is an optimized variant, but I think the small delay is not an issue.
"""
if (
check_result is not None
and check_result.status.step == StatusField.SUCCESS
and len(check_result.status.step_list) == 1
):
done = True
"""
self.verificator.remove_completed_entries()
if done:
break
return 0
def _crc_and_app_size_postprocessing(
self,
target: Target,
total_size: int,
loadable_segments: List[LoadableSegment],
):
if target == Target.BOOTLOADER:
_LOGGER.info("Blanking the bootloader checksum")
# Blank the checksum. For the bootloader, the bootloader will calculate the
# checksum itself on the initial run.
checksum_write_packet = pack_memory_write_command(
BOOTLOADER_CRC_ADDR, bytes([0x00, 0x00, 0x00, 0x00])
)
self.send_tc(checksum_write_packet)
else:
crc_addr = None
size_addr = None
if target == Target.APP_A:
crc_addr = APP_A_CRC_ADDR
size_addr = APP_A_SIZE_ADDR
elif target == Target.APP_B:
crc_addr = APP_B_CRC_ADDR
size_addr = APP_B_SIZE_ADDR
assert crc_addr is not None
assert size_addr is not None
_LOGGER.info(f"Writing app size {total_size} at address {size_addr:#08x}")
size_write_packet = pack_memory_write_command(
size_addr, struct.pack("!I", total_size)
)
self.com_if.send(bytes(size_write_packet.pack()))
time.sleep(0.2)
crc_calc = PredefinedCrc("crc-32")
for segment in loadable_segments:
crc_calc.update(segment.data)
checksum = crc_calc.digest()
_LOGGER.info(
f"Writing checksum 0x[{checksum.hex(sep=',')}] at address {crc_addr:#08x}"
)
self.send_tc(pack_memory_write_command(crc_addr, checksum))
def send_tc(self, tc: PusTc):
self.com_if.send(bytes(tc.pack()))
def main() -> int: def main() -> int:
@ -102,213 +279,134 @@ def main() -> int:
verificator = PusVerificator() verificator = PusVerificator()
com_if = SerialCobsComIF(serial_cfg) com_if = SerialCobsComIF(serial_cfg)
com_if.open() com_if.open()
target = None
if args.target == "bl":
target = Target.BOOTLOADER
elif args.target == "a":
target = Target.APP_A
elif args.target == "b":
target = Target.APP_B
image_loader = ImageLoader(com_if, verificator)
file_path = None file_path = None
result = -1
if args.ping: if args.ping:
_LOGGER.info("Sending ping command") image_loader.handle_ping_cmd()
ping_tc = PusTc( com_if.close()
apid=0x00, return 0
service=PusService.S17_TEST, if target:
subservice=1,
seq_count=SEQ_PROVIDER.get_and_increment(),
app_data=bytes(PING_PAYLOAD_SIZE),
)
verificator.add_tc(ping_tc)
com_if.send(ping_tc.pack())
data_available = com_if.data_available(0.4)
if not data_available:
_LOGGER.warning("no ping reply received")
for reply in com_if.receive():
result = verificator.add_tm(
Service1Tm.from_tm(PusTm.unpack(reply, 0), UnpackParams(0))
)
if result is not None and result.completed:
_LOGGER.info("received ping completion reply")
if not args.target:
return 0
if args.target:
if not args.corrupt: if not args.corrupt:
if not args.path: if not args.path:
_LOGGER.error("App Path needs to be specified for the flash process") _LOGGER.error("App Path needs to be specified for the flash process")
return -1
file_path = Path(args.path) file_path = Path(args.path)
if not file_path.exists(): if not file_path.exists():
_LOGGER.error("File does not exist") _LOGGER.error("File does not exist")
return -1
if args.corrupt: if args.corrupt:
if not args.target: if not target:
_LOGGER.error("target for corruption command required") _LOGGER.error("target for corruption command required")
com_if.close()
return -1 return -1
if args.target == "bl": image_loader.handle_corruption_cmd(target)
_LOGGER.error("can not corrupt bootloader")
if args.target == "a":
packet = PusTc(
apid=0,
service=ACTION_SERVICE,
subservice=ActionId.CORRUPT_APP_A,
)
com_if.send(packet.pack())
if args.target == "b":
packet = PusTc(
apid=0,
service=ACTION_SERVICE,
subservice=ActionId.CORRUPT_APP_B,
)
com_if.send(packet.pack())
else: else:
assert file_path is not None assert file_path is not None
loadable_segments = [] assert target is not None
_LOGGER.info("Parsing ELF file for loadable sections") result = image_loader.handle_flash_cmd(target, file_path)
total_size = 0
with open(file_path, "rb") as app_file:
elf_file = ELFFile(app_file)
for (idx, segment) in enumerate(elf_file.iter_segments("PT_LOAD")):
if segment.header.p_filesz == 0:
continue
# Basic validity checks of the base addresses.
if idx == 0:
if (
args.target == "bl"
and segment.header.p_paddr != BOOTLOADER_START_ADDR
):
raise ValueError(
f"detected possibly invalid start address {segment.header.p_paddr:#08x} for "
f"bootloader, expected {BOOTLOADER_START_ADDR}"
)
if (
args.target == "a"
and segment.header.p_paddr != APP_A_START_ADDR
):
raise ValueError(
f"detected possibly invalid start address {segment.header.p_paddr:#08x} for "
f"App A, expected {APP_A_START_ADDR}"
)
if (
args.target == "b"
and segment.header.p_paddr != APP_B_START_ADDR
):
raise ValueError(
f"detected possibly invalid start address {segment.header.p_paddr:#08x} for "
f"App B, expected {APP_B_START_ADDR}"
)
name = None
for section in elf_file.iter_sections():
if (
section.header.sh_offset == segment.header.p_offset
and section.header.sh_size > 0
):
name = section.name
if name is None:
_LOGGER.warning("no fitting section found for segment")
continue
# print(f"Segment Addr: {segment.header.p_paddr}")
# print(f"Segment Offset: {segment.header.p_offset}")
# print(f"Segment Filesize: {segment.header.p_filesz}")
loadable_segments.append(
LoadableSegment(
name=name,
offset=segment.header.p_paddr,
size=segment.header.p_filesz,
data=segment.data(),
)
)
total_size += segment.header.p_filesz
context_str = None
if args.target == "bl":
context_str = "Bootloader"
elif args.target == "a":
context_str = "App Slot A"
elif args.target == "b":
context_str = "App Slot B"
_LOGGER.info(
f"Flashing {context_str} with image {file_path} (size {total_size})"
)
for idx, segment in enumerate(loadable_segments):
_LOGGER.info(
f"Loadable section {idx} {segment.name} with offset {segment.offset:#08x} and size {segment.size}"
)
for segment in loadable_segments:
segment_end = segment.offset + segment.size
current_addr = segment.offset
pos_in_segment = 0
while pos_in_segment < segment.size:
next_chunk_size = min(segment_end - current_addr, CHUNK_SIZE)
data = segment.data[
pos_in_segment : pos_in_segment + next_chunk_size
]
next_packet = pack_memory_write_command(current_addr, data)
_LOGGER.info(
f"Sending memory write command for address {current_addr:#08x} and data with "
f"length {len(data)}"
)
verificator.add_tc(next_packet)
com_if.send(next_packet.pack())
current_addr += next_chunk_size
pos_in_segment += next_chunk_size
while True:
data_available = com_if.data_available(0.1)
done = False
if not data_available:
continue
replies = com_if.receive()
for reply in replies:
tm = PusTm.unpack(reply, 0)
if tm.service != 1:
continue
service_1_tm = Service1Tm.from_tm(tm, UnpackParams(0))
check_result = verificator.add_tm(service_1_tm)
# We could send after we have received the step reply, but that can
# somehow lead to overrun errors. I think it's okay to do it like
# this as long as the flash loader only uses polling..
if (
check_result is not None
and check_result.status.completed == StatusField.SUCCESS
):
done = True
# Still keep a small delay
# time.sleep(0.05)
verificator.remove_completed_entries()
if done:
break
if args.target == "bl":
_LOGGER.info("Blanking the bootloader checksum")
# Blank the checksum. For the bootloader, the bootloader will calculate the
# checksum itself on the initial run.
checksum_write_packet = pack_memory_write_command(
BOOTLOADER_CRC_ADDR, bytes([0x00, 0x00, 0x00, 0x00])
)
com_if.send(checksum_write_packet.pack())
else:
crc_addr = None
size_addr = None
if args.target == "a":
crc_addr = APP_A_CRC_ADDR
size_addr = APP_A_SIZE_ADDR
elif args.target == "b":
crc_addr = APP_B_CRC_ADDR
size_addr = APP_B_SIZE_ADDR
assert crc_addr is not None
assert size_addr is not None
_LOGGER.info(
f"Writing app size {total_size} at address {size_addr:#08x}"
)
size_write_packet = pack_memory_write_command(
size_addr, struct.pack("!I", total_size)
)
com_if.send(size_write_packet.pack())
time.sleep(0.2)
crc_calc = PredefinedCrc("crc-32")
for segment in loadable_segments:
crc_calc.update(segment.data)
checksum = crc_calc.digest()
_LOGGER.info(
f"Writing checksum 0x[{checksum.hex(sep=',')}] at address {crc_addr:#08x}"
)
checksum_write_packet = pack_memory_write_command(crc_addr, checksum)
com_if.send(checksum_write_packet.pack())
com_if.close() com_if.close()
return 0 return result
def create_loadable_segments(
target: Target, file_path: Path
) -> Tuple[List[LoadableSegment], int]:
loadable_segments = []
total_size = 0
with open(file_path, "rb") as app_file:
elf_file = ELFFile(app_file)
for idx, segment in enumerate(elf_file.iter_segments("PT_LOAD")):
if segment.header.p_filesz == 0:
continue
# Basic validity checks of the base addresses.
if idx == 0:
if (
target == Target.BOOTLOADER
and segment.header.p_paddr != BOOTLOADER_START_ADDR
):
raise ValueError(
f"detected possibly invalid start address {segment.header.p_paddr:#08x} for "
f"bootloader, expected {BOOTLOADER_START_ADDR}"
)
if (
target == Target.APP_A
and segment.header.p_paddr != APP_A_START_ADDR
):
raise ValueError(
f"detected possibly invalid start address {segment.header.p_paddr:#08x} for "
f"App A, expected {APP_A_START_ADDR}"
)
if (
target == Target.APP_B
and segment.header.p_paddr != APP_B_START_ADDR
):
raise ValueError(
f"detected possibly invalid start address {segment.header.p_paddr:#08x} for "
f"App B, expected {APP_B_START_ADDR}"
)
name = None
for section in elf_file.iter_sections():
if (
section.header.sh_offset == segment.header.p_offset
and section.header.sh_size > 0
):
name = section.name
if name is None:
_LOGGER.warning("no fitting section found for segment")
continue
# print(f"Segment Addr: {segment.header.p_paddr}")
# print(f"Segment Offset: {segment.header.p_offset}")
# print(f"Segment Filesize: {segment.header.p_filesz}")
loadable_segments.append(
LoadableSegment(
name=name,
offset=segment.header.p_paddr,
size=segment.header.p_filesz,
data=segment.data(),
)
)
total_size += segment.header.p_filesz
return loadable_segments, total_size
def segments_info_str(
target: Target,
loadable_segments: List[LoadableSegment],
total_size: int,
file_path: Path,
):
# Set context string and perform basic sanity checks.
if target == Target.BOOTLOADER:
if total_size > BOOTLOADER_MAX_SIZE:
_LOGGER.error(
f"provided bootloader app larger than allowed {total_size} bytes"
)
return -1
context_str = "Bootloader"
elif target == Target.APP_A:
if total_size > APP_A_MAX_SIZE:
_LOGGER.error(f"provided App A larger than allowed {total_size} bytes")
return -1
context_str = "App Slot A"
elif target == Target.APP_B:
if total_size > APP_B_MAX_SIZE:
_LOGGER.error(f"provided App B larger than allowed {total_size} bytes")
return -1
context_str = "App Slot B"
_LOGGER.info(f"Flashing {context_str} with image {file_path} (size {total_size})")
for idx, segment in enumerate(loadable_segments):
_LOGGER.info(
f"Loadable section {idx} {segment.name} with offset {segment.offset:#08x} and "
f"size {segment.size}"
)
def pack_memory_write_command(addr: int, data: bytes) -> PusTc: def pack_memory_write_command(addr: int, data: bytes) -> PusTc:
@ -324,7 +422,7 @@ def pack_memory_write_command(addr: int, data: bytes) -> PusTc:
service=MEMORY_SERVICE, service=MEMORY_SERVICE,
subservice=RAW_MEMORY_WRITE_SUBSERVICE, subservice=RAW_MEMORY_WRITE_SUBSERVICE,
seq_count=SEQ_PROVIDER.get_and_increment(), seq_count=SEQ_PROVIDER.get_and_increment(),
app_data=app_data, app_data=bytes(app_data),
) )

View File

@ -7,11 +7,11 @@ edition = "2021"
[dependencies] [dependencies]
cortex-m-rt = "0.7" cortex-m-rt = "0.7"
va416xx-hal = { path = "../../va416xx-hal" }
panic-rtt-target = { version = "0.1.3" } panic-rtt-target = { version = "0.1.3" }
rtt-target = { version = "0.5" } rtt-target = { version = "0.5" }
cortex-m = { version = "0.7", features = ["critical-section-single-core"] } cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
embedded-hal = "1" embedded-hal = "1"
va416xx-hal = { path = "../../va416xx-hal", features = ["va41630"] }
[profile.dev] [profile.dev]
codegen-units = 1 codegen-units = 1

View File

@ -7,11 +7,11 @@ edition = "2021"
[dependencies] [dependencies]
cortex-m-rt = "0.7" cortex-m-rt = "0.7"
va416xx-hal = { path = "../../va416xx-hal" }
panic-rtt-target = { version = "0.1.3" } panic-rtt-target = { version = "0.1.3" }
rtt-target = { version = "0.5" } rtt-target = { version = "0.5" }
cortex-m = { version = "0.7", features = ["critical-section-single-core"] } cortex-m = { version = "0.7", features = ["critical-section-single-core"] }
embedded-hal = "1" embedded-hal = "1"
va416xx-hal = { path = "../../va416xx-hal", features = ["va41630"] }
[profile.dev] [profile.dev]
codegen-units = 1 codegen-units = 1

View File

@ -109,6 +109,7 @@ mod app {
tc::PusTcReader, tm::PusTmCreator, EcssEnumU8, PusPacket, WritablePusPacket, tc::PusTcReader, tm::PusTmCreator, EcssEnumU8, PusPacket, WritablePusPacket,
}; };
use va416xx_hal::irq_router::enable_and_init_irq_router; use va416xx_hal::irq_router::enable_and_init_irq_router;
use va416xx_hal::uart::IrqContextTimeoutOrMaxSize;
use va416xx_hal::{ use va416xx_hal::{
clock::ClkgenExt, clock::ClkgenExt,
edac, edac,
@ -132,6 +133,7 @@ mod app {
struct Local { struct Local {
uart_rx: uart::RxWithIrq<pac::Uart0>, uart_rx: uart::RxWithIrq<pac::Uart0>,
uart_tx: uart::Tx<pac::Uart0>, uart_tx: uart::Tx<pac::Uart0>,
rx_context: IrqContextTimeoutOrMaxSize,
rom_spi: Option<pac::Spi3>, rom_spi: Option<pac::Spi3>,
// We handle all TM in one task. // We handle all TM in one task.
tm_cons: DataConsumer<BUF_RB_SIZE_TM, SIZES_RB_SIZE_TM>, tm_cons: DataConsumer<BUF_RB_SIZE_TM, SIZES_RB_SIZE_TM>,
@ -167,9 +169,9 @@ mod app {
enable_and_init_irq_router(&mut cx.device.sysconfig, &cx.device.irq_router); enable_and_init_irq_router(&mut cx.device.sysconfig, &cx.device.irq_router);
setup_edac(&mut cx.device.sysconfig); setup_edac(&mut cx.device.sysconfig);
let gpiob = PinsG::new(&mut cx.device.sysconfig, cx.device.portg); let gpiog = PinsG::new(&mut cx.device.sysconfig, cx.device.portg);
let tx = gpiob.pg0.into_funsel_1(); let tx = gpiog.pg0.into_funsel_1();
let rx = gpiob.pg1.into_funsel_1(); let rx = gpiog.pg1.into_funsel_1();
let uart0 = Uart::new( let uart0 = Uart::new(
cx.device.uart0, cx.device.uart0,
@ -178,7 +180,7 @@ mod app {
&mut cx.device.sysconfig, &mut cx.device.sysconfig,
&clocks, &clocks,
); );
let (tx, mut rx, _) = uart0.split_with_irq(); let (tx, rx) = uart0.split();
let verif_reporter = VerificationReportCreator::new(0).unwrap(); let verif_reporter = VerificationReportCreator::new(0).unwrap();
@ -191,7 +193,9 @@ mod app {
Mono::start(cx.core.SYST, clocks.sysclk().raw()); Mono::start(cx.core.SYST, clocks.sysclk().raw());
CLOCKS.set(clocks).unwrap(); CLOCKS.set(clocks).unwrap();
rx.read_fixed_len_using_irq(MAX_TC_FRAME_SIZE, true) let mut rx = rx.into_rx_with_irq();
let mut rx_context = IrqContextTimeoutOrMaxSize::new(MAX_TC_FRAME_SIZE);
rx.read_fixed_len_or_timeout_based_using_irq(&mut rx_context)
.expect("initiating UART RX failed"); .expect("initiating UART RX failed");
pus_tc_handler::spawn().unwrap(); pus_tc_handler::spawn().unwrap();
pus_tm_tx_handler::spawn().unwrap(); pus_tm_tx_handler::spawn().unwrap();
@ -205,6 +209,7 @@ mod app {
Local { Local {
uart_rx: rx, uart_rx: rx,
uart_tx: tx, uart_tx: tx,
rx_context,
rom_spi: Some(cx.device.spi3), rom_spi: Some(cx.device.spi3),
tm_cons: DataConsumer { tm_cons: DataConsumer {
buf_cons: buf_cons_tm, buf_cons: buf_cons_tm,
@ -231,20 +236,26 @@ mod app {
} }
} }
// This is the interrupt handler to read all bytes received on the UART0.
#[task( #[task(
binds = UART0_RX, binds = UART0_RX,
local = [ local = [
cnt: u32 = 0, cnt: u32 = 0,
rx_buf: [u8; MAX_TC_FRAME_SIZE] = [0; MAX_TC_FRAME_SIZE], rx_buf: [u8; MAX_TC_FRAME_SIZE] = [0; MAX_TC_FRAME_SIZE],
rx_context,
uart_rx, uart_rx,
tc_prod tc_prod
], ],
)] )]
fn uart_rx_irq(cx: uart_rx_irq::Context) { fn uart_rx_irq(cx: uart_rx_irq::Context) {
match cx.local.uart_rx.irq_handler(cx.local.rx_buf) { match cx
.local
.uart_rx
.irq_handler_max_size_or_timeout_based(cx.local.rx_context, cx.local.rx_buf)
{
Ok(result) => { Ok(result) => {
if RX_DEBUGGING { if RX_DEBUGGING {
log::debug!("RX Info: {:?}", cx.local.uart_rx.irq_info()); log::debug!("RX Info: {:?}", cx.local.rx_context);
log::debug!("RX Result: {:?}", result); log::debug!("RX Result: {:?}", result);
} }
if result.complete() { if result.complete() {
@ -279,11 +290,11 @@ mod app {
// Initiate next transfer. // Initiate next transfer.
cx.local cx.local
.uart_rx .uart_rx
.read_fixed_len_using_irq(MAX_TC_FRAME_SIZE, true) .read_fixed_len_or_timeout_based_using_irq(cx.local.rx_context)
.expect("read operation failed"); .expect("read operation failed");
} }
if result.error() { if result.has_errors() {
log::warn!("UART error: {:?}", result.error()); log::warn!("UART error: {:?}", result.errors.unwrap());
} }
} }
Err(e) => { Err(e) => {
@ -438,7 +449,12 @@ mod app {
return; return;
} }
let data = &app_data[10..10 + data_len as usize]; let data = &app_data[10..10 + data_len as usize];
log::info!("writing {} bytes at offset {} to NVM", data_len, offset); log::info!(
target: "TC Handler",
"writing {} bytes at offset {} to NVM",
data_len,
offset
);
// Safety: We only use this for NVM handling and we only do NVM // Safety: We only use this for NVM handling and we only do NVM
// handling here. // handling here.
let mut sys_cfg = unsafe { pac::Sysconfig::steal() }; let mut sys_cfg = unsafe { pac::Sysconfig::steal() };
@ -455,7 +471,9 @@ mod app {
.completion_success(cx.local.src_data_buf, started_token, 0, 0, &[]) .completion_success(cx.local.src_data_buf, started_token, 0, 0, &[])
.expect("completion success failed"); .expect("completion success failed");
write_and_send(&tm); write_and_send(&tm);
log::info!("NVM operation done"); log::info!(
target: "TC Handler",
"NVM operation done");
} }
} }
} }

View File

@ -1,7 +1,7 @@
/* Special linker script for application slot A with an offset at address 0x4000 */ /* Special linker script for application slot A with an offset at address 0x4000 */
MEMORY MEMORY
{ {
FLASH : ORIGIN = 0x00004000, LENGTH = 256K FLASH : ORIGIN = 0x00004000, LENGTH = 0x1DFF8
/* RAM is a mandatory region. This RAM refers to the SRAM_0 */ /* RAM is a mandatory region. This RAM refers to the SRAM_0 */
RAM : ORIGIN = 0x1FFF8000, LENGTH = 32K RAM : ORIGIN = 0x1FFF8000, LENGTH = 32K
SRAM_1 : ORIGIN = 0x20000000, LENGTH = 32K SRAM_1 : ORIGIN = 0x20000000, LENGTH = 32K

View File

@ -1,7 +1,7 @@
/* Special linker script for application slot B with an offset at address 0x22000 */ /* Special linker script for application slot B with an offset at address 0x22000 */
MEMORY MEMORY
{ {
FLASH : ORIGIN = 0x00022000, LENGTH = 256K FLASH : ORIGIN = 0x00022000, LENGTH = 0x1DFF8
/* RAM is a mandatory region. This RAM refers to the SRAM_0 */ /* RAM is a mandatory region. This RAM refers to the SRAM_0 */
RAM : ORIGIN = 0x1FFF8000, LENGTH = 32K RAM : ORIGIN = 0x1FFF8000, LENGTH = 32K
SRAM_1 : ORIGIN = 0x20000000, LENGTH = 32K SRAM_1 : ORIGIN = 0x20000000, LENGTH = 32K

View File

@ -8,6 +8,25 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
# [unreleased] # [unreleased]
# [v0.3.0] 2024-30-09
## Changed
- Improve and fix SPI abstractions. Add new low level interface. The primary SPI constructor now
only expects a configuration structure and the transfer configuration needs to be applied in a
separate step.
- Added an additional way to read the UART RX with IRQs. The module documentation provides
more information.
- Made the UART with IRQ API more flexible for future additions.
- Improved UART API result and error handling, added low level API to read from and write
to the FIFO directly
## Fixed
- Fixes for SPI peripheral: Flush implementation was incorrect and should now flush properly.
- Fixes for SPI example
- Fixes for RTIC example
# [v0.2.0] 2024-09-18 # [v0.2.0] 2024-09-18
- Documentation improvements - Documentation improvements

View File

@ -1,6 +1,6 @@
[package] [package]
name = "va416xx-hal" name = "va416xx-hal"
version = "0.2.0" version = "0.3.0"
authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"] authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"]
edition = "2021" edition = "2021"
description = "HAL for the Vorago VA416xx family of MCUs" description = "HAL for the Vorago VA416xx family of MCUs"

View File

@ -113,14 +113,6 @@ pub(super) unsafe trait RegisterInterface {
/// this type. /// this type.
fn id(&self) -> DynPinId; fn id(&self) -> DynPinId;
const PORTA: *const PortRegisterBlock = Porta::ptr();
const PORTB: *const PortRegisterBlock = Portb::ptr();
const PORTC: *const PortRegisterBlock = Portc::ptr();
const PORTD: *const PortRegisterBlock = Portd::ptr();
const PORTE: *const PortRegisterBlock = Porte::ptr();
const PORTF: *const PortRegisterBlock = Portf::ptr();
const PORTG: *const PortRegisterBlock = Portg::ptr();
/// Change the pin mode /// Change the pin mode
#[inline] #[inline]
fn change_mode(&mut self, mode: DynPinMode) { fn change_mode(&mut self, mode: DynPinMode) {
@ -155,13 +147,13 @@ pub(super) unsafe trait RegisterInterface {
#[inline] #[inline]
fn port_reg(&self) -> &PortRegisterBlock { fn port_reg(&self) -> &PortRegisterBlock {
match self.id().group { match self.id().group {
DynGroup::A => unsafe { &(*Self::PORTA) }, DynGroup::A => unsafe { &(*Porta::ptr()) },
DynGroup::B => unsafe { &(*Self::PORTB) }, DynGroup::B => unsafe { &(*Portb::ptr()) },
DynGroup::C => unsafe { &(*Self::PORTC) }, DynGroup::C => unsafe { &(*Portc::ptr()) },
DynGroup::D => unsafe { &(*Self::PORTD) }, DynGroup::D => unsafe { &(*Portd::ptr()) },
DynGroup::E => unsafe { &(*Self::PORTE) }, DynGroup::E => unsafe { &(*Porte::ptr()) },
DynGroup::F => unsafe { &(*Self::PORTF) }, DynGroup::F => unsafe { &(*Portf::ptr()) },
DynGroup::G => unsafe { &(*Self::PORTG) }, DynGroup::G => unsafe { &(*Portg::ptr()) },
} }
} }

View File

@ -9,8 +9,10 @@ use core::convert::Infallible;
use core::marker::PhantomData; use core::marker::PhantomData;
use crate::pac; use crate::pac;
use crate::time::Hertz;
pub use crate::timer::ValidTim;
use crate::timer::{TimAndPinRegister, TimDynRegister, TimPin, TimRegInterface, ValidTimAndPin};
use crate::{clock::Clocks, gpio::DynPinId}; use crate::{clock::Clocks, gpio::DynPinId};
pub use crate::{gpio::PinId, time::Hertz, timer::*};
const DUTY_MAX: u16 = u16::MAX; const DUTY_MAX: u16 = u16::MAX;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -8,6 +8,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
## [unreleased] ## [unreleased]
## [v0.3.0] 2025-02-13
- Re-generated PAC with `svd2rust` v0.35.0
## [v0.2.0] 2024-06-25 ## [v0.2.0] 2024-06-25
- Re-Generated PAC with `svd2rust` v0.33.3 - Re-Generated PAC with `svd2rust` v0.33.3

View File

@ -1,6 +1,6 @@
[package] [package]
name = "va416xx" name = "va416xx"
version = "0.2.0" version = "0.3.0"
authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"] authors = ["Robin Mueller <muellerr@irs.uni-stuttgart.de>"]
edition = "2021" edition = "2021"
description = "PAC for the Vorago VA416xx family of MCUs" description = "PAC for the Vorago VA416xx family of MCUs"

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# Use installed tool by default # Use installed tool by default
svd2rust_bin="svd2rust" svd2rust_bin="svd2rust"

View File

@ -65,61 +65,61 @@ impl RegisterBlock {
&self.perid &self.perid
} }
} }
#[doc = "CTRL (rw) register accessor: Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ctrl::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 [`ctrl::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@ctrl`] #[doc = "CTRL (rw) register accessor: Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctrl`]
module"] module"]
#[doc(alias = "CTRL")] #[doc(alias = "CTRL")]
pub type Ctrl = crate::Reg<ctrl::CtrlSpec>; pub type Ctrl = crate::Reg<ctrl::CtrlSpec>;
#[doc = "Control Register"] #[doc = "Control Register"]
pub mod ctrl; pub mod ctrl;
#[doc = "FIFO_DATA (r) register accessor: FIFO data\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`fifo_data::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@fifo_data`] #[doc = "FIFO_DATA (r) register accessor: FIFO data\n\nYou can [`read`](crate::Reg::read) this register and get [`fifo_data::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@fifo_data`]
module"] module"]
#[doc(alias = "FIFO_DATA")] #[doc(alias = "FIFO_DATA")]
pub type FifoData = crate::Reg<fifo_data::FifoDataSpec>; pub type FifoData = crate::Reg<fifo_data::FifoDataSpec>;
#[doc = "FIFO data"] #[doc = "FIFO data"]
pub mod fifo_data; pub mod fifo_data;
#[doc = "STATUS (r) register accessor: Status\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`status::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@status`] #[doc = "STATUS (r) register accessor: Status\n\nYou can [`read`](crate::Reg::read) this register and get [`status::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@status`]
module"] module"]
#[doc(alias = "STATUS")] #[doc(alias = "STATUS")]
pub type Status = crate::Reg<status::StatusSpec>; pub type Status = crate::Reg<status::StatusSpec>;
#[doc = "Status"] #[doc = "Status"]
pub mod status; pub mod status;
#[doc = "IRQ_ENB (rw) register accessor: Interrupt Enable\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`irq_enb::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 [`irq_enb::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@irq_enb`] #[doc = "IRQ_ENB (rw) register accessor: Interrupt Enable\n\nYou can [`read`](crate::Reg::read) this register and get [`irq_enb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`irq_enb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq_enb`]
module"] module"]
#[doc(alias = "IRQ_ENB")] #[doc(alias = "IRQ_ENB")]
pub type IrqEnb = crate::Reg<irq_enb::IrqEnbSpec>; pub type IrqEnb = crate::Reg<irq_enb::IrqEnbSpec>;
#[doc = "Interrupt Enable"] #[doc = "Interrupt Enable"]
pub mod irq_enb; pub mod irq_enb;
#[doc = "IRQ_RAW (r) register accessor: Raw Interrupt Status\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`irq_raw::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq_raw`] #[doc = "IRQ_RAW (r) register accessor: Raw Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`irq_raw::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq_raw`]
module"] module"]
#[doc(alias = "IRQ_RAW")] #[doc(alias = "IRQ_RAW")]
pub type IrqRaw = crate::Reg<irq_raw::IrqRawSpec>; pub type IrqRaw = crate::Reg<irq_raw::IrqRawSpec>;
#[doc = "Raw Interrupt Status"] #[doc = "Raw Interrupt Status"]
pub mod irq_raw; pub mod irq_raw;
#[doc = "IRQ_END (r) register accessor: Enabled Interrupt Status\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`irq_end::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq_end`] #[doc = "IRQ_END (r) register accessor: Enabled Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`irq_end::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq_end`]
module"] module"]
#[doc(alias = "IRQ_END")] #[doc(alias = "IRQ_END")]
pub type IrqEnd = crate::Reg<irq_end::IrqEndSpec>; pub type IrqEnd = crate::Reg<irq_end::IrqEndSpec>;
#[doc = "Enabled Interrupt Status"] #[doc = "Enabled Interrupt Status"]
pub mod irq_end; pub mod irq_end;
#[doc = "IRQ_CLR (w) register accessor: Clear Interrupt\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`irq_clr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq_clr`] #[doc = "IRQ_CLR (w) register accessor: Clear Interrupt\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`irq_clr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq_clr`]
module"] module"]
#[doc(alias = "IRQ_CLR")] #[doc(alias = "IRQ_CLR")]
pub type IrqClr = crate::Reg<irq_clr::IrqClrSpec>; pub type IrqClr = crate::Reg<irq_clr::IrqClrSpec>;
#[doc = "Clear Interrupt"] #[doc = "Clear Interrupt"]
pub mod irq_clr; pub mod irq_clr;
#[doc = "RXFIFOIRQTRG (rw) register accessor: Receive FIFO Interrupt Trigger Value\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rxfifoirqtrg::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 [`rxfifoirqtrg::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@rxfifoirqtrg`] #[doc = "RXFIFOIRQTRG (rw) register accessor: Receive FIFO Interrupt Trigger Value\n\nYou can [`read`](crate::Reg::read) this register and get [`rxfifoirqtrg::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rxfifoirqtrg::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rxfifoirqtrg`]
module"] module"]
#[doc(alias = "RXFIFOIRQTRG")] #[doc(alias = "RXFIFOIRQTRG")]
pub type Rxfifoirqtrg = crate::Reg<rxfifoirqtrg::RxfifoirqtrgSpec>; pub type Rxfifoirqtrg = crate::Reg<rxfifoirqtrg::RxfifoirqtrgSpec>;
#[doc = "Receive FIFO Interrupt Trigger Value"] #[doc = "Receive FIFO Interrupt Trigger Value"]
pub mod rxfifoirqtrg; pub mod rxfifoirqtrg;
#[doc = "FIFO_CLR (rw) register accessor: FIFO Clear\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`fifo_clr::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 [`fifo_clr::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@fifo_clr`] #[doc = "FIFO_CLR (rw) register accessor: FIFO Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`fifo_clr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`fifo_clr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@fifo_clr`]
module"] module"]
#[doc(alias = "FIFO_CLR")] #[doc(alias = "FIFO_CLR")]
pub type FifoClr = crate::Reg<fifo_clr::FifoClrSpec>; pub type FifoClr = crate::Reg<fifo_clr::FifoClrSpec>;
#[doc = "FIFO Clear"] #[doc = "FIFO Clear"]
pub mod fifo_clr; pub mod fifo_clr;
#[doc = "PERID (r) register accessor: Peripheral ID Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`perid::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@perid`] #[doc = "PERID (r) register accessor: Peripheral ID Register\n\nYou can [`read`](crate::Reg::read) this register and get [`perid::R`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@perid`]
module"] module"]
#[doc(alias = "PERID")] #[doc(alias = "PERID")]
pub type Perid = crate::Reg<perid::PeridSpec>; pub type Perid = crate::Reg<perid::PeridSpec>;

View File

@ -61,42 +61,36 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:15 - Enables the channel for data collection"] #[doc = "Bits 0:15 - Enables the channel for data collection"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn chan_en(&mut self) -> ChanEnW<CtrlSpec> { pub fn chan_en(&mut self) -> ChanEnW<CtrlSpec> {
ChanEnW::new(self, 0) ChanEnW::new(self, 0)
} }
#[doc = "Bit 16 - Enables the channel tag to be saved with the ADC data"] #[doc = "Bit 16 - Enables the channel tag to be saved with the ADC data"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn chan_tag_en(&mut self) -> ChanTagEnW<CtrlSpec> { pub fn chan_tag_en(&mut self) -> ChanTagEnW<CtrlSpec> {
ChanTagEnW::new(self, 16) ChanTagEnW::new(self, 16)
} }
#[doc = "Bit 17 - ADC data acquisition for all enabled channel"] #[doc = "Bit 17 - ADC data acquisition for all enabled channel"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn sweep_en(&mut self) -> SweepEnW<CtrlSpec> { pub fn sweep_en(&mut self) -> SweepEnW<CtrlSpec> {
SweepEnW::new(self, 17) SweepEnW::new(self, 17)
} }
#[doc = "Bit 18 - Allows the external trigger to start analog acquisition"] #[doc = "Bit 18 - Allows the external trigger to start analog acquisition"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ext_trig_en(&mut self) -> ExtTrigEnW<CtrlSpec> { pub fn ext_trig_en(&mut self) -> ExtTrigEnW<CtrlSpec> {
ExtTrigEnW::new(self, 18) ExtTrigEnW::new(self, 18)
} }
#[doc = "Bit 19 - Starts analog acquisition"] #[doc = "Bit 19 - Starts analog acquisition"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn manual_trig(&mut self) -> ManualTrigW<CtrlSpec> { pub fn manual_trig(&mut self) -> ManualTrigW<CtrlSpec> {
ManualTrigW::new(self, 19) ManualTrigW::new(self, 19)
} }
#[doc = "Bits 20:23 - Conversion count describes the number of conversions to be applied for triggers/sweeps. (N+1 conversions)"] #[doc = "Bits 20:23 - Conversion count describes the number of conversions to be applied for triggers/sweeps. (N+1 conversions)"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn conv_cnt(&mut self) -> ConvCntW<CtrlSpec> { pub fn conv_cnt(&mut self) -> ConvCntW<CtrlSpec> {
ConvCntW::new(self, 20) ConvCntW::new(self, 20)
} }
} }
#[doc = "Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ctrl::R`](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 [`ctrl::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctrl::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctrl::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CtrlSpec; pub struct CtrlSpec;
impl crate::RegisterSpec for CtrlSpec { impl crate::RegisterSpec for CtrlSpec {
type Ux = u32; type Ux = u32;

View File

@ -7,12 +7,11 @@ pub type FifoClrW<'a, REG> = crate::BitWriter<'a, REG>;
impl W { impl W {
#[doc = "Bit 0 - Clears the ADC FIFO. Always reads 0"] #[doc = "Bit 0 - Clears the ADC FIFO. Always reads 0"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn fifo_clr(&mut self) -> FifoClrW<FifoClrSpec> { pub fn fifo_clr(&mut self) -> FifoClrW<FifoClrSpec> {
FifoClrW::new(self, 0) FifoClrW::new(self, 0)
} }
} }
#[doc = "FIFO Clear\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`fifo_clr::R`](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 [`fifo_clr::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "FIFO Clear\n\nYou can [`read`](crate::Reg::read) this register and get [`fifo_clr::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`fifo_clr::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct FifoClrSpec; pub struct FifoClrSpec;
impl crate::RegisterSpec for FifoClrSpec { impl crate::RegisterSpec for FifoClrSpec {
type Ux = u32; type Ux = u32;

View File

@ -16,7 +16,7 @@ impl R {
ChanTagR::new(((self.bits >> 12) & 0x0f) as u8) ChanTagR::new(((self.bits >> 12) & 0x0f) as u8)
} }
} }
#[doc = "FIFO data\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`fifo_data::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "FIFO data\n\nYou can [`read`](crate::Reg::read) this register and get [`fifo_data::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct FifoDataSpec; pub struct FifoDataSpec;
impl crate::RegisterSpec for FifoDataSpec { impl crate::RegisterSpec for FifoDataSpec {
type Ux = u32; type Ux = u32;

View File

@ -11,30 +11,26 @@ pub type TrigErrorW<'a, REG> = crate::BitWriter<'a, REG>;
impl W { impl W {
#[doc = "Bit 0 - Clears the FIFO overflow interrupt status. Always reads 0"] #[doc = "Bit 0 - Clears the FIFO overflow interrupt status. Always reads 0"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn fifo_oflow(&mut self) -> FifoOflowW<IrqClrSpec> { pub fn fifo_oflow(&mut self) -> FifoOflowW<IrqClrSpec> {
FifoOflowW::new(self, 0) FifoOflowW::new(self, 0)
} }
#[doc = "Bit 1 - Clears the FIFO underflow interrupt status. Always reads 0"] #[doc = "Bit 1 - Clears the FIFO underflow interrupt status. Always reads 0"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn fifo_uflow(&mut self) -> FifoUflowW<IrqClrSpec> { pub fn fifo_uflow(&mut self) -> FifoUflowW<IrqClrSpec> {
FifoUflowW::new(self, 1) FifoUflowW::new(self, 1)
} }
#[doc = "Bit 2 - Clears the ADC done interrupt status. Always reads 0"] #[doc = "Bit 2 - Clears the ADC done interrupt status. Always reads 0"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn adc_done(&mut self) -> AdcDoneW<IrqClrSpec> { pub fn adc_done(&mut self) -> AdcDoneW<IrqClrSpec> {
AdcDoneW::new(self, 2) AdcDoneW::new(self, 2)
} }
#[doc = "Bit 3 - Clears the trigger error interrupt status. Always reads 0"] #[doc = "Bit 3 - Clears the trigger error interrupt status. Always reads 0"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn trig_error(&mut self) -> TrigErrorW<IrqClrSpec> { pub fn trig_error(&mut self) -> TrigErrorW<IrqClrSpec> {
TrigErrorW::new(self, 3) TrigErrorW::new(self, 3)
} }
} }
#[doc = "Clear Interrupt\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`irq_clr::W`](W). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Clear Interrupt\n\nYou can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`irq_clr::W`](W). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct IrqClrSpec; pub struct IrqClrSpec;
impl crate::RegisterSpec for IrqClrSpec { impl crate::RegisterSpec for IrqClrSpec {
type Ux = u32; type Ux = u32;

View File

@ -70,48 +70,41 @@ impl R {
impl W { impl W {
#[doc = "Bit 0 - Enables the interrupt for FIFO empty"] #[doc = "Bit 0 - Enables the interrupt for FIFO empty"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn fifo_empty(&mut self) -> FifoEmptyW<IrqEnbSpec> { pub fn fifo_empty(&mut self) -> FifoEmptyW<IrqEnbSpec> {
FifoEmptyW::new(self, 0) FifoEmptyW::new(self, 0)
} }
#[doc = "Bit 1 - Enables the interrupt for FIFO full"] #[doc = "Bit 1 - Enables the interrupt for FIFO full"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn fifo_full(&mut self) -> FifoFullW<IrqEnbSpec> { pub fn fifo_full(&mut self) -> FifoFullW<IrqEnbSpec> {
FifoFullW::new(self, 1) FifoFullW::new(self, 1)
} }
#[doc = "Bit 2 - Enables the interrupt for a FIFO overflow"] #[doc = "Bit 2 - Enables the interrupt for a FIFO overflow"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn fifo_oflow(&mut self) -> FifoOflowW<IrqEnbSpec> { pub fn fifo_oflow(&mut self) -> FifoOflowW<IrqEnbSpec> {
FifoOflowW::new(self, 2) FifoOflowW::new(self, 2)
} }
#[doc = "Bit 3 - Enables the interrupt for a FIFO underflow"] #[doc = "Bit 3 - Enables the interrupt for a FIFO underflow"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn fifo_uflow(&mut self) -> FifoUflowW<IrqEnbSpec> { pub fn fifo_uflow(&mut self) -> FifoUflowW<IrqEnbSpec> {
FifoUflowW::new(self, 3) FifoUflowW::new(self, 3)
} }
#[doc = "Bit 4 - Enables the interrupt for an ADC data acquisition completion"] #[doc = "Bit 4 - Enables the interrupt for an ADC data acquisition completion"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn adc_done(&mut self) -> AdcDoneW<IrqEnbSpec> { pub fn adc_done(&mut self) -> AdcDoneW<IrqEnbSpec> {
AdcDoneW::new(self, 4) AdcDoneW::new(self, 4)
} }
#[doc = "Bit 5 - Enables the interrupt for a trigger error"] #[doc = "Bit 5 - Enables the interrupt for a trigger error"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn trig_error(&mut self) -> TrigErrorW<IrqEnbSpec> { pub fn trig_error(&mut self) -> TrigErrorW<IrqEnbSpec> {
TrigErrorW::new(self, 5) TrigErrorW::new(self, 5)
} }
#[doc = "Bit 6 - Enables the interrupt for the FIFO entry count meets or exceeds the trigger level"] #[doc = "Bit 6 - Enables the interrupt for the FIFO entry count meets or exceeds the trigger level"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn fifo_depth_trig(&mut self) -> FifoDepthTrigW<IrqEnbSpec> { pub fn fifo_depth_trig(&mut self) -> FifoDepthTrigW<IrqEnbSpec> {
FifoDepthTrigW::new(self, 6) FifoDepthTrigW::new(self, 6)
} }
} }
#[doc = "Interrupt Enable\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`irq_enb::R`](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 [`irq_enb::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Interrupt Enable\n\nYou can [`read`](crate::Reg::read) this register and get [`irq_enb::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`irq_enb::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct IrqEnbSpec; pub struct IrqEnbSpec;
impl crate::RegisterSpec for IrqEnbSpec { impl crate::RegisterSpec for IrqEnbSpec {
type Ux = u32; type Ux = u32;

View File

@ -51,7 +51,7 @@ impl R {
FifoDepthTrigR::new(((self.bits >> 6) & 1) != 0) FifoDepthTrigR::new(((self.bits >> 6) & 1) != 0)
} }
} }
#[doc = "Enabled Interrupt Status\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`irq_end::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Enabled Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`irq_end::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct IrqEndSpec; pub struct IrqEndSpec;
impl crate::RegisterSpec for IrqEndSpec { impl crate::RegisterSpec for IrqEndSpec {
type Ux = u32; type Ux = u32;

View File

@ -51,7 +51,7 @@ impl R {
FifoDepthTrigR::new(((self.bits >> 6) & 1) != 0) FifoDepthTrigR::new(((self.bits >> 6) & 1) != 0)
} }
} }
#[doc = "Raw Interrupt Status\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`irq_raw::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Raw Interrupt Status\n\nYou can [`read`](crate::Reg::read) this register and get [`irq_raw::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct IrqRawSpec; pub struct IrqRawSpec;
impl crate::RegisterSpec for IrqRawSpec { impl crate::RegisterSpec for IrqRawSpec {
type Ux = u32; type Ux = u32;

View File

@ -5,7 +5,7 @@ impl core::fmt::Debug for R {
write!(f, "{}", self.bits()) write!(f, "{}", self.bits())
} }
} }
#[doc = "Peripheral ID Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`perid::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Peripheral ID Register\n\nYou can [`read`](crate::Reg::read) this register and get [`perid::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct PeridSpec; pub struct PeridSpec;
impl crate::RegisterSpec for PeridSpec { impl crate::RegisterSpec for PeridSpec {
type Ux = u32; type Ux = u32;

View File

@ -16,12 +16,11 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:4 - Sets the FIFO_ENTRY_CNT value that asserts the FIFO_DEPTH_TRIG interrupt"] #[doc = "Bits 0:4 - Sets the FIFO_ENTRY_CNT value that asserts the FIFO_DEPTH_TRIG interrupt"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn level(&mut self) -> LevelW<RxfifoirqtrgSpec> { pub fn level(&mut self) -> LevelW<RxfifoirqtrgSpec> {
LevelW::new(self, 0) LevelW::new(self, 0)
} }
} }
#[doc = "Receive FIFO Interrupt Trigger Value\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rxfifoirqtrg::R`](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 [`rxfifoirqtrg::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Receive FIFO Interrupt Trigger Value\n\nYou can [`read`](crate::Reg::read) this register and get [`rxfifoirqtrg::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`rxfifoirqtrg::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct RxfifoirqtrgSpec; pub struct RxfifoirqtrgSpec;
impl crate::RegisterSpec for RxfifoirqtrgSpec { impl crate::RegisterSpec for RxfifoirqtrgSpec {
type Ux = u32; type Ux = u32;

View File

@ -16,7 +16,7 @@ impl R {
AdcBusyR::new(((self.bits >> 7) & 1) != 0) AdcBusyR::new(((self.bits >> 7) & 1) != 0)
} }
} }
#[doc = "Status\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`status::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Status\n\nYou can [`read`](crate::Reg::read) this register and get [`status::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct StatusSpec; pub struct StatusSpec;
impl crate::RegisterSpec for StatusSpec { impl crate::RegisterSpec for StatusSpec {
type Ux = u32; type Ux = u32;

View File

@ -856,853 +856,853 @@ impl RegisterBlock {
&self.ctmr &self.ctmr
} }
} }
#[doc = "CNSTAT_CMB0 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb0::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 [`cnstat_cmb0::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@cnstat_cmb0`] #[doc = "CNSTAT_CMB0 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb0`]
module"] module"]
#[doc(alias = "CNSTAT_CMB0")] #[doc(alias = "CNSTAT_CMB0")]
pub type CnstatCmb0 = crate::Reg<cnstat_cmb0::CnstatCmb0Spec>; pub type CnstatCmb0 = crate::Reg<cnstat_cmb0::CnstatCmb0Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb0; pub mod cnstat_cmb0;
#[doc = "TSTP_CMB0 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb0::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 [`tstp_cmb0::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@tstp_cmb0`] #[doc = "TSTP_CMB0 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb0`]
module"] module"]
#[doc(alias = "TSTP_CMB0")] #[doc(alias = "TSTP_CMB0")]
pub type TstpCmb0 = crate::Reg<tstp_cmb0::TstpCmb0Spec>; pub type TstpCmb0 = crate::Reg<tstp_cmb0::TstpCmb0Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb0; pub mod tstp_cmb0;
#[doc = "DATA3_CMB0 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb0::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 [`data3_cmb0::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@data3_cmb0`] #[doc = "DATA3_CMB0 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb0`]
module"] module"]
#[doc(alias = "DATA3_CMB0")] #[doc(alias = "DATA3_CMB0")]
pub type Data3Cmb0 = crate::Reg<data3_cmb0::Data3Cmb0Spec>; pub type Data3Cmb0 = crate::Reg<data3_cmb0::Data3Cmb0Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb0; pub mod data3_cmb0;
#[doc = "DATA2_CMB0 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb0::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 [`data2_cmb0::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@data2_cmb0`] #[doc = "DATA2_CMB0 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb0`]
module"] module"]
#[doc(alias = "DATA2_CMB0")] #[doc(alias = "DATA2_CMB0")]
pub type Data2Cmb0 = crate::Reg<data2_cmb0::Data2Cmb0Spec>; pub type Data2Cmb0 = crate::Reg<data2_cmb0::Data2Cmb0Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb0; pub mod data2_cmb0;
#[doc = "DATA1_CMB0 (rw) register accessor: CAN Frame Data Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb0::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 [`data1_cmb0::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@data1_cmb0`] #[doc = "DATA1_CMB0 (rw) register accessor: CAN Frame Data Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb0`]
module"] module"]
#[doc(alias = "DATA1_CMB0")] #[doc(alias = "DATA1_CMB0")]
pub type Data1Cmb0 = crate::Reg<data1_cmb0::Data1Cmb0Spec>; pub type Data1Cmb0 = crate::Reg<data1_cmb0::Data1Cmb0Spec>;
#[doc = "CAN Frame Data Word 1"] #[doc = "CAN Frame Data Word 1"]
pub mod data1_cmb0; pub mod data1_cmb0;
#[doc = "DATA0_CMB0 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb0::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 [`data0_cmb0::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@data0_cmb0`] #[doc = "DATA0_CMB0 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb0`]
module"] module"]
#[doc(alias = "DATA0_CMB0")] #[doc(alias = "DATA0_CMB0")]
pub type Data0Cmb0 = crate::Reg<data0_cmb0::Data0Cmb0Spec>; pub type Data0Cmb0 = crate::Reg<data0_cmb0::Data0Cmb0Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb0; pub mod data0_cmb0;
#[doc = "ID0_CMB0 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb0::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 [`id0_cmb0::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@id0_cmb0`] #[doc = "ID0_CMB0 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb0`]
module"] module"]
#[doc(alias = "ID0_CMB0")] #[doc(alias = "ID0_CMB0")]
pub type Id0Cmb0 = crate::Reg<id0_cmb0::Id0Cmb0Spec>; pub type Id0Cmb0 = crate::Reg<id0_cmb0::Id0Cmb0Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb0; pub mod id0_cmb0;
#[doc = "ID1_CMB0 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb0::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 [`id1_cmb0::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@id1_cmb0`] #[doc = "ID1_CMB0 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb0`]
module"] module"]
#[doc(alias = "ID1_CMB0")] #[doc(alias = "ID1_CMB0")]
pub type Id1Cmb0 = crate::Reg<id1_cmb0::Id1Cmb0Spec>; pub type Id1Cmb0 = crate::Reg<id1_cmb0::Id1Cmb0Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb0; pub mod id1_cmb0;
#[doc = "CNSTAT_CMB1 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb1::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 [`cnstat_cmb1::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@cnstat_cmb1`] #[doc = "CNSTAT_CMB1 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb1`]
module"] module"]
#[doc(alias = "CNSTAT_CMB1")] #[doc(alias = "CNSTAT_CMB1")]
pub type CnstatCmb1 = crate::Reg<cnstat_cmb1::CnstatCmb1Spec>; pub type CnstatCmb1 = crate::Reg<cnstat_cmb1::CnstatCmb1Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb1; pub mod cnstat_cmb1;
#[doc = "TSTP_CMB1 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb1::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 [`tstp_cmb1::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@tstp_cmb1`] #[doc = "TSTP_CMB1 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb1`]
module"] module"]
#[doc(alias = "TSTP_CMB1")] #[doc(alias = "TSTP_CMB1")]
pub type TstpCmb1 = crate::Reg<tstp_cmb1::TstpCmb1Spec>; pub type TstpCmb1 = crate::Reg<tstp_cmb1::TstpCmb1Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb1; pub mod tstp_cmb1;
#[doc = "DATA3_CMB1 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb1::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 [`data3_cmb1::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@data3_cmb1`] #[doc = "DATA3_CMB1 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb1`]
module"] module"]
#[doc(alias = "DATA3_CMB1")] #[doc(alias = "DATA3_CMB1")]
pub type Data3Cmb1 = crate::Reg<data3_cmb1::Data3Cmb1Spec>; pub type Data3Cmb1 = crate::Reg<data3_cmb1::Data3Cmb1Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb1; pub mod data3_cmb1;
#[doc = "DATA2_CMB1 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb1::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 [`data2_cmb1::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@data2_cmb1`] #[doc = "DATA2_CMB1 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb1`]
module"] module"]
#[doc(alias = "DATA2_CMB1")] #[doc(alias = "DATA2_CMB1")]
pub type Data2Cmb1 = crate::Reg<data2_cmb1::Data2Cmb1Spec>; pub type Data2Cmb1 = crate::Reg<data2_cmb1::Data2Cmb1Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb1; pub mod data2_cmb1;
#[doc = "DATA1_CMB1 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb1::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 [`data1_cmb1::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@data1_cmb1`] #[doc = "DATA1_CMB1 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb1`]
module"] module"]
#[doc(alias = "DATA1_CMB1")] #[doc(alias = "DATA1_CMB1")]
pub type Data1Cmb1 = crate::Reg<data1_cmb1::Data1Cmb1Spec>; pub type Data1Cmb1 = crate::Reg<data1_cmb1::Data1Cmb1Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb1; pub mod data1_cmb1;
#[doc = "DATA0_CMB1 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb1::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 [`data0_cmb1::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@data0_cmb1`] #[doc = "DATA0_CMB1 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb1`]
module"] module"]
#[doc(alias = "DATA0_CMB1")] #[doc(alias = "DATA0_CMB1")]
pub type Data0Cmb1 = crate::Reg<data0_cmb1::Data0Cmb1Spec>; pub type Data0Cmb1 = crate::Reg<data0_cmb1::Data0Cmb1Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb1; pub mod data0_cmb1;
#[doc = "ID0_CMB1 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb1::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 [`id0_cmb1::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@id0_cmb1`] #[doc = "ID0_CMB1 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb1`]
module"] module"]
#[doc(alias = "ID0_CMB1")] #[doc(alias = "ID0_CMB1")]
pub type Id0Cmb1 = crate::Reg<id0_cmb1::Id0Cmb1Spec>; pub type Id0Cmb1 = crate::Reg<id0_cmb1::Id0Cmb1Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb1; pub mod id0_cmb1;
#[doc = "ID1_CMB1 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb1::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 [`id1_cmb1::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@id1_cmb1`] #[doc = "ID1_CMB1 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb1`]
module"] module"]
#[doc(alias = "ID1_CMB1")] #[doc(alias = "ID1_CMB1")]
pub type Id1Cmb1 = crate::Reg<id1_cmb1::Id1Cmb1Spec>; pub type Id1Cmb1 = crate::Reg<id1_cmb1::Id1Cmb1Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb1; pub mod id1_cmb1;
#[doc = "CNSTAT_CMB2 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb2::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 [`cnstat_cmb2::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@cnstat_cmb2`] #[doc = "CNSTAT_CMB2 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb2`]
module"] module"]
#[doc(alias = "CNSTAT_CMB2")] #[doc(alias = "CNSTAT_CMB2")]
pub type CnstatCmb2 = crate::Reg<cnstat_cmb2::CnstatCmb2Spec>; pub type CnstatCmb2 = crate::Reg<cnstat_cmb2::CnstatCmb2Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb2; pub mod cnstat_cmb2;
#[doc = "TSTP_CMB2 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb2::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 [`tstp_cmb2::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@tstp_cmb2`] #[doc = "TSTP_CMB2 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb2`]
module"] module"]
#[doc(alias = "TSTP_CMB2")] #[doc(alias = "TSTP_CMB2")]
pub type TstpCmb2 = crate::Reg<tstp_cmb2::TstpCmb2Spec>; pub type TstpCmb2 = crate::Reg<tstp_cmb2::TstpCmb2Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb2; pub mod tstp_cmb2;
#[doc = "DATA3_CMB2 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb2::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 [`data3_cmb2::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@data3_cmb2`] #[doc = "DATA3_CMB2 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb2`]
module"] module"]
#[doc(alias = "DATA3_CMB2")] #[doc(alias = "DATA3_CMB2")]
pub type Data3Cmb2 = crate::Reg<data3_cmb2::Data3Cmb2Spec>; pub type Data3Cmb2 = crate::Reg<data3_cmb2::Data3Cmb2Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb2; pub mod data3_cmb2;
#[doc = "DATA2_CMB2 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb2::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 [`data2_cmb2::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@data2_cmb2`] #[doc = "DATA2_CMB2 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb2`]
module"] module"]
#[doc(alias = "DATA2_CMB2")] #[doc(alias = "DATA2_CMB2")]
pub type Data2Cmb2 = crate::Reg<data2_cmb2::Data2Cmb2Spec>; pub type Data2Cmb2 = crate::Reg<data2_cmb2::Data2Cmb2Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb2; pub mod data2_cmb2;
#[doc = "DATA1_CMB2 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb2::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 [`data1_cmb2::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@data1_cmb2`] #[doc = "DATA1_CMB2 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb2`]
module"] module"]
#[doc(alias = "DATA1_CMB2")] #[doc(alias = "DATA1_CMB2")]
pub type Data1Cmb2 = crate::Reg<data1_cmb2::Data1Cmb2Spec>; pub type Data1Cmb2 = crate::Reg<data1_cmb2::Data1Cmb2Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb2; pub mod data1_cmb2;
#[doc = "DATA0_CMB2 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb2::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 [`data0_cmb2::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@data0_cmb2`] #[doc = "DATA0_CMB2 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb2`]
module"] module"]
#[doc(alias = "DATA0_CMB2")] #[doc(alias = "DATA0_CMB2")]
pub type Data0Cmb2 = crate::Reg<data0_cmb2::Data0Cmb2Spec>; pub type Data0Cmb2 = crate::Reg<data0_cmb2::Data0Cmb2Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb2; pub mod data0_cmb2;
#[doc = "ID0_CMB2 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb2::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 [`id0_cmb2::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@id0_cmb2`] #[doc = "ID0_CMB2 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb2`]
module"] module"]
#[doc(alias = "ID0_CMB2")] #[doc(alias = "ID0_CMB2")]
pub type Id0Cmb2 = crate::Reg<id0_cmb2::Id0Cmb2Spec>; pub type Id0Cmb2 = crate::Reg<id0_cmb2::Id0Cmb2Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb2; pub mod id0_cmb2;
#[doc = "ID1_CMB2 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb2::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 [`id1_cmb2::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@id1_cmb2`] #[doc = "ID1_CMB2 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb2::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb2::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb2`]
module"] module"]
#[doc(alias = "ID1_CMB2")] #[doc(alias = "ID1_CMB2")]
pub type Id1Cmb2 = crate::Reg<id1_cmb2::Id1Cmb2Spec>; pub type Id1Cmb2 = crate::Reg<id1_cmb2::Id1Cmb2Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb2; pub mod id1_cmb2;
#[doc = "CNSTAT_CMB3 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb3::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 [`cnstat_cmb3::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@cnstat_cmb3`] #[doc = "CNSTAT_CMB3 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb3`]
module"] module"]
#[doc(alias = "CNSTAT_CMB3")] #[doc(alias = "CNSTAT_CMB3")]
pub type CnstatCmb3 = crate::Reg<cnstat_cmb3::CnstatCmb3Spec>; pub type CnstatCmb3 = crate::Reg<cnstat_cmb3::CnstatCmb3Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb3; pub mod cnstat_cmb3;
#[doc = "TSTP_CMB3 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb3::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 [`tstp_cmb3::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@tstp_cmb3`] #[doc = "TSTP_CMB3 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb3`]
module"] module"]
#[doc(alias = "TSTP_CMB3")] #[doc(alias = "TSTP_CMB3")]
pub type TstpCmb3 = crate::Reg<tstp_cmb3::TstpCmb3Spec>; pub type TstpCmb3 = crate::Reg<tstp_cmb3::TstpCmb3Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb3; pub mod tstp_cmb3;
#[doc = "DATA3_CMB3 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb3::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 [`data3_cmb3::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@data3_cmb3`] #[doc = "DATA3_CMB3 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb3`]
module"] module"]
#[doc(alias = "DATA3_CMB3")] #[doc(alias = "DATA3_CMB3")]
pub type Data3Cmb3 = crate::Reg<data3_cmb3::Data3Cmb3Spec>; pub type Data3Cmb3 = crate::Reg<data3_cmb3::Data3Cmb3Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb3; pub mod data3_cmb3;
#[doc = "DATA2_CMB3 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb3::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 [`data2_cmb3::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@data2_cmb3`] #[doc = "DATA2_CMB3 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb3`]
module"] module"]
#[doc(alias = "DATA2_CMB3")] #[doc(alias = "DATA2_CMB3")]
pub type Data2Cmb3 = crate::Reg<data2_cmb3::Data2Cmb3Spec>; pub type Data2Cmb3 = crate::Reg<data2_cmb3::Data2Cmb3Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb3; pub mod data2_cmb3;
#[doc = "DATA1_CMB3 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb3::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 [`data1_cmb3::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@data1_cmb3`] #[doc = "DATA1_CMB3 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb3`]
module"] module"]
#[doc(alias = "DATA1_CMB3")] #[doc(alias = "DATA1_CMB3")]
pub type Data1Cmb3 = crate::Reg<data1_cmb3::Data1Cmb3Spec>; pub type Data1Cmb3 = crate::Reg<data1_cmb3::Data1Cmb3Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb3; pub mod data1_cmb3;
#[doc = "DATA0_CMB3 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb3::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 [`data0_cmb3::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@data0_cmb3`] #[doc = "DATA0_CMB3 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb3`]
module"] module"]
#[doc(alias = "DATA0_CMB3")] #[doc(alias = "DATA0_CMB3")]
pub type Data0Cmb3 = crate::Reg<data0_cmb3::Data0Cmb3Spec>; pub type Data0Cmb3 = crate::Reg<data0_cmb3::Data0Cmb3Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb3; pub mod data0_cmb3;
#[doc = "ID0_CMB3 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb3::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 [`id0_cmb3::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@id0_cmb3`] #[doc = "ID0_CMB3 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb3`]
module"] module"]
#[doc(alias = "ID0_CMB3")] #[doc(alias = "ID0_CMB3")]
pub type Id0Cmb3 = crate::Reg<id0_cmb3::Id0Cmb3Spec>; pub type Id0Cmb3 = crate::Reg<id0_cmb3::Id0Cmb3Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb3; pub mod id0_cmb3;
#[doc = "ID1_CMB3 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb3::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 [`id1_cmb3::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@id1_cmb3`] #[doc = "ID1_CMB3 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb3::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb3::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb3`]
module"] module"]
#[doc(alias = "ID1_CMB3")] #[doc(alias = "ID1_CMB3")]
pub type Id1Cmb3 = crate::Reg<id1_cmb3::Id1Cmb3Spec>; pub type Id1Cmb3 = crate::Reg<id1_cmb3::Id1Cmb3Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb3; pub mod id1_cmb3;
#[doc = "CNSTAT_CMB4 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb4::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 [`cnstat_cmb4::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@cnstat_cmb4`] #[doc = "CNSTAT_CMB4 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb4`]
module"] module"]
#[doc(alias = "CNSTAT_CMB4")] #[doc(alias = "CNSTAT_CMB4")]
pub type CnstatCmb4 = crate::Reg<cnstat_cmb4::CnstatCmb4Spec>; pub type CnstatCmb4 = crate::Reg<cnstat_cmb4::CnstatCmb4Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb4; pub mod cnstat_cmb4;
#[doc = "TSTP_CMB4 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb4::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 [`tstp_cmb4::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@tstp_cmb4`] #[doc = "TSTP_CMB4 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb4`]
module"] module"]
#[doc(alias = "TSTP_CMB4")] #[doc(alias = "TSTP_CMB4")]
pub type TstpCmb4 = crate::Reg<tstp_cmb4::TstpCmb4Spec>; pub type TstpCmb4 = crate::Reg<tstp_cmb4::TstpCmb4Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb4; pub mod tstp_cmb4;
#[doc = "DATA3_CMB4 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb4::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 [`data3_cmb4::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@data3_cmb4`] #[doc = "DATA3_CMB4 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb4`]
module"] module"]
#[doc(alias = "DATA3_CMB4")] #[doc(alias = "DATA3_CMB4")]
pub type Data3Cmb4 = crate::Reg<data3_cmb4::Data3Cmb4Spec>; pub type Data3Cmb4 = crate::Reg<data3_cmb4::Data3Cmb4Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb4; pub mod data3_cmb4;
#[doc = "DATA2_CMB4 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb4::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 [`data2_cmb4::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@data2_cmb4`] #[doc = "DATA2_CMB4 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb4`]
module"] module"]
#[doc(alias = "DATA2_CMB4")] #[doc(alias = "DATA2_CMB4")]
pub type Data2Cmb4 = crate::Reg<data2_cmb4::Data2Cmb4Spec>; pub type Data2Cmb4 = crate::Reg<data2_cmb4::Data2Cmb4Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb4; pub mod data2_cmb4;
#[doc = "DATA1_CMB4 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb4::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 [`data1_cmb4::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@data1_cmb4`] #[doc = "DATA1_CMB4 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb4`]
module"] module"]
#[doc(alias = "DATA1_CMB4")] #[doc(alias = "DATA1_CMB4")]
pub type Data1Cmb4 = crate::Reg<data1_cmb4::Data1Cmb4Spec>; pub type Data1Cmb4 = crate::Reg<data1_cmb4::Data1Cmb4Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb4; pub mod data1_cmb4;
#[doc = "DATA0_CMB4 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb4::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 [`data0_cmb4::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@data0_cmb4`] #[doc = "DATA0_CMB4 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb4`]
module"] module"]
#[doc(alias = "DATA0_CMB4")] #[doc(alias = "DATA0_CMB4")]
pub type Data0Cmb4 = crate::Reg<data0_cmb4::Data0Cmb4Spec>; pub type Data0Cmb4 = crate::Reg<data0_cmb4::Data0Cmb4Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb4; pub mod data0_cmb4;
#[doc = "ID0_CMB4 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb4::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 [`id0_cmb4::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@id0_cmb4`] #[doc = "ID0_CMB4 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb4`]
module"] module"]
#[doc(alias = "ID0_CMB4")] #[doc(alias = "ID0_CMB4")]
pub type Id0Cmb4 = crate::Reg<id0_cmb4::Id0Cmb4Spec>; pub type Id0Cmb4 = crate::Reg<id0_cmb4::Id0Cmb4Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb4; pub mod id0_cmb4;
#[doc = "ID1_CMB4 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb4::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 [`id1_cmb4::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@id1_cmb4`] #[doc = "ID1_CMB4 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb4::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb4::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb4`]
module"] module"]
#[doc(alias = "ID1_CMB4")] #[doc(alias = "ID1_CMB4")]
pub type Id1Cmb4 = crate::Reg<id1_cmb4::Id1Cmb4Spec>; pub type Id1Cmb4 = crate::Reg<id1_cmb4::Id1Cmb4Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb4; pub mod id1_cmb4;
#[doc = "CNSTAT_CMB5 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb5::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 [`cnstat_cmb5::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@cnstat_cmb5`] #[doc = "CNSTAT_CMB5 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb5::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb5::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb5`]
module"] module"]
#[doc(alias = "CNSTAT_CMB5")] #[doc(alias = "CNSTAT_CMB5")]
pub type CnstatCmb5 = crate::Reg<cnstat_cmb5::CnstatCmb5Spec>; pub type CnstatCmb5 = crate::Reg<cnstat_cmb5::CnstatCmb5Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb5; pub mod cnstat_cmb5;
#[doc = "TSTP_CMB5 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb5::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 [`tstp_cmb5::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@tstp_cmb5`] #[doc = "TSTP_CMB5 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb5::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb5::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb5`]
module"] module"]
#[doc(alias = "TSTP_CMB5")] #[doc(alias = "TSTP_CMB5")]
pub type TstpCmb5 = crate::Reg<tstp_cmb5::TstpCmb5Spec>; pub type TstpCmb5 = crate::Reg<tstp_cmb5::TstpCmb5Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb5; pub mod tstp_cmb5;
#[doc = "DATA3_CMB5 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb5::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 [`data3_cmb5::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@data3_cmb5`] #[doc = "DATA3_CMB5 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb5::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb5::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb5`]
module"] module"]
#[doc(alias = "DATA3_CMB5")] #[doc(alias = "DATA3_CMB5")]
pub type Data3Cmb5 = crate::Reg<data3_cmb5::Data3Cmb5Spec>; pub type Data3Cmb5 = crate::Reg<data3_cmb5::Data3Cmb5Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb5; pub mod data3_cmb5;
#[doc = "DATA2_CMB5 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb5::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 [`data2_cmb5::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@data2_cmb5`] #[doc = "DATA2_CMB5 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb5::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb5::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb5`]
module"] module"]
#[doc(alias = "DATA2_CMB5")] #[doc(alias = "DATA2_CMB5")]
pub type Data2Cmb5 = crate::Reg<data2_cmb5::Data2Cmb5Spec>; pub type Data2Cmb5 = crate::Reg<data2_cmb5::Data2Cmb5Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb5; pub mod data2_cmb5;
#[doc = "DATA1_CMB5 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb5::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 [`data1_cmb5::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@data1_cmb5`] #[doc = "DATA1_CMB5 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb5::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb5::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb5`]
module"] module"]
#[doc(alias = "DATA1_CMB5")] #[doc(alias = "DATA1_CMB5")]
pub type Data1Cmb5 = crate::Reg<data1_cmb5::Data1Cmb5Spec>; pub type Data1Cmb5 = crate::Reg<data1_cmb5::Data1Cmb5Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb5; pub mod data1_cmb5;
#[doc = "DATA0_CMB5 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb5::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 [`data0_cmb5::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@data0_cmb5`] #[doc = "DATA0_CMB5 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb5::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb5::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb5`]
module"] module"]
#[doc(alias = "DATA0_CMB5")] #[doc(alias = "DATA0_CMB5")]
pub type Data0Cmb5 = crate::Reg<data0_cmb5::Data0Cmb5Spec>; pub type Data0Cmb5 = crate::Reg<data0_cmb5::Data0Cmb5Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb5; pub mod data0_cmb5;
#[doc = "ID0_CMB5 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb5::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 [`id0_cmb5::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@id0_cmb5`] #[doc = "ID0_CMB5 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb5::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb5::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb5`]
module"] module"]
#[doc(alias = "ID0_CMB5")] #[doc(alias = "ID0_CMB5")]
pub type Id0Cmb5 = crate::Reg<id0_cmb5::Id0Cmb5Spec>; pub type Id0Cmb5 = crate::Reg<id0_cmb5::Id0Cmb5Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb5; pub mod id0_cmb5;
#[doc = "ID1_CMB5 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb5::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 [`id1_cmb5::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@id1_cmb5`] #[doc = "ID1_CMB5 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb5::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb5::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb5`]
module"] module"]
#[doc(alias = "ID1_CMB5")] #[doc(alias = "ID1_CMB5")]
pub type Id1Cmb5 = crate::Reg<id1_cmb5::Id1Cmb5Spec>; pub type Id1Cmb5 = crate::Reg<id1_cmb5::Id1Cmb5Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb5; pub mod id1_cmb5;
#[doc = "CNSTAT_CMB6 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb6::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 [`cnstat_cmb6::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@cnstat_cmb6`] #[doc = "CNSTAT_CMB6 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb6::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb6::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb6`]
module"] module"]
#[doc(alias = "CNSTAT_CMB6")] #[doc(alias = "CNSTAT_CMB6")]
pub type CnstatCmb6 = crate::Reg<cnstat_cmb6::CnstatCmb6Spec>; pub type CnstatCmb6 = crate::Reg<cnstat_cmb6::CnstatCmb6Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb6; pub mod cnstat_cmb6;
#[doc = "TSTP_CMB6 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb6::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 [`tstp_cmb6::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@tstp_cmb6`] #[doc = "TSTP_CMB6 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb6::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb6::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb6`]
module"] module"]
#[doc(alias = "TSTP_CMB6")] #[doc(alias = "TSTP_CMB6")]
pub type TstpCmb6 = crate::Reg<tstp_cmb6::TstpCmb6Spec>; pub type TstpCmb6 = crate::Reg<tstp_cmb6::TstpCmb6Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb6; pub mod tstp_cmb6;
#[doc = "DATA3_CMB6 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb6::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 [`data3_cmb6::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@data3_cmb6`] #[doc = "DATA3_CMB6 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb6::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb6::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb6`]
module"] module"]
#[doc(alias = "DATA3_CMB6")] #[doc(alias = "DATA3_CMB6")]
pub type Data3Cmb6 = crate::Reg<data3_cmb6::Data3Cmb6Spec>; pub type Data3Cmb6 = crate::Reg<data3_cmb6::Data3Cmb6Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb6; pub mod data3_cmb6;
#[doc = "DATA2_CMB6 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb6::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 [`data2_cmb6::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@data2_cmb6`] #[doc = "DATA2_CMB6 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb6::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb6::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb6`]
module"] module"]
#[doc(alias = "DATA2_CMB6")] #[doc(alias = "DATA2_CMB6")]
pub type Data2Cmb6 = crate::Reg<data2_cmb6::Data2Cmb6Spec>; pub type Data2Cmb6 = crate::Reg<data2_cmb6::Data2Cmb6Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb6; pub mod data2_cmb6;
#[doc = "DATA1_CMB6 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb6::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 [`data1_cmb6::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@data1_cmb6`] #[doc = "DATA1_CMB6 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb6::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb6::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb6`]
module"] module"]
#[doc(alias = "DATA1_CMB6")] #[doc(alias = "DATA1_CMB6")]
pub type Data1Cmb6 = crate::Reg<data1_cmb6::Data1Cmb6Spec>; pub type Data1Cmb6 = crate::Reg<data1_cmb6::Data1Cmb6Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb6; pub mod data1_cmb6;
#[doc = "DATA0_CMB6 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb6::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 [`data0_cmb6::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@data0_cmb6`] #[doc = "DATA0_CMB6 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb6::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb6::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb6`]
module"] module"]
#[doc(alias = "DATA0_CMB6")] #[doc(alias = "DATA0_CMB6")]
pub type Data0Cmb6 = crate::Reg<data0_cmb6::Data0Cmb6Spec>; pub type Data0Cmb6 = crate::Reg<data0_cmb6::Data0Cmb6Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb6; pub mod data0_cmb6;
#[doc = "ID0_CMB6 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb6::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 [`id0_cmb6::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@id0_cmb6`] #[doc = "ID0_CMB6 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb6::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb6::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb6`]
module"] module"]
#[doc(alias = "ID0_CMB6")] #[doc(alias = "ID0_CMB6")]
pub type Id0Cmb6 = crate::Reg<id0_cmb6::Id0Cmb6Spec>; pub type Id0Cmb6 = crate::Reg<id0_cmb6::Id0Cmb6Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb6; pub mod id0_cmb6;
#[doc = "ID1_CMB6 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb6::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 [`id1_cmb6::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@id1_cmb6`] #[doc = "ID1_CMB6 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb6::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb6::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb6`]
module"] module"]
#[doc(alias = "ID1_CMB6")] #[doc(alias = "ID1_CMB6")]
pub type Id1Cmb6 = crate::Reg<id1_cmb6::Id1Cmb6Spec>; pub type Id1Cmb6 = crate::Reg<id1_cmb6::Id1Cmb6Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb6; pub mod id1_cmb6;
#[doc = "CNSTAT_CMB7 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb7::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 [`cnstat_cmb7::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@cnstat_cmb7`] #[doc = "CNSTAT_CMB7 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb7::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb7::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb7`]
module"] module"]
#[doc(alias = "CNSTAT_CMB7")] #[doc(alias = "CNSTAT_CMB7")]
pub type CnstatCmb7 = crate::Reg<cnstat_cmb7::CnstatCmb7Spec>; pub type CnstatCmb7 = crate::Reg<cnstat_cmb7::CnstatCmb7Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb7; pub mod cnstat_cmb7;
#[doc = "TSTP_CMB7 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb7::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 [`tstp_cmb7::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@tstp_cmb7`] #[doc = "TSTP_CMB7 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb7::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb7::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb7`]
module"] module"]
#[doc(alias = "TSTP_CMB7")] #[doc(alias = "TSTP_CMB7")]
pub type TstpCmb7 = crate::Reg<tstp_cmb7::TstpCmb7Spec>; pub type TstpCmb7 = crate::Reg<tstp_cmb7::TstpCmb7Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb7; pub mod tstp_cmb7;
#[doc = "DATA3_CMB7 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb7::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 [`data3_cmb7::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@data3_cmb7`] #[doc = "DATA3_CMB7 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb7::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb7::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb7`]
module"] module"]
#[doc(alias = "DATA3_CMB7")] #[doc(alias = "DATA3_CMB7")]
pub type Data3Cmb7 = crate::Reg<data3_cmb7::Data3Cmb7Spec>; pub type Data3Cmb7 = crate::Reg<data3_cmb7::Data3Cmb7Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb7; pub mod data3_cmb7;
#[doc = "DATA2_CMB7 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb7::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 [`data2_cmb7::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@data2_cmb7`] #[doc = "DATA2_CMB7 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb7::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb7::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb7`]
module"] module"]
#[doc(alias = "DATA2_CMB7")] #[doc(alias = "DATA2_CMB7")]
pub type Data2Cmb7 = crate::Reg<data2_cmb7::Data2Cmb7Spec>; pub type Data2Cmb7 = crate::Reg<data2_cmb7::Data2Cmb7Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb7; pub mod data2_cmb7;
#[doc = "DATA1_CMB7 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb7::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 [`data1_cmb7::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@data1_cmb7`] #[doc = "DATA1_CMB7 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb7::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb7::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb7`]
module"] module"]
#[doc(alias = "DATA1_CMB7")] #[doc(alias = "DATA1_CMB7")]
pub type Data1Cmb7 = crate::Reg<data1_cmb7::Data1Cmb7Spec>; pub type Data1Cmb7 = crate::Reg<data1_cmb7::Data1Cmb7Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb7; pub mod data1_cmb7;
#[doc = "DATA0_CMB7 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb7::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 [`data0_cmb7::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@data0_cmb7`] #[doc = "DATA0_CMB7 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb7::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb7::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb7`]
module"] module"]
#[doc(alias = "DATA0_CMB7")] #[doc(alias = "DATA0_CMB7")]
pub type Data0Cmb7 = crate::Reg<data0_cmb7::Data0Cmb7Spec>; pub type Data0Cmb7 = crate::Reg<data0_cmb7::Data0Cmb7Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb7; pub mod data0_cmb7;
#[doc = "ID0_CMB7 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb7::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 [`id0_cmb7::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@id0_cmb7`] #[doc = "ID0_CMB7 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb7::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb7::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb7`]
module"] module"]
#[doc(alias = "ID0_CMB7")] #[doc(alias = "ID0_CMB7")]
pub type Id0Cmb7 = crate::Reg<id0_cmb7::Id0Cmb7Spec>; pub type Id0Cmb7 = crate::Reg<id0_cmb7::Id0Cmb7Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb7; pub mod id0_cmb7;
#[doc = "ID1_CMB7 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb7::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 [`id1_cmb7::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@id1_cmb7`] #[doc = "ID1_CMB7 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb7::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb7::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb7`]
module"] module"]
#[doc(alias = "ID1_CMB7")] #[doc(alias = "ID1_CMB7")]
pub type Id1Cmb7 = crate::Reg<id1_cmb7::Id1Cmb7Spec>; pub type Id1Cmb7 = crate::Reg<id1_cmb7::Id1Cmb7Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb7; pub mod id1_cmb7;
#[doc = "CNSTAT_CMB8 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb8::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 [`cnstat_cmb8::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@cnstat_cmb8`] #[doc = "CNSTAT_CMB8 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb8::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb8::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb8`]
module"] module"]
#[doc(alias = "CNSTAT_CMB8")] #[doc(alias = "CNSTAT_CMB8")]
pub type CnstatCmb8 = crate::Reg<cnstat_cmb8::CnstatCmb8Spec>; pub type CnstatCmb8 = crate::Reg<cnstat_cmb8::CnstatCmb8Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb8; pub mod cnstat_cmb8;
#[doc = "TSTP_CMB8 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb8::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 [`tstp_cmb8::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@tstp_cmb8`] #[doc = "TSTP_CMB8 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb8::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb8::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb8`]
module"] module"]
#[doc(alias = "TSTP_CMB8")] #[doc(alias = "TSTP_CMB8")]
pub type TstpCmb8 = crate::Reg<tstp_cmb8::TstpCmb8Spec>; pub type TstpCmb8 = crate::Reg<tstp_cmb8::TstpCmb8Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb8; pub mod tstp_cmb8;
#[doc = "DATA3_CMB8 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb8::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 [`data3_cmb8::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@data3_cmb8`] #[doc = "DATA3_CMB8 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb8::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb8::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb8`]
module"] module"]
#[doc(alias = "DATA3_CMB8")] #[doc(alias = "DATA3_CMB8")]
pub type Data3Cmb8 = crate::Reg<data3_cmb8::Data3Cmb8Spec>; pub type Data3Cmb8 = crate::Reg<data3_cmb8::Data3Cmb8Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb8; pub mod data3_cmb8;
#[doc = "DATA2_CMB8 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb8::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 [`data2_cmb8::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@data2_cmb8`] #[doc = "DATA2_CMB8 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb8::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb8::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb8`]
module"] module"]
#[doc(alias = "DATA2_CMB8")] #[doc(alias = "DATA2_CMB8")]
pub type Data2Cmb8 = crate::Reg<data2_cmb8::Data2Cmb8Spec>; pub type Data2Cmb8 = crate::Reg<data2_cmb8::Data2Cmb8Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb8; pub mod data2_cmb8;
#[doc = "DATA1_CMB8 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb8::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 [`data1_cmb8::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@data1_cmb8`] #[doc = "DATA1_CMB8 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb8::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb8::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb8`]
module"] module"]
#[doc(alias = "DATA1_CMB8")] #[doc(alias = "DATA1_CMB8")]
pub type Data1Cmb8 = crate::Reg<data1_cmb8::Data1Cmb8Spec>; pub type Data1Cmb8 = crate::Reg<data1_cmb8::Data1Cmb8Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb8; pub mod data1_cmb8;
#[doc = "DATA0_CMB8 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb8::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 [`data0_cmb8::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@data0_cmb8`] #[doc = "DATA0_CMB8 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb8::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb8::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb8`]
module"] module"]
#[doc(alias = "DATA0_CMB8")] #[doc(alias = "DATA0_CMB8")]
pub type Data0Cmb8 = crate::Reg<data0_cmb8::Data0Cmb8Spec>; pub type Data0Cmb8 = crate::Reg<data0_cmb8::Data0Cmb8Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb8; pub mod data0_cmb8;
#[doc = "ID0_CMB8 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb8::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 [`id0_cmb8::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@id0_cmb8`] #[doc = "ID0_CMB8 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb8::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb8::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb8`]
module"] module"]
#[doc(alias = "ID0_CMB8")] #[doc(alias = "ID0_CMB8")]
pub type Id0Cmb8 = crate::Reg<id0_cmb8::Id0Cmb8Spec>; pub type Id0Cmb8 = crate::Reg<id0_cmb8::Id0Cmb8Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb8; pub mod id0_cmb8;
#[doc = "ID1_CMB8 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb8::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 [`id1_cmb8::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@id1_cmb8`] #[doc = "ID1_CMB8 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb8::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb8::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb8`]
module"] module"]
#[doc(alias = "ID1_CMB8")] #[doc(alias = "ID1_CMB8")]
pub type Id1Cmb8 = crate::Reg<id1_cmb8::Id1Cmb8Spec>; pub type Id1Cmb8 = crate::Reg<id1_cmb8::Id1Cmb8Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb8; pub mod id1_cmb8;
#[doc = "CNSTAT_CMB9 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb9::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 [`cnstat_cmb9::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@cnstat_cmb9`] #[doc = "CNSTAT_CMB9 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb9::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb9::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb9`]
module"] module"]
#[doc(alias = "CNSTAT_CMB9")] #[doc(alias = "CNSTAT_CMB9")]
pub type CnstatCmb9 = crate::Reg<cnstat_cmb9::CnstatCmb9Spec>; pub type CnstatCmb9 = crate::Reg<cnstat_cmb9::CnstatCmb9Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb9; pub mod cnstat_cmb9;
#[doc = "TSTP_CMB9 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb9::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 [`tstp_cmb9::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@tstp_cmb9`] #[doc = "TSTP_CMB9 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb9::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb9::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb9`]
module"] module"]
#[doc(alias = "TSTP_CMB9")] #[doc(alias = "TSTP_CMB9")]
pub type TstpCmb9 = crate::Reg<tstp_cmb9::TstpCmb9Spec>; pub type TstpCmb9 = crate::Reg<tstp_cmb9::TstpCmb9Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb9; pub mod tstp_cmb9;
#[doc = "DATA3_CMB9 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb9::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 [`data3_cmb9::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@data3_cmb9`] #[doc = "DATA3_CMB9 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb9::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb9::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb9`]
module"] module"]
#[doc(alias = "DATA3_CMB9")] #[doc(alias = "DATA3_CMB9")]
pub type Data3Cmb9 = crate::Reg<data3_cmb9::Data3Cmb9Spec>; pub type Data3Cmb9 = crate::Reg<data3_cmb9::Data3Cmb9Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb9; pub mod data3_cmb9;
#[doc = "DATA2_CMB9 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb9::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 [`data2_cmb9::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@data2_cmb9`] #[doc = "DATA2_CMB9 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb9::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb9::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb9`]
module"] module"]
#[doc(alias = "DATA2_CMB9")] #[doc(alias = "DATA2_CMB9")]
pub type Data2Cmb9 = crate::Reg<data2_cmb9::Data2Cmb9Spec>; pub type Data2Cmb9 = crate::Reg<data2_cmb9::Data2Cmb9Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb9; pub mod data2_cmb9;
#[doc = "DATA1_CMB9 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb9::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 [`data1_cmb9::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@data1_cmb9`] #[doc = "DATA1_CMB9 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb9::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb9::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb9`]
module"] module"]
#[doc(alias = "DATA1_CMB9")] #[doc(alias = "DATA1_CMB9")]
pub type Data1Cmb9 = crate::Reg<data1_cmb9::Data1Cmb9Spec>; pub type Data1Cmb9 = crate::Reg<data1_cmb9::Data1Cmb9Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb9; pub mod data1_cmb9;
#[doc = "DATA0_CMB9 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb9::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 [`data0_cmb9::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@data0_cmb9`] #[doc = "DATA0_CMB9 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb9::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb9::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb9`]
module"] module"]
#[doc(alias = "DATA0_CMB9")] #[doc(alias = "DATA0_CMB9")]
pub type Data0Cmb9 = crate::Reg<data0_cmb9::Data0Cmb9Spec>; pub type Data0Cmb9 = crate::Reg<data0_cmb9::Data0Cmb9Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb9; pub mod data0_cmb9;
#[doc = "ID0_CMB9 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb9::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 [`id0_cmb9::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@id0_cmb9`] #[doc = "ID0_CMB9 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb9::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb9::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb9`]
module"] module"]
#[doc(alias = "ID0_CMB9")] #[doc(alias = "ID0_CMB9")]
pub type Id0Cmb9 = crate::Reg<id0_cmb9::Id0Cmb9Spec>; pub type Id0Cmb9 = crate::Reg<id0_cmb9::Id0Cmb9Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb9; pub mod id0_cmb9;
#[doc = "ID1_CMB9 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb9::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 [`id1_cmb9::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@id1_cmb9`] #[doc = "ID1_CMB9 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb9::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb9::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb9`]
module"] module"]
#[doc(alias = "ID1_CMB9")] #[doc(alias = "ID1_CMB9")]
pub type Id1Cmb9 = crate::Reg<id1_cmb9::Id1Cmb9Spec>; pub type Id1Cmb9 = crate::Reg<id1_cmb9::Id1Cmb9Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb9; pub mod id1_cmb9;
#[doc = "CNSTAT_CMB10 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb10::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 [`cnstat_cmb10::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@cnstat_cmb10`] #[doc = "CNSTAT_CMB10 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb10::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb10::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb10`]
module"] module"]
#[doc(alias = "CNSTAT_CMB10")] #[doc(alias = "CNSTAT_CMB10")]
pub type CnstatCmb10 = crate::Reg<cnstat_cmb10::CnstatCmb10Spec>; pub type CnstatCmb10 = crate::Reg<cnstat_cmb10::CnstatCmb10Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb10; pub mod cnstat_cmb10;
#[doc = "TSTP_CMB10 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb10::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 [`tstp_cmb10::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@tstp_cmb10`] #[doc = "TSTP_CMB10 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb10::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb10::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb10`]
module"] module"]
#[doc(alias = "TSTP_CMB10")] #[doc(alias = "TSTP_CMB10")]
pub type TstpCmb10 = crate::Reg<tstp_cmb10::TstpCmb10Spec>; pub type TstpCmb10 = crate::Reg<tstp_cmb10::TstpCmb10Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb10; pub mod tstp_cmb10;
#[doc = "DATA3_CMB10 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb10::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 [`data3_cmb10::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@data3_cmb10`] #[doc = "DATA3_CMB10 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb10::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb10::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb10`]
module"] module"]
#[doc(alias = "DATA3_CMB10")] #[doc(alias = "DATA3_CMB10")]
pub type Data3Cmb10 = crate::Reg<data3_cmb10::Data3Cmb10Spec>; pub type Data3Cmb10 = crate::Reg<data3_cmb10::Data3Cmb10Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb10; pub mod data3_cmb10;
#[doc = "DATA2_CMB10 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb10::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 [`data2_cmb10::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@data2_cmb10`] #[doc = "DATA2_CMB10 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb10::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb10::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb10`]
module"] module"]
#[doc(alias = "DATA2_CMB10")] #[doc(alias = "DATA2_CMB10")]
pub type Data2Cmb10 = crate::Reg<data2_cmb10::Data2Cmb10Spec>; pub type Data2Cmb10 = crate::Reg<data2_cmb10::Data2Cmb10Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb10; pub mod data2_cmb10;
#[doc = "DATA1_CMB10 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb10::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 [`data1_cmb10::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@data1_cmb10`] #[doc = "DATA1_CMB10 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb10::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb10::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb10`]
module"] module"]
#[doc(alias = "DATA1_CMB10")] #[doc(alias = "DATA1_CMB10")]
pub type Data1Cmb10 = crate::Reg<data1_cmb10::Data1Cmb10Spec>; pub type Data1Cmb10 = crate::Reg<data1_cmb10::Data1Cmb10Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb10; pub mod data1_cmb10;
#[doc = "DATA0_CMB10 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb10::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 [`data0_cmb10::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@data0_cmb10`] #[doc = "DATA0_CMB10 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb10::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb10::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb10`]
module"] module"]
#[doc(alias = "DATA0_CMB10")] #[doc(alias = "DATA0_CMB10")]
pub type Data0Cmb10 = crate::Reg<data0_cmb10::Data0Cmb10Spec>; pub type Data0Cmb10 = crate::Reg<data0_cmb10::Data0Cmb10Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb10; pub mod data0_cmb10;
#[doc = "ID0_CMB10 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb10::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 [`id0_cmb10::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@id0_cmb10`] #[doc = "ID0_CMB10 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb10::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb10::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb10`]
module"] module"]
#[doc(alias = "ID0_CMB10")] #[doc(alias = "ID0_CMB10")]
pub type Id0Cmb10 = crate::Reg<id0_cmb10::Id0Cmb10Spec>; pub type Id0Cmb10 = crate::Reg<id0_cmb10::Id0Cmb10Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb10; pub mod id0_cmb10;
#[doc = "ID1_CMB10 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb10::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 [`id1_cmb10::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@id1_cmb10`] #[doc = "ID1_CMB10 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb10::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb10::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb10`]
module"] module"]
#[doc(alias = "ID1_CMB10")] #[doc(alias = "ID1_CMB10")]
pub type Id1Cmb10 = crate::Reg<id1_cmb10::Id1Cmb10Spec>; pub type Id1Cmb10 = crate::Reg<id1_cmb10::Id1Cmb10Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb10; pub mod id1_cmb10;
#[doc = "CNSTAT_CMB11 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb11::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 [`cnstat_cmb11::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@cnstat_cmb11`] #[doc = "CNSTAT_CMB11 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb11::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb11::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb11`]
module"] module"]
#[doc(alias = "CNSTAT_CMB11")] #[doc(alias = "CNSTAT_CMB11")]
pub type CnstatCmb11 = crate::Reg<cnstat_cmb11::CnstatCmb11Spec>; pub type CnstatCmb11 = crate::Reg<cnstat_cmb11::CnstatCmb11Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb11; pub mod cnstat_cmb11;
#[doc = "TSTP_CMB11 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb11::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 [`tstp_cmb11::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@tstp_cmb11`] #[doc = "TSTP_CMB11 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb11::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb11::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb11`]
module"] module"]
#[doc(alias = "TSTP_CMB11")] #[doc(alias = "TSTP_CMB11")]
pub type TstpCmb11 = crate::Reg<tstp_cmb11::TstpCmb11Spec>; pub type TstpCmb11 = crate::Reg<tstp_cmb11::TstpCmb11Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb11; pub mod tstp_cmb11;
#[doc = "DATA3_CMB11 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb11::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 [`data3_cmb11::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@data3_cmb11`] #[doc = "DATA3_CMB11 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb11::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb11::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb11`]
module"] module"]
#[doc(alias = "DATA3_CMB11")] #[doc(alias = "DATA3_CMB11")]
pub type Data3Cmb11 = crate::Reg<data3_cmb11::Data3Cmb11Spec>; pub type Data3Cmb11 = crate::Reg<data3_cmb11::Data3Cmb11Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb11; pub mod data3_cmb11;
#[doc = "DATA2_CMB11 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb11::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 [`data2_cmb11::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@data2_cmb11`] #[doc = "DATA2_CMB11 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb11::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb11::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb11`]
module"] module"]
#[doc(alias = "DATA2_CMB11")] #[doc(alias = "DATA2_CMB11")]
pub type Data2Cmb11 = crate::Reg<data2_cmb11::Data2Cmb11Spec>; pub type Data2Cmb11 = crate::Reg<data2_cmb11::Data2Cmb11Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb11; pub mod data2_cmb11;
#[doc = "DATA1_CMB11 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb11::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 [`data1_cmb11::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@data1_cmb11`] #[doc = "DATA1_CMB11 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb11::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb11::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb11`]
module"] module"]
#[doc(alias = "DATA1_CMB11")] #[doc(alias = "DATA1_CMB11")]
pub type Data1Cmb11 = crate::Reg<data1_cmb11::Data1Cmb11Spec>; pub type Data1Cmb11 = crate::Reg<data1_cmb11::Data1Cmb11Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb11; pub mod data1_cmb11;
#[doc = "DATA0_CMB11 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb11::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 [`data0_cmb11::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@data0_cmb11`] #[doc = "DATA0_CMB11 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb11::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb11::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb11`]
module"] module"]
#[doc(alias = "DATA0_CMB11")] #[doc(alias = "DATA0_CMB11")]
pub type Data0Cmb11 = crate::Reg<data0_cmb11::Data0Cmb11Spec>; pub type Data0Cmb11 = crate::Reg<data0_cmb11::Data0Cmb11Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb11; pub mod data0_cmb11;
#[doc = "ID0_CMB11 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb11::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 [`id0_cmb11::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@id0_cmb11`] #[doc = "ID0_CMB11 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb11::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb11::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb11`]
module"] module"]
#[doc(alias = "ID0_CMB11")] #[doc(alias = "ID0_CMB11")]
pub type Id0Cmb11 = crate::Reg<id0_cmb11::Id0Cmb11Spec>; pub type Id0Cmb11 = crate::Reg<id0_cmb11::Id0Cmb11Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb11; pub mod id0_cmb11;
#[doc = "ID1_CMB11 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb11::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 [`id1_cmb11::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@id1_cmb11`] #[doc = "ID1_CMB11 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb11::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb11::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb11`]
module"] module"]
#[doc(alias = "ID1_CMB11")] #[doc(alias = "ID1_CMB11")]
pub type Id1Cmb11 = crate::Reg<id1_cmb11::Id1Cmb11Spec>; pub type Id1Cmb11 = crate::Reg<id1_cmb11::Id1Cmb11Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb11; pub mod id1_cmb11;
#[doc = "CNSTAT_CMB12 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb12::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 [`cnstat_cmb12::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@cnstat_cmb12`] #[doc = "CNSTAT_CMB12 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb12::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb12::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb12`]
module"] module"]
#[doc(alias = "CNSTAT_CMB12")] #[doc(alias = "CNSTAT_CMB12")]
pub type CnstatCmb12 = crate::Reg<cnstat_cmb12::CnstatCmb12Spec>; pub type CnstatCmb12 = crate::Reg<cnstat_cmb12::CnstatCmb12Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb12; pub mod cnstat_cmb12;
#[doc = "TSTP_CMB12 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb12::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 [`tstp_cmb12::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@tstp_cmb12`] #[doc = "TSTP_CMB12 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb12::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb12::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb12`]
module"] module"]
#[doc(alias = "TSTP_CMB12")] #[doc(alias = "TSTP_CMB12")]
pub type TstpCmb12 = crate::Reg<tstp_cmb12::TstpCmb12Spec>; pub type TstpCmb12 = crate::Reg<tstp_cmb12::TstpCmb12Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb12; pub mod tstp_cmb12;
#[doc = "DATA3_CMB12 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb12::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 [`data3_cmb12::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@data3_cmb12`] #[doc = "DATA3_CMB12 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb12::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb12::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb12`]
module"] module"]
#[doc(alias = "DATA3_CMB12")] #[doc(alias = "DATA3_CMB12")]
pub type Data3Cmb12 = crate::Reg<data3_cmb12::Data3Cmb12Spec>; pub type Data3Cmb12 = crate::Reg<data3_cmb12::Data3Cmb12Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb12; pub mod data3_cmb12;
#[doc = "DATA2_CMB12 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb12::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 [`data2_cmb12::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@data2_cmb12`] #[doc = "DATA2_CMB12 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb12::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb12::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb12`]
module"] module"]
#[doc(alias = "DATA2_CMB12")] #[doc(alias = "DATA2_CMB12")]
pub type Data2Cmb12 = crate::Reg<data2_cmb12::Data2Cmb12Spec>; pub type Data2Cmb12 = crate::Reg<data2_cmb12::Data2Cmb12Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb12; pub mod data2_cmb12;
#[doc = "DATA1_CMB12 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb12::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 [`data1_cmb12::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@data1_cmb12`] #[doc = "DATA1_CMB12 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb12::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb12::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb12`]
module"] module"]
#[doc(alias = "DATA1_CMB12")] #[doc(alias = "DATA1_CMB12")]
pub type Data1Cmb12 = crate::Reg<data1_cmb12::Data1Cmb12Spec>; pub type Data1Cmb12 = crate::Reg<data1_cmb12::Data1Cmb12Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb12; pub mod data1_cmb12;
#[doc = "DATA0_CMB12 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb12::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 [`data0_cmb12::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@data0_cmb12`] #[doc = "DATA0_CMB12 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb12::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb12::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb12`]
module"] module"]
#[doc(alias = "DATA0_CMB12")] #[doc(alias = "DATA0_CMB12")]
pub type Data0Cmb12 = crate::Reg<data0_cmb12::Data0Cmb12Spec>; pub type Data0Cmb12 = crate::Reg<data0_cmb12::Data0Cmb12Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb12; pub mod data0_cmb12;
#[doc = "ID0_CMB12 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb12::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 [`id0_cmb12::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@id0_cmb12`] #[doc = "ID0_CMB12 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb12::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb12::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb12`]
module"] module"]
#[doc(alias = "ID0_CMB12")] #[doc(alias = "ID0_CMB12")]
pub type Id0Cmb12 = crate::Reg<id0_cmb12::Id0Cmb12Spec>; pub type Id0Cmb12 = crate::Reg<id0_cmb12::Id0Cmb12Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb12; pub mod id0_cmb12;
#[doc = "ID1_CMB12 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb12::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 [`id1_cmb12::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@id1_cmb12`] #[doc = "ID1_CMB12 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb12::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb12::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb12`]
module"] module"]
#[doc(alias = "ID1_CMB12")] #[doc(alias = "ID1_CMB12")]
pub type Id1Cmb12 = crate::Reg<id1_cmb12::Id1Cmb12Spec>; pub type Id1Cmb12 = crate::Reg<id1_cmb12::Id1Cmb12Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb12; pub mod id1_cmb12;
#[doc = "CNSTAT_CMB13 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb13::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 [`cnstat_cmb13::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@cnstat_cmb13`] #[doc = "CNSTAT_CMB13 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb13::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb13::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb13`]
module"] module"]
#[doc(alias = "CNSTAT_CMB13")] #[doc(alias = "CNSTAT_CMB13")]
pub type CnstatCmb13 = crate::Reg<cnstat_cmb13::CnstatCmb13Spec>; pub type CnstatCmb13 = crate::Reg<cnstat_cmb13::CnstatCmb13Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb13; pub mod cnstat_cmb13;
#[doc = "TSTP_CMB13 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb13::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 [`tstp_cmb13::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@tstp_cmb13`] #[doc = "TSTP_CMB13 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb13::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb13::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb13`]
module"] module"]
#[doc(alias = "TSTP_CMB13")] #[doc(alias = "TSTP_CMB13")]
pub type TstpCmb13 = crate::Reg<tstp_cmb13::TstpCmb13Spec>; pub type TstpCmb13 = crate::Reg<tstp_cmb13::TstpCmb13Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb13; pub mod tstp_cmb13;
#[doc = "DATA3_CMB13 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb13::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 [`data3_cmb13::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@data3_cmb13`] #[doc = "DATA3_CMB13 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb13::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb13::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb13`]
module"] module"]
#[doc(alias = "DATA3_CMB13")] #[doc(alias = "DATA3_CMB13")]
pub type Data3Cmb13 = crate::Reg<data3_cmb13::Data3Cmb13Spec>; pub type Data3Cmb13 = crate::Reg<data3_cmb13::Data3Cmb13Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb13; pub mod data3_cmb13;
#[doc = "DATA2_CMB13 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb13::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 [`data2_cmb13::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@data2_cmb13`] #[doc = "DATA2_CMB13 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb13::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb13::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb13`]
module"] module"]
#[doc(alias = "DATA2_CMB13")] #[doc(alias = "DATA2_CMB13")]
pub type Data2Cmb13 = crate::Reg<data2_cmb13::Data2Cmb13Spec>; pub type Data2Cmb13 = crate::Reg<data2_cmb13::Data2Cmb13Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb13; pub mod data2_cmb13;
#[doc = "DATA1_CMB13 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb13::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 [`data1_cmb13::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@data1_cmb13`] #[doc = "DATA1_CMB13 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb13::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb13::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb13`]
module"] module"]
#[doc(alias = "DATA1_CMB13")] #[doc(alias = "DATA1_CMB13")]
pub type Data1Cmb13 = crate::Reg<data1_cmb13::Data1Cmb13Spec>; pub type Data1Cmb13 = crate::Reg<data1_cmb13::Data1Cmb13Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb13; pub mod data1_cmb13;
#[doc = "DATA0_CMB13 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb13::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 [`data0_cmb13::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@data0_cmb13`] #[doc = "DATA0_CMB13 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb13::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb13::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb13`]
module"] module"]
#[doc(alias = "DATA0_CMB13")] #[doc(alias = "DATA0_CMB13")]
pub type Data0Cmb13 = crate::Reg<data0_cmb13::Data0Cmb13Spec>; pub type Data0Cmb13 = crate::Reg<data0_cmb13::Data0Cmb13Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb13; pub mod data0_cmb13;
#[doc = "ID0_CMB13 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb13::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 [`id0_cmb13::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@id0_cmb13`] #[doc = "ID0_CMB13 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb13::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb13::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb13`]
module"] module"]
#[doc(alias = "ID0_CMB13")] #[doc(alias = "ID0_CMB13")]
pub type Id0Cmb13 = crate::Reg<id0_cmb13::Id0Cmb13Spec>; pub type Id0Cmb13 = crate::Reg<id0_cmb13::Id0Cmb13Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb13; pub mod id0_cmb13;
#[doc = "ID1_CMB13 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb13::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 [`id1_cmb13::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@id1_cmb13`] #[doc = "ID1_CMB13 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb13::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb13::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb13`]
module"] module"]
#[doc(alias = "ID1_CMB13")] #[doc(alias = "ID1_CMB13")]
pub type Id1Cmb13 = crate::Reg<id1_cmb13::Id1Cmb13Spec>; pub type Id1Cmb13 = crate::Reg<id1_cmb13::Id1Cmb13Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb13; pub mod id1_cmb13;
#[doc = "CNSTAT_CMB14 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb14::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 [`cnstat_cmb14::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@cnstat_cmb14`] #[doc = "CNSTAT_CMB14 (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb14::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb14::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_cmb14`]
module"] module"]
#[doc(alias = "CNSTAT_CMB14")] #[doc(alias = "CNSTAT_CMB14")]
pub type CnstatCmb14 = crate::Reg<cnstat_cmb14::CnstatCmb14Spec>; pub type CnstatCmb14 = crate::Reg<cnstat_cmb14::CnstatCmb14Spec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_cmb14; pub mod cnstat_cmb14;
#[doc = "TSTP_CMB14 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_cmb14::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 [`tstp_cmb14::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@tstp_cmb14`] #[doc = "TSTP_CMB14 (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_cmb14::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_cmb14::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_cmb14`]
module"] module"]
#[doc(alias = "TSTP_CMB14")] #[doc(alias = "TSTP_CMB14")]
pub type TstpCmb14 = crate::Reg<tstp_cmb14::TstpCmb14Spec>; pub type TstpCmb14 = crate::Reg<tstp_cmb14::TstpCmb14Spec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_cmb14; pub mod tstp_cmb14;
#[doc = "DATA3_CMB14 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_cmb14::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 [`data3_cmb14::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@data3_cmb14`] #[doc = "DATA3_CMB14 (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_cmb14::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_cmb14::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_cmb14`]
module"] module"]
#[doc(alias = "DATA3_CMB14")] #[doc(alias = "DATA3_CMB14")]
pub type Data3Cmb14 = crate::Reg<data3_cmb14::Data3Cmb14Spec>; pub type Data3Cmb14 = crate::Reg<data3_cmb14::Data3Cmb14Spec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_cmb14; pub mod data3_cmb14;
#[doc = "DATA2_CMB14 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_cmb14::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 [`data2_cmb14::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@data2_cmb14`] #[doc = "DATA2_CMB14 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_cmb14::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_cmb14::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_cmb14`]
module"] module"]
#[doc(alias = "DATA2_CMB14")] #[doc(alias = "DATA2_CMB14")]
pub type Data2Cmb14 = crate::Reg<data2_cmb14::Data2Cmb14Spec>; pub type Data2Cmb14 = crate::Reg<data2_cmb14::Data2Cmb14Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_cmb14; pub mod data2_cmb14;
#[doc = "DATA1_CMB14 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb14::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 [`data1_cmb14::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@data1_cmb14`] #[doc = "DATA1_CMB14 (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb14::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb14::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_cmb14`]
module"] module"]
#[doc(alias = "DATA1_CMB14")] #[doc(alias = "DATA1_CMB14")]
pub type Data1Cmb14 = crate::Reg<data1_cmb14::Data1Cmb14Spec>; pub type Data1Cmb14 = crate::Reg<data1_cmb14::Data1Cmb14Spec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_cmb14; pub mod data1_cmb14;
#[doc = "DATA0_CMB14 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb14::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 [`data0_cmb14::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@data0_cmb14`] #[doc = "DATA0_CMB14 (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb14::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb14::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_cmb14`]
module"] module"]
#[doc(alias = "DATA0_CMB14")] #[doc(alias = "DATA0_CMB14")]
pub type Data0Cmb14 = crate::Reg<data0_cmb14::Data0Cmb14Spec>; pub type Data0Cmb14 = crate::Reg<data0_cmb14::Data0Cmb14Spec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_cmb14; pub mod data0_cmb14;
#[doc = "ID0_CMB14 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_cmb14::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 [`id0_cmb14::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@id0_cmb14`] #[doc = "ID0_CMB14 (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_cmb14::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_cmb14::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_cmb14`]
module"] module"]
#[doc(alias = "ID0_CMB14")] #[doc(alias = "ID0_CMB14")]
pub type Id0Cmb14 = crate::Reg<id0_cmb14::Id0Cmb14Spec>; pub type Id0Cmb14 = crate::Reg<id0_cmb14::Id0Cmb14Spec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_cmb14; pub mod id0_cmb14;
#[doc = "ID1_CMB14 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_cmb14::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 [`id1_cmb14::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@id1_cmb14`] #[doc = "ID1_CMB14 (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_cmb14::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_cmb14::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_cmb14`]
module"] module"]
#[doc(alias = "ID1_CMB14")] #[doc(alias = "ID1_CMB14")]
pub type Id1Cmb14 = crate::Reg<id1_cmb14::Id1Cmb14Spec>; pub type Id1Cmb14 = crate::Reg<id1_cmb14::Id1Cmb14Spec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_cmb14; pub mod id1_cmb14;
#[doc = "CNSTAT_HCMB (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_hcmb::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 [`cnstat_hcmb::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@cnstat_hcmb`] #[doc = "CNSTAT_HCMB (rw) register accessor: Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_hcmb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_hcmb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cnstat_hcmb`]
module"] module"]
#[doc(alias = "CNSTAT_HCMB")] #[doc(alias = "CNSTAT_HCMB")]
pub type CnstatHcmb = crate::Reg<cnstat_hcmb::CnstatHcmbSpec>; pub type CnstatHcmb = crate::Reg<cnstat_hcmb::CnstatHcmbSpec>;
#[doc = "Buffer Status / Control Register"] #[doc = "Buffer Status / Control Register"]
pub mod cnstat_hcmb; pub mod cnstat_hcmb;
#[doc = "TSTP_HCMB (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`tstp_hcmb::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 [`tstp_hcmb::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@tstp_hcmb`] #[doc = "TSTP_HCMB (rw) register accessor: CAN Frame Timestamp\n\nYou can [`read`](crate::Reg::read) this register and get [`tstp_hcmb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`tstp_hcmb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@tstp_hcmb`]
module"] module"]
#[doc(alias = "TSTP_HCMB")] #[doc(alias = "TSTP_HCMB")]
pub type TstpHcmb = crate::Reg<tstp_hcmb::TstpHcmbSpec>; pub type TstpHcmb = crate::Reg<tstp_hcmb::TstpHcmbSpec>;
#[doc = "CAN Frame Timestamp"] #[doc = "CAN Frame Timestamp"]
pub mod tstp_hcmb; pub mod tstp_hcmb;
#[doc = "DATA3_HCMB (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data3_hcmb::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 [`data3_hcmb::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@data3_hcmb`] #[doc = "DATA3_HCMB (rw) register accessor: CAN Frame Data Word 3\n\nYou can [`read`](crate::Reg::read) this register and get [`data3_hcmb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data3_hcmb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data3_hcmb`]
module"] module"]
#[doc(alias = "DATA3_HCMB")] #[doc(alias = "DATA3_HCMB")]
pub type Data3Hcmb = crate::Reg<data3_hcmb::Data3HcmbSpec>; pub type Data3Hcmb = crate::Reg<data3_hcmb::Data3HcmbSpec>;
#[doc = "CAN Frame Data Word 3"] #[doc = "CAN Frame Data Word 3"]
pub mod data3_hcmb; pub mod data3_hcmb;
#[doc = "DATA2_HCMB (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data2_hcmb::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 [`data2_hcmb::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@data2_hcmb`] #[doc = "DATA2_HCMB (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data2_hcmb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data2_hcmb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data2_hcmb`]
module"] module"]
#[doc(alias = "DATA2_HCMB")] #[doc(alias = "DATA2_HCMB")]
pub type Data2Hcmb = crate::Reg<data2_hcmb::Data2HcmbSpec>; pub type Data2Hcmb = crate::Reg<data2_hcmb::Data2HcmbSpec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data2_hcmb; pub mod data2_hcmb;
#[doc = "DATA1_HCMB (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_hcmb::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 [`data1_hcmb::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@data1_hcmb`] #[doc = "DATA1_HCMB (rw) register accessor: CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_hcmb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_hcmb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data1_hcmb`]
module"] module"]
#[doc(alias = "DATA1_HCMB")] #[doc(alias = "DATA1_HCMB")]
pub type Data1Hcmb = crate::Reg<data1_hcmb::Data1HcmbSpec>; pub type Data1Hcmb = crate::Reg<data1_hcmb::Data1HcmbSpec>;
#[doc = "CAN Frame Data Word 2"] #[doc = "CAN Frame Data Word 2"]
pub mod data1_hcmb; pub mod data1_hcmb;
#[doc = "DATA0_HCMB (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_hcmb::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 [`data0_hcmb::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@data0_hcmb`] #[doc = "DATA0_HCMB (rw) register accessor: CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_hcmb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_hcmb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data0_hcmb`]
module"] module"]
#[doc(alias = "DATA0_HCMB")] #[doc(alias = "DATA0_HCMB")]
pub type Data0Hcmb = crate::Reg<data0_hcmb::Data0HcmbSpec>; pub type Data0Hcmb = crate::Reg<data0_hcmb::Data0HcmbSpec>;
#[doc = "CAN Frame Data Word 0"] #[doc = "CAN Frame Data Word 0"]
pub mod data0_hcmb; pub mod data0_hcmb;
#[doc = "ID0_HCMB (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id0_hcmb::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 [`id0_hcmb::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@id0_hcmb`] #[doc = "ID0_HCMB (rw) register accessor: CAN Frame Identifier Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`id0_hcmb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id0_hcmb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id0_hcmb`]
module"] module"]
#[doc(alias = "ID0_HCMB")] #[doc(alias = "ID0_HCMB")]
pub type Id0Hcmb = crate::Reg<id0_hcmb::Id0HcmbSpec>; pub type Id0Hcmb = crate::Reg<id0_hcmb::Id0HcmbSpec>;
#[doc = "CAN Frame Identifier Word 0"] #[doc = "CAN Frame Identifier Word 0"]
pub mod id0_hcmb; pub mod id0_hcmb;
#[doc = "ID1_HCMB (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`id1_hcmb::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 [`id1_hcmb::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@id1_hcmb`] #[doc = "ID1_HCMB (rw) register accessor: CAN Frame Identifier Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`id1_hcmb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`id1_hcmb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@id1_hcmb`]
module"] module"]
#[doc(alias = "ID1_HCMB")] #[doc(alias = "ID1_HCMB")]
pub type Id1Hcmb = crate::Reg<id1_hcmb::Id1HcmbSpec>; pub type Id1Hcmb = crate::Reg<id1_hcmb::Id1HcmbSpec>;
#[doc = "CAN Frame Identifier Word 1"] #[doc = "CAN Frame Identifier Word 1"]
pub mod id1_hcmb; pub mod id1_hcmb;
#[doc = "CGCR (rw) register accessor: CAN Global Configuration Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cgcr::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 [`cgcr::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@cgcr`] #[doc = "CGCR (rw) register accessor: CAN Global Configuration Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cgcr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cgcr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cgcr`]
module"] module"]
#[doc(alias = "CGCR")] #[doc(alias = "CGCR")]
pub type Cgcr = crate::Reg<cgcr::CgcrSpec>; pub type Cgcr = crate::Reg<cgcr::CgcrSpec>;
#[doc = "CAN Global Configuration Register"] #[doc = "CAN Global Configuration Register"]
pub mod cgcr; pub mod cgcr;
#[doc = "CTIM (rw) register accessor: CAN Timing Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ctim::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 [`ctim::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@ctim`] #[doc = "CTIM (rw) register accessor: CAN Timing Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctim::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctim::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctim`]
module"] module"]
#[doc(alias = "CTIM")] #[doc(alias = "CTIM")]
pub type Ctim = crate::Reg<ctim::CtimSpec>; pub type Ctim = crate::Reg<ctim::CtimSpec>;
#[doc = "CAN Timing Register"] #[doc = "CAN Timing Register"]
pub mod ctim; pub mod ctim;
#[doc = "GMSKX (rw) register accessor: CAN Global Mask Extension\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`gmskx::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 [`gmskx::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@gmskx`] #[doc = "GMSKX (rw) register accessor: CAN Global Mask Extension\n\nYou can [`read`](crate::Reg::read) this register and get [`gmskx::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gmskx::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gmskx`]
module"] module"]
#[doc(alias = "GMSKX")] #[doc(alias = "GMSKX")]
pub type Gmskx = crate::Reg<gmskx::GmskxSpec>; pub type Gmskx = crate::Reg<gmskx::GmskxSpec>;
#[doc = "CAN Global Mask Extension"] #[doc = "CAN Global Mask Extension"]
pub mod gmskx; pub mod gmskx;
#[doc = "GMSKB (rw) register accessor: CAN Global Mask Base\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`gmskb::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 [`gmskb::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@gmskb`] #[doc = "GMSKB (rw) register accessor: CAN Global Mask Base\n\nYou can [`read`](crate::Reg::read) this register and get [`gmskb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`gmskb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@gmskb`]
module"] module"]
#[doc(alias = "GMSKB")] #[doc(alias = "GMSKB")]
pub type Gmskb = crate::Reg<gmskb::GmskbSpec>; pub type Gmskb = crate::Reg<gmskb::GmskbSpec>;
#[doc = "CAN Global Mask Base"] #[doc = "CAN Global Mask Base"]
pub mod gmskb; pub mod gmskb;
#[doc = "BMSKX (rw) register accessor: CAN Basic Mask Extension\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`bmskx::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 [`bmskx::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@bmskx`] #[doc = "BMSKX (rw) register accessor: CAN Basic Mask Extension\n\nYou can [`read`](crate::Reg::read) this register and get [`bmskx::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bmskx::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@bmskx`]
module"] module"]
#[doc(alias = "BMSKX")] #[doc(alias = "BMSKX")]
pub type Bmskx = crate::Reg<bmskx::BmskxSpec>; pub type Bmskx = crate::Reg<bmskx::BmskxSpec>;
#[doc = "CAN Basic Mask Extension"] #[doc = "CAN Basic Mask Extension"]
pub mod bmskx; pub mod bmskx;
#[doc = "BMSKB (rw) register accessor: CAN Basic Mask Base\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`bmskb::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 [`bmskb::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@bmskb`] #[doc = "BMSKB (rw) register accessor: CAN Basic Mask Base\n\nYou can [`read`](crate::Reg::read) this register and get [`bmskb::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bmskb::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@bmskb`]
module"] module"]
#[doc(alias = "BMSKB")] #[doc(alias = "BMSKB")]
pub type Bmskb = crate::Reg<bmskb::BmskbSpec>; pub type Bmskb = crate::Reg<bmskb::BmskbSpec>;
#[doc = "CAN Basic Mask Base"] #[doc = "CAN Basic Mask Base"]
pub mod bmskb; pub mod bmskb;
#[doc = "CIEN (rw) register accessor: CAN Interrupt Enable Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cien::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 [`cien::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@cien`] #[doc = "CIEN (rw) register accessor: CAN Interrupt Enable Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cien::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cien::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cien`]
module"] module"]
#[doc(alias = "CIEN")] #[doc(alias = "CIEN")]
pub type Cien = crate::Reg<cien::CienSpec>; pub type Cien = crate::Reg<cien::CienSpec>;
#[doc = "CAN Interrupt Enable Register"] #[doc = "CAN Interrupt Enable Register"]
pub mod cien; pub mod cien;
#[doc = "CIPND (rw) register accessor: CAN Interrupt Pending Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cipnd::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 [`cipnd::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@cipnd`] #[doc = "CIPND (rw) register accessor: CAN Interrupt Pending Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cipnd::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cipnd::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cipnd`]
module"] module"]
#[doc(alias = "CIPND")] #[doc(alias = "CIPND")]
pub type Cipnd = crate::Reg<cipnd::CipndSpec>; pub type Cipnd = crate::Reg<cipnd::CipndSpec>;
#[doc = "CAN Interrupt Pending Register"] #[doc = "CAN Interrupt Pending Register"]
pub mod cipnd; pub mod cipnd;
#[doc = "CICLR (rw) register accessor: CAN Interrupt Clear Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ciclr::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 [`ciclr::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@ciclr`] #[doc = "CICLR (rw) register accessor: CAN Interrupt Clear Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ciclr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ciclr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ciclr`]
module"] module"]
#[doc(alias = "CICLR")] #[doc(alias = "CICLR")]
pub type Ciclr = crate::Reg<ciclr::CiclrSpec>; pub type Ciclr = crate::Reg<ciclr::CiclrSpec>;
#[doc = "CAN Interrupt Clear Register"] #[doc = "CAN Interrupt Clear Register"]
pub mod ciclr; pub mod ciclr;
#[doc = "CICEN (rw) register accessor: CAN Interrupt Code Enable Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cicen::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 [`cicen::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@cicen`] #[doc = "CICEN (rw) register accessor: CAN Interrupt Code Enable Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cicen::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cicen::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cicen`]
module"] module"]
#[doc(alias = "CICEN")] #[doc(alias = "CICEN")]
pub type Cicen = crate::Reg<cicen::CicenSpec>; pub type Cicen = crate::Reg<cicen::CicenSpec>;
#[doc = "CAN Interrupt Code Enable Register"] #[doc = "CAN Interrupt Code Enable Register"]
pub mod cicen; pub mod cicen;
#[doc = "CSTPND (rw) register accessor: CAN Status Pending Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cstpnd::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 [`cstpnd::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@cstpnd`] #[doc = "CSTPND (rw) register accessor: CAN Status Pending Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cstpnd::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cstpnd::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cstpnd`]
module"] module"]
#[doc(alias = "CSTPND")] #[doc(alias = "CSTPND")]
pub type Cstpnd = crate::Reg<cstpnd::CstpndSpec>; pub type Cstpnd = crate::Reg<cstpnd::CstpndSpec>;
#[doc = "CAN Status Pending Register"] #[doc = "CAN Status Pending Register"]
pub mod cstpnd; pub mod cstpnd;
#[doc = "CANEC (rw) register accessor: CAN Error Counter Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`canec::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 [`canec::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@canec`] #[doc = "CANEC (rw) register accessor: CAN Error Counter Register\n\nYou can [`read`](crate::Reg::read) this register and get [`canec::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`canec::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@canec`]
module"] module"]
#[doc(alias = "CANEC")] #[doc(alias = "CANEC")]
pub type Canec = crate::Reg<canec::CanecSpec>; pub type Canec = crate::Reg<canec::CanecSpec>;
#[doc = "CAN Error Counter Register"] #[doc = "CAN Error Counter Register"]
pub mod canec; pub mod canec;
#[doc = "CEDIAG (rw) register accessor: CAN Error Diagnostic Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cediag::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 [`cediag::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@cediag`] #[doc = "CEDIAG (rw) register accessor: CAN Error Diagnostic Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cediag::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cediag::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@cediag`]
module"] module"]
#[doc(alias = "CEDIAG")] #[doc(alias = "CEDIAG")]
pub type Cediag = crate::Reg<cediag::CediagSpec>; pub type Cediag = crate::Reg<cediag::CediagSpec>;
#[doc = "CAN Error Diagnostic Register"] #[doc = "CAN Error Diagnostic Register"]
pub mod cediag; pub mod cediag;
#[doc = "CTMR (rw) register accessor: CAN Timer Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ctmr::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 [`ctmr::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@ctmr`] #[doc = "CTMR (rw) register accessor: CAN Timer Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctmr::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctmr::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@ctmr`]
module"] module"]
#[doc(alias = "CTMR")] #[doc(alias = "CTMR")]
pub type Ctmr = crate::Reg<ctmr::CtmrSpec>; pub type Ctmr = crate::Reg<ctmr::CtmrSpec>;

View File

@ -60,19 +60,16 @@ impl W {
- Unused in standard, ID\\[17:15\\] - Unused in standard, ID\\[17:15\\]
in extended"] in extended"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn bm0(&mut self) -> Bm0W<BmskbSpec> { pub fn bm0(&mut self) -> Bm0W<BmskbSpec> {
Bm0W::new(self, 0) Bm0W::new(self, 0)
} }
#[doc = "Bit 3 - Identifier Extension Bit"] #[doc = "Bit 3 - Identifier Extension Bit"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ide(&mut self) -> IdeW<BmskbSpec> { pub fn ide(&mut self) -> IdeW<BmskbSpec> {
IdeW::new(self, 3) IdeW::new(self, 3)
} }
#[doc = "Bit 4 - Remote Transmission Request in Standard, Substitute Remote Request (SRR) in extended"] #[doc = "Bit 4 - Remote Transmission Request in Standard, Substitute Remote Request (SRR) in extended"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn rtr(&mut self) -> RtrW<BmskbSpec> { pub fn rtr(&mut self) -> RtrW<BmskbSpec> {
RtrW::new(self, 4) RtrW::new(self, 4)
} }
@ -81,12 +78,11 @@ in extended"]
in standard, ID\\[28:18\\] in standard, ID\\[28:18\\]
in extended"] in extended"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn bm1(&mut self) -> Bm1W<BmskbSpec> { pub fn bm1(&mut self) -> Bm1W<BmskbSpec> {
Bm1W::new(self, 5) Bm1W::new(self, 5)
} }
} }
#[doc = "CAN Basic Mask Base\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`bmskb::R`](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 [`bmskb::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Basic Mask Base\n\nYou can [`read`](crate::Reg::read) this register and get [`bmskb::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bmskb::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct BmskbSpec; pub struct BmskbSpec;
impl crate::RegisterSpec for BmskbSpec { impl crate::RegisterSpec for BmskbSpec {
type Ux = u32; type Ux = u32;

View File

@ -31,7 +31,6 @@ in extended, unused standard"]
impl W { impl W {
#[doc = "Bit 0 - Extended Remote transmission Request Bit"] #[doc = "Bit 0 - Extended Remote transmission Request Bit"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn xrtr(&mut self) -> XrtrW<BmskxSpec> { pub fn xrtr(&mut self) -> XrtrW<BmskxSpec> {
XrtrW::new(self, 0) XrtrW::new(self, 0)
} }
@ -39,12 +38,11 @@ impl W {
used when an extended frame is received. ID\\[14:0\\] used when an extended frame is received. ID\\[14:0\\]
in extended, unused standard"] in extended, unused standard"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn bm(&mut self) -> BmW<BmskxSpec> { pub fn bm(&mut self) -> BmW<BmskxSpec> {
BmW::new(self, 1) BmW::new(self, 1)
} }
} }
#[doc = "CAN Basic Mask Extension\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`bmskx::R`](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 [`bmskx::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Basic Mask Extension\n\nYou can [`read`](crate::Reg::read) this register and get [`bmskx::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`bmskx::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct BmskxSpec; pub struct BmskxSpec;
impl crate::RegisterSpec for BmskxSpec { impl crate::RegisterSpec for BmskxSpec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Transmit Error Counter"] #[doc = "Bits 0:7 - Transmit Error Counter"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn tec(&mut self) -> TecW<CanecSpec> { pub fn tec(&mut self) -> TecW<CanecSpec> {
TecW::new(self, 0) TecW::new(self, 0)
} }
#[doc = "Bits 8:15 - Receive Error Counter"] #[doc = "Bits 8:15 - Receive Error Counter"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn rec(&mut self) -> RecW<CanecSpec> { pub fn rec(&mut self) -> RecW<CanecSpec> {
RecW::new(self, 8) RecW::new(self, 8)
} }
} }
#[doc = "CAN Error Counter Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`canec::R`](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 [`canec::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Error Counter Register\n\nYou can [`read`](crate::Reg::read) this register and get [`canec::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`canec::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CanecSpec; pub struct CanecSpec;
impl crate::RegisterSpec for CanecSpec { impl crate::RegisterSpec for CanecSpec {
type Ux = u32; type Ux = u32;

View File

@ -70,48 +70,41 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Error Field Identifier"] #[doc = "Bits 0:3 - Error Field Identifier"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn efid(&mut self) -> EfidW<CediagSpec> { pub fn efid(&mut self) -> EfidW<CediagSpec> {
EfidW::new(self, 0) EfidW::new(self, 0)
} }
#[doc = "Bits 4:9 - Error Bit Identifier"] #[doc = "Bits 4:9 - Error Bit Identifier"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ebid(&mut self) -> EbidW<CediagSpec> { pub fn ebid(&mut self) -> EbidW<CediagSpec> {
EbidW::new(self, 4) EbidW::new(self, 4)
} }
#[doc = "Bit 10 - Transmit Error"] #[doc = "Bit 10 - Transmit Error"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn txe(&mut self) -> TxeW<CediagSpec> { pub fn txe(&mut self) -> TxeW<CediagSpec> {
TxeW::new(self, 10) TxeW::new(self, 10)
} }
#[doc = "Bit 11 - Stuff Error"] #[doc = "Bit 11 - Stuff Error"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn stuff(&mut self) -> StuffW<CediagSpec> { pub fn stuff(&mut self) -> StuffW<CediagSpec> {
StuffW::new(self, 11) StuffW::new(self, 11)
} }
#[doc = "Bit 12 - CRC"] #[doc = "Bit 12 - CRC"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn crc(&mut self) -> CrcW<CediagSpec> { pub fn crc(&mut self) -> CrcW<CediagSpec> {
CrcW::new(self, 12) CrcW::new(self, 12)
} }
#[doc = "Bit 13 - Monitor"] #[doc = "Bit 13 - Monitor"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn mon(&mut self) -> MonW<CediagSpec> { pub fn mon(&mut self) -> MonW<CediagSpec> {
MonW::new(self, 13) MonW::new(self, 13)
} }
#[doc = "Bit 14 - Drive"] #[doc = "Bit 14 - Drive"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn drive(&mut self) -> DriveW<CediagSpec> { pub fn drive(&mut self) -> DriveW<CediagSpec> {
DriveW::new(self, 14) DriveW::new(self, 14)
} }
} }
#[doc = "CAN Error Diagnostic Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cediag::R`](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 [`cediag::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Error Diagnostic Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cediag::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cediag::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CediagSpec; pub struct CediagSpec;
impl crate::RegisterSpec for CediagSpec { impl crate::RegisterSpec for CediagSpec {
type Ux = u32; type Ux = u32;

View File

@ -115,78 +115,66 @@ impl R {
impl W { impl W {
#[doc = "Bit 0 - CAN Enable"] #[doc = "Bit 0 - CAN Enable"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn canen(&mut self) -> CanenW<CgcrSpec> { pub fn canen(&mut self) -> CanenW<CgcrSpec> {
CanenW::new(self, 0) CanenW::new(self, 0)
} }
#[doc = "Bit 1 - RW,Control Receive"] #[doc = "Bit 1 - RW,Control Receive"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn crx(&mut self) -> CrxW<CgcrSpec> { pub fn crx(&mut self) -> CrxW<CgcrSpec> {
CrxW::new(self, 1) CrxW::new(self, 1)
} }
#[doc = "Bit 2 - RW,Control Transmit"] #[doc = "Bit 2 - RW,Control Transmit"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ctx(&mut self) -> CtxW<CgcrSpec> { pub fn ctx(&mut self) -> CtxW<CgcrSpec> {
CtxW::new(self, 2) CtxW::new(self, 2)
} }
#[doc = "Bit 3 - Buffer Lock"] #[doc = "Bit 3 - Buffer Lock"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn bufflock(&mut self) -> BufflockW<CgcrSpec> { pub fn bufflock(&mut self) -> BufflockW<CgcrSpec> {
BufflockW::new(self, 3) BufflockW::new(self, 3)
} }
#[doc = "Bit 4 - Time Sync Enable"] #[doc = "Bit 4 - Time Sync Enable"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn tstpen(&mut self) -> TstpenW<CgcrSpec> { pub fn tstpen(&mut self) -> TstpenW<CgcrSpec> {
TstpenW::new(self, 4) TstpenW::new(self, 4)
} }
#[doc = "Bit 5 - Data Direction"] #[doc = "Bit 5 - Data Direction"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ddir(&mut self) -> DdirW<CgcrSpec> { pub fn ddir(&mut self) -> DdirW<CgcrSpec> {
DdirW::new(self, 5) DdirW::new(self, 5)
} }
#[doc = "Bit 6 - Listen Only"] #[doc = "Bit 6 - Listen Only"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn lo(&mut self) -> LoW<CgcrSpec> { pub fn lo(&mut self) -> LoW<CgcrSpec> {
LoW::new(self, 6) LoW::new(self, 6)
} }
#[doc = "Bit 7 - Ignore Acknowledge"] #[doc = "Bit 7 - Ignore Acknowledge"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ignack(&mut self) -> IgnackW<CgcrSpec> { pub fn ignack(&mut self) -> IgnackW<CgcrSpec> {
IgnackW::new(self, 7) IgnackW::new(self, 7)
} }
#[doc = "Bit 8 - Loopback"] #[doc = "Bit 8 - Loopback"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn loopback(&mut self) -> LoopbackW<CgcrSpec> { pub fn loopback(&mut self) -> LoopbackW<CgcrSpec> {
LoopbackW::new(self, 8) LoopbackW::new(self, 8)
} }
#[doc = "Bit 9 - Internal"] #[doc = "Bit 9 - Internal"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn internal(&mut self) -> InternalW<CgcrSpec> { pub fn internal(&mut self) -> InternalW<CgcrSpec> {
InternalW::new(self, 9) InternalW::new(self, 9)
} }
#[doc = "Bit 10 - Diagnostic Enable"] #[doc = "Bit 10 - Diagnostic Enable"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn diagen(&mut self) -> DiagenW<CgcrSpec> { pub fn diagen(&mut self) -> DiagenW<CgcrSpec> {
DiagenW::new(self, 10) DiagenW::new(self, 10)
} }
#[doc = "Bit 11 - Error Interrupt Type"] #[doc = "Bit 11 - Error Interrupt Type"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn eit(&mut self) -> EitW<CgcrSpec> { pub fn eit(&mut self) -> EitW<CgcrSpec> {
EitW::new(self, 11) EitW::new(self, 11)
} }
} }
#[doc = "CAN Global Configuration Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cgcr::R`](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 [`cgcr::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Global Configuration Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cgcr::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cgcr::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CgcrSpec; pub struct CgcrSpec;
impl crate::RegisterSpec for CgcrSpec { impl crate::RegisterSpec for CgcrSpec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:14 - Buffer Interrupt Code Enable\\[14:0\\]"] #[doc = "Bits 0:14 - Buffer Interrupt Code Enable\\[14:0\\]"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn icen(&mut self) -> IcenW<CicenSpec> { pub fn icen(&mut self) -> IcenW<CicenSpec> {
IcenW::new(self, 0) IcenW::new(self, 0)
} }
#[doc = "Bit 15 - Error Interrupt Code Enable"] #[doc = "Bit 15 - Error Interrupt Code Enable"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn eicen(&mut self) -> EicenW<CicenSpec> { pub fn eicen(&mut self) -> EicenW<CicenSpec> {
EicenW::new(self, 15) EicenW::new(self, 15)
} }
} }
#[doc = "CAN Interrupt Code Enable Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cicen::R`](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 [`cicen::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Interrupt Code Enable Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cicen::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cicen::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CicenSpec; pub struct CicenSpec;
impl crate::RegisterSpec for CicenSpec { impl crate::RegisterSpec for CicenSpec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:14 - Buffer Interrupt Clear\\[14:0\\]"] #[doc = "Bits 0:14 - Buffer Interrupt Clear\\[14:0\\]"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn iclr(&mut self) -> IclrW<CiclrSpec> { pub fn iclr(&mut self) -> IclrW<CiclrSpec> {
IclrW::new(self, 0) IclrW::new(self, 0)
} }
#[doc = "Bit 15 - Error Interrupt Clear"] #[doc = "Bit 15 - Error Interrupt Clear"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn eiclr(&mut self) -> EiclrW<CiclrSpec> { pub fn eiclr(&mut self) -> EiclrW<CiclrSpec> {
EiclrW::new(self, 15) EiclrW::new(self, 15)
} }
} }
#[doc = "CAN Interrupt Clear Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ciclr::R`](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 [`ciclr::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Interrupt Clear Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ciclr::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ciclr::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CiclrSpec; pub struct CiclrSpec;
impl crate::RegisterSpec for CiclrSpec { impl crate::RegisterSpec for CiclrSpec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:14 - Buffer Interrupt Enable\\[14:0\\]"] #[doc = "Bits 0:14 - Buffer Interrupt Enable\\[14:0\\]"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ien(&mut self) -> IenW<CienSpec> { pub fn ien(&mut self) -> IenW<CienSpec> {
IenW::new(self, 0) IenW::new(self, 0)
} }
#[doc = "Bit 15 - Error Interrupt Enable"] #[doc = "Bit 15 - Error Interrupt Enable"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn eien(&mut self) -> EienW<CienSpec> { pub fn eien(&mut self) -> EienW<CienSpec> {
EienW::new(self, 15) EienW::new(self, 15)
} }
} }
#[doc = "CAN Interrupt Enable Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cien::R`](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 [`cien::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Interrupt Enable Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cien::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cien::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CienSpec; pub struct CienSpec;
impl crate::RegisterSpec for CienSpec { impl crate::RegisterSpec for CienSpec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:14 - Buffer Interrupt Pending\\[14:0\\]"] #[doc = "Bits 0:14 - Buffer Interrupt Pending\\[14:0\\]"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ipnd(&mut self) -> IpndW<CipndSpec> { pub fn ipnd(&mut self) -> IpndW<CipndSpec> {
IpndW::new(self, 0) IpndW::new(self, 0)
} }
#[doc = "Bit 15 - Error Interrupt Pending"] #[doc = "Bit 15 - Error Interrupt Pending"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn eipnd(&mut self) -> EipndW<CipndSpec> { pub fn eipnd(&mut self) -> EipndW<CipndSpec> {
EipndW::new(self, 15) EipndW::new(self, 15)
} }
} }
#[doc = "CAN Interrupt Pending Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cipnd::R`](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 [`cipnd::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Interrupt Pending Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cipnd::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cipnd::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CipndSpec; pub struct CipndSpec;
impl crate::RegisterSpec for CipndSpec { impl crate::RegisterSpec for CipndSpec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb0Spec> { pub fn st(&mut self) -> StW<CnstatCmb0Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb0Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb0Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb0Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb0Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb0::R`](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 [`cnstat_cmb0::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb0::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb0::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb0Spec; pub struct CnstatCmb0Spec;
impl crate::RegisterSpec for CnstatCmb0Spec { impl crate::RegisterSpec for CnstatCmb0Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb1Spec> { pub fn st(&mut self) -> StW<CnstatCmb1Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb1Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb1Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb1Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb1Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb1::R`](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 [`cnstat_cmb1::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb1::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb1::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb1Spec; pub struct CnstatCmb1Spec;
impl crate::RegisterSpec for CnstatCmb1Spec { impl crate::RegisterSpec for CnstatCmb1Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb10Spec> { pub fn st(&mut self) -> StW<CnstatCmb10Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb10Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb10Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb10Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb10Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb10::R`](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 [`cnstat_cmb10::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb10::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb10::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb10Spec; pub struct CnstatCmb10Spec;
impl crate::RegisterSpec for CnstatCmb10Spec { impl crate::RegisterSpec for CnstatCmb10Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb11Spec> { pub fn st(&mut self) -> StW<CnstatCmb11Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb11Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb11Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb11Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb11Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb11::R`](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 [`cnstat_cmb11::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb11::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb11::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb11Spec; pub struct CnstatCmb11Spec;
impl crate::RegisterSpec for CnstatCmb11Spec { impl crate::RegisterSpec for CnstatCmb11Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb12Spec> { pub fn st(&mut self) -> StW<CnstatCmb12Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb12Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb12Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb12Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb12Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb12::R`](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 [`cnstat_cmb12::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb12::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb12::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb12Spec; pub struct CnstatCmb12Spec;
impl crate::RegisterSpec for CnstatCmb12Spec { impl crate::RegisterSpec for CnstatCmb12Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb13Spec> { pub fn st(&mut self) -> StW<CnstatCmb13Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb13Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb13Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb13Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb13Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb13::R`](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 [`cnstat_cmb13::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb13::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb13::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb13Spec; pub struct CnstatCmb13Spec;
impl crate::RegisterSpec for CnstatCmb13Spec { impl crate::RegisterSpec for CnstatCmb13Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb14Spec> { pub fn st(&mut self) -> StW<CnstatCmb14Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb14Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb14Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb14Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb14Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb14::R`](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 [`cnstat_cmb14::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb14::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb14::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb14Spec; pub struct CnstatCmb14Spec;
impl crate::RegisterSpec for CnstatCmb14Spec { impl crate::RegisterSpec for CnstatCmb14Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb2Spec> { pub fn st(&mut self) -> StW<CnstatCmb2Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb2Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb2Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb2Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb2Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb2::R`](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 [`cnstat_cmb2::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb2::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb2::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb2Spec; pub struct CnstatCmb2Spec;
impl crate::RegisterSpec for CnstatCmb2Spec { impl crate::RegisterSpec for CnstatCmb2Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb3Spec> { pub fn st(&mut self) -> StW<CnstatCmb3Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb3Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb3Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb3Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb3Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb3::R`](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 [`cnstat_cmb3::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb3::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb3::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb3Spec; pub struct CnstatCmb3Spec;
impl crate::RegisterSpec for CnstatCmb3Spec { impl crate::RegisterSpec for CnstatCmb3Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb4Spec> { pub fn st(&mut self) -> StW<CnstatCmb4Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb4Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb4Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb4Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb4Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb4::R`](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 [`cnstat_cmb4::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb4::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb4::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb4Spec; pub struct CnstatCmb4Spec;
impl crate::RegisterSpec for CnstatCmb4Spec { impl crate::RegisterSpec for CnstatCmb4Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb5Spec> { pub fn st(&mut self) -> StW<CnstatCmb5Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb5Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb5Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb5Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb5Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb5::R`](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 [`cnstat_cmb5::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb5::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb5::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb5Spec; pub struct CnstatCmb5Spec;
impl crate::RegisterSpec for CnstatCmb5Spec { impl crate::RegisterSpec for CnstatCmb5Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb6Spec> { pub fn st(&mut self) -> StW<CnstatCmb6Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb6Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb6Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb6Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb6Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb6::R`](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 [`cnstat_cmb6::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb6::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb6::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb6Spec; pub struct CnstatCmb6Spec;
impl crate::RegisterSpec for CnstatCmb6Spec { impl crate::RegisterSpec for CnstatCmb6Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb7Spec> { pub fn st(&mut self) -> StW<CnstatCmb7Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb7Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb7Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb7Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb7Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb7::R`](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 [`cnstat_cmb7::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb7::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb7::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb7Spec; pub struct CnstatCmb7Spec;
impl crate::RegisterSpec for CnstatCmb7Spec { impl crate::RegisterSpec for CnstatCmb7Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb8Spec> { pub fn st(&mut self) -> StW<CnstatCmb8Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb8Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb8Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb8Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb8Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb8::R`](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 [`cnstat_cmb8::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb8::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb8::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb8Spec; pub struct CnstatCmb8Spec;
impl crate::RegisterSpec for CnstatCmb8Spec { impl crate::RegisterSpec for CnstatCmb8Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatCmb9Spec> { pub fn st(&mut self) -> StW<CnstatCmb9Spec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatCmb9Spec> { pub fn pri(&mut self) -> PriW<CnstatCmb9Spec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatCmb9Spec> { pub fn dlc(&mut self) -> DlcW<CnstatCmb9Spec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_cmb9::R`](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 [`cnstat_cmb9::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_cmb9::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_cmb9::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatCmb9Spec; pub struct CnstatCmb9Spec;
impl crate::RegisterSpec for CnstatCmb9Spec { impl crate::RegisterSpec for CnstatCmb9Spec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Buffer Status"] #[doc = "Bits 0:3 - Buffer Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn st(&mut self) -> StW<CnstatHcmbSpec> { pub fn st(&mut self) -> StW<CnstatHcmbSpec> {
StW::new(self, 0) StW::new(self, 0)
} }
#[doc = "Bits 4:7 - Transmit Priority Code"] #[doc = "Bits 4:7 - Transmit Priority Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn pri(&mut self) -> PriW<CnstatHcmbSpec> { pub fn pri(&mut self) -> PriW<CnstatHcmbSpec> {
PriW::new(self, 4) PriW::new(self, 4)
} }
#[doc = "Bits 12:15 - Data Length Code"] #[doc = "Bits 12:15 - Data Length Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn dlc(&mut self) -> DlcW<CnstatHcmbSpec> { pub fn dlc(&mut self) -> DlcW<CnstatHcmbSpec> {
DlcW::new(self, 12) DlcW::new(self, 12)
} }
} }
#[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cnstat_hcmb::R`](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 [`cnstat_hcmb::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "Buffer Status / Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cnstat_hcmb::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cnstat_hcmb::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CnstatHcmbSpec; pub struct CnstatHcmbSpec;
impl crate::RegisterSpec for CnstatHcmbSpec { impl crate::RegisterSpec for CnstatHcmbSpec {
type Ux = u32; type Ux = u32;

View File

@ -34,24 +34,21 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:3 - Interrupt Source portion of Interrupt Code"] #[doc = "Bits 0:3 - Interrupt Source portion of Interrupt Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ist(&mut self) -> IstW<CstpndSpec> { pub fn ist(&mut self) -> IstW<CstpndSpec> {
IstW::new(self, 0) IstW::new(self, 0)
} }
#[doc = "Bit 4 - Interrupt Request portion of Interrupt Code"] #[doc = "Bit 4 - Interrupt Request portion of Interrupt Code"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn irq(&mut self) -> IrqW<CstpndSpec> { pub fn irq(&mut self) -> IrqW<CstpndSpec> {
IrqW::new(self, 4) IrqW::new(self, 4)
} }
#[doc = "Bits 5:7 - CAN Node Status"] #[doc = "Bits 5:7 - CAN Node Status"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn ns(&mut self) -> NsW<CstpndSpec> { pub fn ns(&mut self) -> NsW<CstpndSpec> {
NsW::new(self, 5) NsW::new(self, 5)
} }
} }
#[doc = "CAN Status Pending Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`cstpnd::R`](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 [`cstpnd::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Status Pending Register\n\nYou can [`read`](crate::Reg::read) this register and get [`cstpnd::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cstpnd::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CstpndSpec; pub struct CstpndSpec;
impl crate::RegisterSpec for CstpndSpec { impl crate::RegisterSpec for CstpndSpec {
type Ux = u32; type Ux = u32;

View File

@ -43,30 +43,26 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:2 - Time Segment 2"] #[doc = "Bits 0:2 - Time Segment 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn tseg2(&mut self) -> Tseg2W<CtimSpec> { pub fn tseg2(&mut self) -> Tseg2W<CtimSpec> {
Tseg2W::new(self, 0) Tseg2W::new(self, 0)
} }
#[doc = "Bits 3:6 - Time Segment 1"] #[doc = "Bits 3:6 - Time Segment 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn tseg1(&mut self) -> Tseg1W<CtimSpec> { pub fn tseg1(&mut self) -> Tseg1W<CtimSpec> {
Tseg1W::new(self, 3) Tseg1W::new(self, 3)
} }
#[doc = "Bits 7:8 - Synchronization Jump Width"] #[doc = "Bits 7:8 - Synchronization Jump Width"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn sjw(&mut self) -> SjwW<CtimSpec> { pub fn sjw(&mut self) -> SjwW<CtimSpec> {
SjwW::new(self, 7) SjwW::new(self, 7)
} }
#[doc = "Bits 9:15 - Prescaler Configuration"] #[doc = "Bits 9:15 - Prescaler Configuration"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn psc(&mut self) -> PscW<CtimSpec> { pub fn psc(&mut self) -> PscW<CtimSpec> {
PscW::new(self, 9) PscW::new(self, 9)
} }
} }
#[doc = "CAN Timing Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ctim::R`](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 [`ctim::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Timing Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctim::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctim::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CtimSpec; pub struct CtimSpec;
impl crate::RegisterSpec for CtimSpec { impl crate::RegisterSpec for CtimSpec {
type Ux = u32; type Ux = u32;

View File

@ -12,7 +12,7 @@ impl R {
} }
} }
impl W {} impl W {}
#[doc = "CAN Timer Register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`ctmr::R`](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 [`ctmr::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Timer Register\n\nYou can [`read`](crate::Reg::read) this register and get [`ctmr::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`ctmr::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct CtmrSpec; pub struct CtmrSpec;
impl crate::RegisterSpec for CtmrSpec { impl crate::RegisterSpec for CtmrSpec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb0Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb0Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb0Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb0Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb0::R`](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 [`data0_cmb0::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb0::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb0::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb0Spec; pub struct Data0Cmb0Spec;
impl crate::RegisterSpec for Data0Cmb0Spec { impl crate::RegisterSpec for Data0Cmb0Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb1Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb1Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb1Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb1Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb1::R`](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 [`data0_cmb1::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb1::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb1::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb1Spec; pub struct Data0Cmb1Spec;
impl crate::RegisterSpec for Data0Cmb1Spec { impl crate::RegisterSpec for Data0Cmb1Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb10Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb10Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb10Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb10Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb10::R`](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 [`data0_cmb10::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb10::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb10::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb10Spec; pub struct Data0Cmb10Spec;
impl crate::RegisterSpec for Data0Cmb10Spec { impl crate::RegisterSpec for Data0Cmb10Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb11Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb11Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb11Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb11Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb11::R`](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 [`data0_cmb11::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb11::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb11::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb11Spec; pub struct Data0Cmb11Spec;
impl crate::RegisterSpec for Data0Cmb11Spec { impl crate::RegisterSpec for Data0Cmb11Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb12Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb12Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb12Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb12Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb12::R`](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 [`data0_cmb12::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb12::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb12::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb12Spec; pub struct Data0Cmb12Spec;
impl crate::RegisterSpec for Data0Cmb12Spec { impl crate::RegisterSpec for Data0Cmb12Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb13Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb13Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb13Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb13Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb13::R`](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 [`data0_cmb13::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb13::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb13::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb13Spec; pub struct Data0Cmb13Spec;
impl crate::RegisterSpec for Data0Cmb13Spec { impl crate::RegisterSpec for Data0Cmb13Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb14Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb14Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb14Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb14Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb14::R`](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 [`data0_cmb14::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb14::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb14::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb14Spec; pub struct Data0Cmb14Spec;
impl crate::RegisterSpec for Data0Cmb14Spec { impl crate::RegisterSpec for Data0Cmb14Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb2Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb2Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb2Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb2Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb2::R`](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 [`data0_cmb2::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb2::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb2::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb2Spec; pub struct Data0Cmb2Spec;
impl crate::RegisterSpec for Data0Cmb2Spec { impl crate::RegisterSpec for Data0Cmb2Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb3Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb3Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb3Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb3Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb3::R`](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 [`data0_cmb3::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb3::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb3::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb3Spec; pub struct Data0Cmb3Spec;
impl crate::RegisterSpec for Data0Cmb3Spec { impl crate::RegisterSpec for Data0Cmb3Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb4Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb4Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb4Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb4Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb4::R`](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 [`data0_cmb4::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb4::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb4::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb4Spec; pub struct Data0Cmb4Spec;
impl crate::RegisterSpec for Data0Cmb4Spec { impl crate::RegisterSpec for Data0Cmb4Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb5Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb5Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb5Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb5Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb5::R`](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 [`data0_cmb5::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb5::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb5::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb5Spec; pub struct Data0Cmb5Spec;
impl crate::RegisterSpec for Data0Cmb5Spec { impl crate::RegisterSpec for Data0Cmb5Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb6Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb6Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb6Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb6Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb6::R`](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 [`data0_cmb6::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb6::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb6::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb6Spec; pub struct Data0Cmb6Spec;
impl crate::RegisterSpec for Data0Cmb6Spec { impl crate::RegisterSpec for Data0Cmb6Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb7Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb7Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb7Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb7Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb7::R`](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 [`data0_cmb7::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb7::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb7::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb7Spec; pub struct Data0Cmb7Spec;
impl crate::RegisterSpec for Data0Cmb7Spec { impl crate::RegisterSpec for Data0Cmb7Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb8Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb8Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb8Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb8Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb8::R`](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 [`data0_cmb8::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb8::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb8::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb8Spec; pub struct Data0Cmb8Spec;
impl crate::RegisterSpec for Data0Cmb8Spec { impl crate::RegisterSpec for Data0Cmb8Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0Cmb9Spec> { pub fn byte2(&mut self) -> Byte2W<Data0Cmb9Spec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0Cmb9Spec> { pub fn byte1(&mut self) -> Byte1W<Data0Cmb9Spec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_cmb9::R`](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 [`data0_cmb9::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_cmb9::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_cmb9::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0Cmb9Spec; pub struct Data0Cmb9Spec;
impl crate::RegisterSpec for Data0Cmb9Spec { impl crate::RegisterSpec for Data0Cmb9Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 2"] #[doc = "Bits 0:7 - Data Byte 2"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte2(&mut self) -> Byte2W<Data0HcmbSpec> { pub fn byte2(&mut self) -> Byte2W<Data0HcmbSpec> {
Byte2W::new(self, 0) Byte2W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 1"] #[doc = "Bits 8:15 - Data Byte 1"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte1(&mut self) -> Byte1W<Data0HcmbSpec> { pub fn byte1(&mut self) -> Byte1W<Data0HcmbSpec> {
Byte1W::new(self, 8) Byte1W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data0_hcmb::R`](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 [`data0_hcmb::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 0\n\nYou can [`read`](crate::Reg::read) this register and get [`data0_hcmb::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data0_hcmb::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data0HcmbSpec; pub struct Data0HcmbSpec;
impl crate::RegisterSpec for Data0HcmbSpec { impl crate::RegisterSpec for Data0HcmbSpec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb0Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb0Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb0Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb0Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 1\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb0::R`](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 [`data1_cmb0::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 1\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb0::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb0::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb0Spec; pub struct Data1Cmb0Spec;
impl crate::RegisterSpec for Data1Cmb0Spec { impl crate::RegisterSpec for Data1Cmb0Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb1Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb1Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb1Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb1Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb1::R`](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 [`data1_cmb1::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb1::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb1::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb1Spec; pub struct Data1Cmb1Spec;
impl crate::RegisterSpec for Data1Cmb1Spec { impl crate::RegisterSpec for Data1Cmb1Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb10Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb10Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb10Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb10Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb10::R`](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 [`data1_cmb10::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb10::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb10::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb10Spec; pub struct Data1Cmb10Spec;
impl crate::RegisterSpec for Data1Cmb10Spec { impl crate::RegisterSpec for Data1Cmb10Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb11Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb11Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb11Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb11Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb11::R`](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 [`data1_cmb11::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb11::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb11::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb11Spec; pub struct Data1Cmb11Spec;
impl crate::RegisterSpec for Data1Cmb11Spec { impl crate::RegisterSpec for Data1Cmb11Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb12Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb12Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb12Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb12Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb12::R`](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 [`data1_cmb12::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb12::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb12::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb12Spec; pub struct Data1Cmb12Spec;
impl crate::RegisterSpec for Data1Cmb12Spec { impl crate::RegisterSpec for Data1Cmb12Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb13Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb13Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb13Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb13Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb13::R`](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 [`data1_cmb13::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb13::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb13::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb13Spec; pub struct Data1Cmb13Spec;
impl crate::RegisterSpec for Data1Cmb13Spec { impl crate::RegisterSpec for Data1Cmb13Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb14Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb14Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb14Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb14Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb14::R`](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 [`data1_cmb14::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb14::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb14::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb14Spec; pub struct Data1Cmb14Spec;
impl crate::RegisterSpec for Data1Cmb14Spec { impl crate::RegisterSpec for Data1Cmb14Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb2Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb2Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb2Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb2Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb2::R`](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 [`data1_cmb2::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb2::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb2::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb2Spec; pub struct Data1Cmb2Spec;
impl crate::RegisterSpec for Data1Cmb2Spec { impl crate::RegisterSpec for Data1Cmb2Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb3Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb3Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb3Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb3Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb3::R`](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 [`data1_cmb3::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb3::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb3::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb3Spec; pub struct Data1Cmb3Spec;
impl crate::RegisterSpec for Data1Cmb3Spec { impl crate::RegisterSpec for Data1Cmb3Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb4Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb4Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb4Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb4Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb4::R`](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 [`data1_cmb4::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb4::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb4::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb4Spec; pub struct Data1Cmb4Spec;
impl crate::RegisterSpec for Data1Cmb4Spec { impl crate::RegisterSpec for Data1Cmb4Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb5Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb5Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb5Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb5Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb5::R`](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 [`data1_cmb5::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb5::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb5::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb5Spec; pub struct Data1Cmb5Spec;
impl crate::RegisterSpec for Data1Cmb5Spec { impl crate::RegisterSpec for Data1Cmb5Spec {
type Ux = u32; type Ux = u32;

View File

@ -25,18 +25,16 @@ impl R {
impl W { impl W {
#[doc = "Bits 0:7 - Data Byte 4"] #[doc = "Bits 0:7 - Data Byte 4"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte4(&mut self) -> Byte4W<Data1Cmb6Spec> { pub fn byte4(&mut self) -> Byte4W<Data1Cmb6Spec> {
Byte4W::new(self, 0) Byte4W::new(self, 0)
} }
#[doc = "Bits 8:15 - Data Byte 3"] #[doc = "Bits 8:15 - Data Byte 3"]
#[inline(always)] #[inline(always)]
#[must_use]
pub fn byte3(&mut self) -> Byte3W<Data1Cmb6Spec> { pub fn byte3(&mut self) -> Byte3W<Data1Cmb6Spec> {
Byte3W::new(self, 8) Byte3W::new(self, 8)
} }
} }
#[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data1_cmb6::R`](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 [`data1_cmb6::W`](W). You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."] #[doc = "CAN Frame Data Word 2\n\nYou can [`read`](crate::Reg::read) this register and get [`data1_cmb6::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`data1_cmb6::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
pub struct Data1Cmb6Spec; pub struct Data1Cmb6Spec;
impl crate::RegisterSpec for Data1Cmb6Spec { impl crate::RegisterSpec for Data1Cmb6Spec {
type Ux = u32; type Ux = u32;

Some files were not shown because too many files have changed in this diff Show More