From 6d45db66a9c49b5437702e0d9a24a73b75c78985 Mon Sep 17 00:00:00 2001 From: Dominik Boehi Date: Thu, 2 Jan 2020 16:16:05 +0100 Subject: [PATCH 1/2] Round up when calculating register size in bytes --- src/generate/peripheral.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/generate/peripheral.rs b/src/generate/peripheral.rs index 613c5267..2ff82a18 100644 --- a/src/generate/peripheral.rs +++ b/src/generate/peripheral.rs @@ -323,13 +323,13 @@ impl FieldRegions { let mut indices = Vec::new(); let field_start = field.offset; - let field_end = field_start + field.size / BITS_PER_BYTE; + let field_end = field_start + (( field.size as f32 ) / (BITS_PER_BYTE as f32)).ceil() as u32; // The region that we're going to insert let mut new_region = Region { fields: vec![field.clone()], offset: field.offset, - end: field.offset + field.size / BITS_PER_BYTE, + end: field_end, ident: None, }; From 566f7c735fe4f47ea52bbc72d458a76a5f7e9b7d Mon Sep 17 00:00:00 2001 From: Dominik Boehi Date: Thu, 2 Jan 2020 16:50:14 +0100 Subject: [PATCH 2/2] Use integers instead of floats for size calculation Co-Authored-By: Daniel Egger --- src/generate/peripheral.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generate/peripheral.rs b/src/generate/peripheral.rs index 2ff82a18..73398556 100644 --- a/src/generate/peripheral.rs +++ b/src/generate/peripheral.rs @@ -323,7 +323,7 @@ impl FieldRegions { let mut indices = Vec::new(); let field_start = field.offset; - let field_end = field_start + (( field.size as f32 ) / (BITS_PER_BYTE as f32)).ceil() as u32; + let field_end = field_start + (field.size + BITS_PER_BYTE - 1) / BITS_PER_BYTE; // The region that we're going to insert let mut new_region = Region {