Skip to content

Commit 17bef09

Browse files
bors[bot]robamu
andauthored
Merge #548
548: Added debug and trace output r=Emilgardis a=robamu The application already has log levels and these additional logs will be disabled by default. They can be helpful when debugging something or tracing where an error/warning happens Co-authored-by: Robin Mueller <[email protected]>
2 parents 43be074 + 7dbe137 commit 17bef09

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
1818
- Missing `inline` on field reader constructors
1919
- Support for device.x generation for riscv targets and `__EXTERNAL_INTERRUPTS` vector table
2020
- Re-export base's module for derived peripherals
21+
- More debug and trace output to visualize program control flow
2122

2223
### Changed
2324

src/generate/device.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::svd::Device;
22
use proc_macro2::{Ident, Span, TokenStream};
33
use quote::{quote, ToTokens};
44

5+
use log::debug;
56
use std::fs::File;
67
use std::io::Write;
78

@@ -184,6 +185,7 @@ pub fn render(d: &Device, config: &Config, device_x: &mut String) -> Result<Toke
184185
});
185186
}
186187

188+
debug!("Rendering interrupts");
187189
out.extend(interrupt::render(config.target, &d.peripherals, device_x)?);
188190

189191
for p in &d.peripherals {
@@ -192,6 +194,7 @@ pub fn render(d: &Device, config: &Config, device_x: &mut String) -> Result<Toke
192194
continue;
193195
}
194196

197+
debug!("Rendering peripheral {}", p.name);
195198
match peripheral::render(p, &d.peripherals, &d.default_register_properties, config) {
196199
Ok(periph) => out.extend(periph),
197200
Err(e) => {

src/generate/peripheral.rs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crate::svd::{
66
Cluster, ClusterInfo, DeriveFrom, DimElement, Peripheral, Register, RegisterCluster,
77
RegisterProperties,
88
};
9-
use log::warn;
9+
use log::{debug, trace, warn};
1010
use proc_macro2::{Ident, Punct, Spacing, Span, TokenStream};
1111
use quote::{quote, ToTokens};
1212
use syn::{parse_str, Token};
@@ -168,16 +168,24 @@ pub fn render(
168168
let defaults = p.default_register_properties.derive_from(defaults);
169169

170170
// Push any register or cluster blocks into the output
171+
debug!(
172+
"Pushing {} register or cluster blocks into output",
173+
ercs.len()
174+
);
171175
let mut mod_items = TokenStream::new();
172176
mod_items.extend(register_or_cluster_block(&ercs, &defaults, None, config)?);
173177

178+
debug!("Pushing cluster information into output");
174179
// Push all cluster related information into the peripheral module
175180
for c in &clusters {
181+
trace!("Cluster: {}", c.name);
176182
mod_items.extend(cluster_block(c, &defaults, p, all_peripherals, config)?);
177183
}
178184

185+
debug!("Pushing register information into output");
179186
// Push all register related information into the peripheral module
180187
for reg in registers {
188+
trace!("Register: {}", reg.name);
181189
match register::render(reg, registers, p, all_peripherals, &defaults, config) {
182190
Ok(rendered_reg) => mod_items.extend(rendered_reg),
183191
Err(e) => {
@@ -579,11 +587,15 @@ fn expand(
579587
) -> Result<Vec<RegisterBlockField>> {
580588
let mut ercs_expanded = vec![];
581589

590+
debug!("Expanding registers or clusters into Register Block Fields");
582591
for erc in ercs {
583592
match &erc {
584593
RegisterCluster::Register(register) => {
585594
match expand_register(register, defs, name, config) {
586-
Ok(expanded_reg) => ercs_expanded.extend(expanded_reg),
595+
Ok(expanded_reg) => {
596+
trace!("Register: {}", register.name);
597+
ercs_expanded.extend(expanded_reg);
598+
}
587599
Err(e) => {
588600
let res = Err(e);
589601
return handle_reg_error("Error expanding register", register, res);
@@ -592,7 +604,10 @@ fn expand(
592604
}
593605
RegisterCluster::Cluster(cluster) => {
594606
match expand_cluster(cluster, defs, name, config) {
595-
Ok(expanded_cluster) => ercs_expanded.extend(expanded_cluster),
607+
Ok(expanded_cluster) => {
608+
trace!("Cluster: {}", cluster.name);
609+
ercs_expanded.extend(expanded_cluster);
610+
}
596611
Err(e) => {
597612
let res = Err(e);
598613
return handle_cluster_error(

0 commit comments

Comments
 (0)