@@ -7,10 +7,10 @@ use crate::svd::{
7
7
RegisterProperties ,
8
8
} ;
9
9
10
- use tracing:: { debug, trace, warn} ;
11
10
use proc_macro2:: { Ident , Punct , Spacing , Span , TokenStream } ;
12
11
use quote:: { quote, ToTokens } ;
13
12
use syn:: { parse_str, Token } ;
13
+ use tracing:: { debug, trace, warn} ;
14
14
15
15
use crate :: util:: {
16
16
self , handle_cluster_error, handle_reg_error, Config , FullName , ToSanitizedSnakeCase ,
@@ -27,6 +27,8 @@ pub fn render(
27
27
defaults : & RegisterProperties ,
28
28
config : & Config ,
29
29
) -> Result < TokenStream > {
30
+ debug ! ( "Rendering peripheral {}" , p_original. name) ;
31
+
30
32
let mut out = TokenStream :: new ( ) ;
31
33
32
34
let p_derivedfrom = p_original
@@ -177,17 +179,24 @@ pub fn render(
177
179
let mut mod_items = TokenStream :: new ( ) ;
178
180
mod_items. extend ( register_or_cluster_block ( & ercs, & defaults, None , config) ?) ;
179
181
180
- debug ! ( "Pushing cluster information into output" ) ;
182
+ if !clusters. is_empty ( ) {
183
+ debug ! ( "Pushing cluster information into output" ) ;
184
+ }
181
185
// Push all cluster related information into the peripheral module
182
186
for c in & clusters {
183
- trace ! ( "Pushing cluster: {}" , c. name) ;
184
- mod_items. extend ( render_cluster_block ( c, & defaults, p, all_peripherals, config) ?) ;
187
+ mod_items. extend ( render_cluster_block (
188
+ c,
189
+ & defaults,
190
+ p,
191
+ all_peripherals,
192
+ config,
193
+ ) ?) ;
194
+ }
195
+ if !registers. is_empty ( ) {
196
+ debug ! ( "Pushing register information into output" ) ;
185
197
}
186
-
187
- debug ! ( "Pushing register information into output" ) ;
188
198
// Push all register related information into the peripheral module
189
199
for reg in registers {
190
- trace ! ( "Pushing register: {}" , reg. name) ;
191
200
match register:: render ( reg, registers, p, all_peripherals, & defaults, config) {
192
201
Ok ( rendered_reg) => mod_items. extend ( rendered_reg) ,
193
202
Err ( e) => {
@@ -581,7 +590,6 @@ fn register_or_cluster_block(
581
590
582
591
/// Expand a list of parsed `Register`s or `Cluster`s, and render them to
583
592
/// `RegisterBlockField`s containing `Field`s.
584
- #[ tracing:: instrument( skip_all, fields( module = name) ) ]
585
593
fn expand (
586
594
ercs : & [ RegisterCluster ] ,
587
595
defs : & RegisterProperties ,
@@ -596,7 +604,6 @@ fn expand(
596
604
RegisterCluster :: Register ( register) => {
597
605
match expand_register ( register, defs, name, config) {
598
606
Ok ( expanded_reg) => {
599
- trace ! ( "Expanding register: {}" , register. name) ;
600
607
ercs_expanded. extend ( expanded_reg) ;
601
608
}
602
609
Err ( e) => {
@@ -608,7 +615,6 @@ fn expand(
608
615
RegisterCluster :: Cluster ( cluster) => {
609
616
match expand_cluster ( cluster, defs, name, config) {
610
617
Ok ( expanded_cluster) => {
611
- trace ! ( "Expanding cluster: {}" , cluster. name) ;
612
618
ercs_expanded. extend ( expanded_cluster) ;
613
619
}
614
620
Err ( e) => {
@@ -684,13 +690,15 @@ fn cluster_info_size_in_bits(
684
690
}
685
691
686
692
/// Render a given cluster (and any children) into `RegisterBlockField`s
687
- #[ tracing:: instrument( skip_all, fields( cluster. name = cluster. name( ) , module = name) ) ]
693
+ #[ tracing:: instrument( skip_all, fields( cluster. name = % cluster. name, module = name) ) ]
688
694
fn expand_cluster (
689
695
cluster : & Cluster ,
690
696
defs : & RegisterProperties ,
691
697
name : Option < & str > ,
692
698
config : & Config ,
693
699
) -> Result < Vec < RegisterBlockField > > {
700
+ trace ! ( "Expanding cluster: {}" , cluster. name) ;
701
+
694
702
let mut cluster_expanded = vec ! [ ] ;
695
703
696
704
let defs = cluster. default_register_properties . derive_from ( defs) ;
@@ -747,13 +755,14 @@ fn expand_cluster(
747
755
748
756
/// If svd register arrays can't be converted to rust arrays (non sequential addresses, non
749
757
/// numeral indexes, or not containing all elements from 0 to size) they will be expanded
750
- #[ tracing:: instrument( skip_all, fields( register. name = %register. name, module = name ) ) ]
758
+ #[ tracing:: instrument( skip_all, fields( register. name = %register. name) ) ]
751
759
fn expand_register (
752
760
register : & Register ,
753
761
defs : & RegisterProperties ,
754
762
name : Option < & str > ,
755
763
config : & Config ,
756
764
) -> Result < Vec < RegisterBlockField > > {
765
+ trace ! ( "Expanding register: {}" , register. name) ;
757
766
let mut register_expanded = vec ! [ ] ;
758
767
759
768
let register_size = register
@@ -810,14 +819,16 @@ fn expand_register(
810
819
}
811
820
812
821
/// Render a Cluster Block into `TokenStream`
813
- #[ tracing:: instrument( skip_all, fields( peripheral. name = %p. name, cluster. name = %c. name( ) ) ) ]
822
+ #[ tracing:: instrument( skip_all, fields( peripheral. name = %p. name, cluster. name = %c. name) ) ]
814
823
fn render_cluster_block (
815
824
c : & Cluster ,
816
825
defaults : & RegisterProperties ,
817
826
p : & Peripheral ,
818
827
all_peripherals : & [ Peripheral ] ,
819
828
config : & Config ,
820
829
) -> Result < TokenStream > {
830
+ debug ! ( "Rendering cluster: {}" , c. name) ;
831
+
821
832
let mut mod_items = TokenStream :: new ( ) ;
822
833
823
834
// name_sc needs to take into account array type.
@@ -857,7 +868,13 @@ fn render_cluster_block(
857
868
// Generate the sub-cluster blocks.
858
869
let clusters = util:: only_clusters ( & c. children ) ;
859
870
for c in & clusters {
860
- mod_items. extend ( render_cluster_block ( c, & defaults, p, all_peripherals, config) ?) ;
871
+ mod_items. extend ( render_cluster_block (
872
+ c,
873
+ & defaults,
874
+ p,
875
+ all_peripherals,
876
+ config,
877
+ ) ?) ;
861
878
}
862
879
863
880
Ok ( quote ! {
0 commit comments