@@ -656,27 +656,33 @@ def main(
656
656
memfile .write (' cnn_start(); // Run inference\n ' )
657
657
if fifo :
658
658
memfile .write (' load_input(); // Load data input via FIFO\n ' )
659
- if not riscv :
660
- memfile .write (' SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk; // SLEEPDEEP=0\n ' )
661
- memfile .write (' while (cnn_time == 0)\n ' )
662
- if not riscv :
663
- memfile .write (' __WFI(); // Wait for CNN\n ' )
659
+ if state .wfi :
660
+ if not riscv :
661
+ memfile .write (' SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk; // SLEEPDEEP=0\n ' )
662
+ memfile .write (' while (cnn_time == 0)\n ' )
663
+ if not riscv :
664
+ memfile .write (' __WFI(); // Wait for CNN\n ' )
665
+ else :
666
+ memfile .write (' asm volatile("wfi"); // Wait for CNN\n ' )
664
667
else :
665
- memfile .write (' asm volatile("wfi" ); // Wait for CNN \n ' )
668
+ memfile .write (' while (cnn_time == 0 ); // Spin wait \n ' )
666
669
memfile .write (' }\n '
667
670
' CNN_COMPLETE;\n \n ' )
668
671
669
672
if oneshot > 0 :
670
673
memfile .write (f' for (i = 0; i < { oneshot } ; i++) {{\n ' )
671
674
memfile .write (' cnn_continue();\n ' )
672
675
if embedded_code or tc .dev .MODERN_SIM :
673
- if not riscv :
674
- memfile .write (' SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk; // SLEEPDEEP=0\n ' )
675
- memfile .write (' while (cnn_time == 0)\n ' )
676
- if not riscv :
677
- memfile .write (' __WFI(); // Wait for CNN\n ' )
676
+ if state .wfi :
677
+ if not riscv :
678
+ memfile .write (' SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk; // SLEEPDEEP=0\n ' )
679
+ memfile .write (' while (cnn_time == 0)\n ' )
680
+ if not riscv :
681
+ memfile .write (' __WFI(); // Wait for CNN\n ' )
682
+ else :
683
+ memfile .write (' asm volatile("wfi"); // Wait for CNN\n ' )
678
684
else :
679
- memfile .write (' asm volatile("wfi" ); // Wait for CNN \n ' )
685
+ memfile .write (' while (cnn_time == 0 ); // Spin wait \n ' )
680
686
else :
681
687
memfile .write (' cnn_wait();\n ' )
682
688
memfile .write (' }\n \n ' )
0 commit comments