Skip to content

Commit ae88a1c

Browse files
authored
Merge pull request #192 from wez/clusterunion
Emit unions for overlapping/overloaded registers
2 parents cc42c11 + f676846 commit ae88a1c

File tree

4 files changed

+397
-27
lines changed

4 files changed

+397
-27
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
[._]*.sw[a-p]
12
*.org
23
*.rs.bk
34
*.svd

src/generate/device.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use Target;
99
use generate::{interrupt, peripheral};
1010

1111
/// Whole device generation
12-
pub fn render(d: &Device, target: &Target) -> Result<Vec<Tokens>> {
12+
pub fn render(d: &Device, target: &Target, nightly: bool) -> Result<Vec<Tokens>> {
1313
let mut out = vec![];
1414

1515
let doc = format!(
@@ -46,6 +46,12 @@ pub fn render(d: &Device, target: &Target) -> Result<Vec<Tokens>> {
4646
#![no_std]
4747
});
4848

49+
if nightly {
50+
out.push(quote! {
51+
#![feature(untagged_unions)]
52+
});
53+
}
54+
4955
match *target {
5056
Target::CortexM => {
5157
out.push(quote! {
@@ -127,7 +133,7 @@ pub fn render(d: &Device, target: &Target) -> Result<Vec<Tokens>> {
127133
}
128134

129135

130-
out.extend(peripheral::render(p, &d.peripherals, &d.defaults)?);
136+
out.extend(peripheral::render(p, &d.peripherals, &d.defaults, nightly)?);
131137

132138
if p.registers
133139
.as_ref()

0 commit comments

Comments
 (0)