Skip to content

Commit 7bd3dea

Browse files
committed
Skip unsupported UART control registers avr-rust#48
1 parent 6e83cf0 commit 7bd3dea

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

core_generator/src/gen.rs

+10-4
Original file line numberDiff line numberDiff line change
@@ -169,16 +169,22 @@ pub fn write_usarts(mcu: &Mcu, w: &mut dyn Write) -> Result<(), io::Error> {
169169
writeln!(w, "impl modules::HardwareUsart for {} {{", usart.name)?;
170170
for register in usart.registers.iter() {
171171
let reg_ty = if register.name.starts_with("UDR") { // the data register.
172-
"DataRegister".to_owned()
172+
Some("DataRegister".to_owned())
173173
} else if register.name.starts_with("UCSR") { // one of the three control/status registers.
174174
let suffix = register.name.chars().rev().next().unwrap();
175-
format!("ControlRegister{}", suffix)
175+
if suffix == 'A' || suffix == 'B' || suffix == 'C' {
176+
Some(format!("ControlRegister{}", suffix))
177+
} else {
178+
None
179+
}
176180
} else if register.name.starts_with("UBRR") { // the baud rate register.
177-
"BaudRateRegister".to_owned()
181+
Some("BaudRateRegister".to_owned())
178182
} else {
179183
panic!("unknown usart register '{}'", register.name);
180184
};
181-
writeln!(w, " type {} = {};", reg_ty, register.name)?;
185+
if let Some(reg_ty) = reg_ty {
186+
writeln!(w, " type {} = {};", reg_ty, register.name)?;
187+
}
182188
}
183189
writeln!(w, "}}")?;
184190
writeln!(w)?;

0 commit comments

Comments
 (0)