diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs index 4468216f53..ff8fb6508d 100644 --- a/macros/src/codegen.rs +++ b/macros/src/codegen.rs @@ -507,7 +507,6 @@ fn post_init(ctxt: &Context, app: &App, analysis: &Analysis) -> proc_macro2::Tok // Enable cycle counter if cfg!(feature = "timer-queue") { - exprs.push(quote!(p.DCB.enable_trace())); exprs.push(quote!(p.DWT.enable_cycle_counter())); } @@ -2024,6 +2023,8 @@ fn pre_init(ctxt: &Context, app: &App, analysis: &Analysis) -> proc_macro2::Toke // Set the cycle count to 0 and disable it while `init` executes if cfg!(feature = "timer-queue") { + // We need to explicitly enable the trace block to set CYCCNT. + exprs.push(quote!(p.DCB.enable_trace();)); exprs.push(quote!(p.DWT.ctrl.modify(|r| r & !1);)); exprs.push(quote!(p.DWT.cyccnt.write(0);)); }