Skip to content

Commit afc5fb2

Browse files
author
Jorge Aparicio
committed
don't expose reserved fields (bit ranges actually)
fixes #42
1 parent cb78e2e commit afc5fb2

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

ci/run.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ test_mode() {
1919
https://raw.githubusercontent.com/posborne/cmsis-svd/python-0.4/data/Nordic/nrf51.svd \
2020
> $td/nrf51.svd
2121

22+
curl -L \
23+
https://raw.githubusercontent.com/posborne/cmsis-svd/python-0.4/data/NXP/LPC43xx_svd_v5.svd \
24+
> $td/LPC43xx_svd_v5.svd
25+
2226
# test the library
2327
cargo build $flags
2428
cargo build $flags --release
@@ -36,10 +40,16 @@ test_mode() {
3640
test_gen tim3
3741
test_gen tim6
3842

43+
# Test register arrays
3944
svd=nrf51.svd
4045
test_gen
4146
test_gen gpio
4247
test_gen timer
48+
49+
# japaric/svd2rust#42
50+
svd=LPC43xx_svd_v5.svd
51+
test_gen
52+
test_gen sct
4353
}
4454

4555
deploy_mode() {

src/lib.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,12 @@ pub fn gen_register_r(r: &Register,
632632
let mut impl_items = vec![];
633633

634634
for field in fields {
635+
// Skip fields named RESERVED because, well, they are reserved so they
636+
// shouldn't be modified/exposed
637+
if field.name.to_lowercase() == "reserved" {
638+
continue;
639+
}
640+
635641
if let Some(Access::WriteOnly) = field.access {
636642
continue;
637643
}
@@ -726,6 +732,11 @@ pub fn gen_register_w(r: &Register,
726732
}
727733

728734
for field in fields {
735+
// Skip fields named RESERVED. See `gen_register_r` for an explanation
736+
if field.name.to_lowercase() == "reserved" {
737+
continue;
738+
}
739+
729740
if let Some(Access::ReadOnly) = field.access {
730741
continue;
731742
}

0 commit comments

Comments
 (0)