2 Replies Latest reply on Jun 15, 2020 8:46 PM by GaneshD_41

    WDT Interrupt Not Triggering on M0




      I am using the example CE220060 - Watchdog Timer and trying to move the code from M4 to M0. It works on M4 but however not on M0. The watchdog timer interrupt handler was never called on M0. The attached is the example with simple modification of moving M4 code to M0. Are there any other settings required that I have missed in my example? Thanks!

        • 1. Re: WDT Interrupt Not Triggering on M0

          An interrupt initialization structure WDT_IRQ_cfg is declared as follows.

          /* WDT interrupt configuration structure */
          const cy_stc_sysint_t WDT_IRQ_cfg = {
              .intrSrc = (IRQn_Type)WDTIsr_INTC_CORTEXM0P_ASSIGNED,
              .intrPriority = WDT_IRQ__INTC_CORTEXM0_PRIORITY


          The initialization configuration structure cy_stc_sysint_t is different in Cm0+ and CM4.  Following declaration is contained in the cy_sysint.h file.

          * Initialization configuration structure for a single interrupt channel
          typedef struct {
              IRQn_Type       intrSrc;        /**< Interrupt source */
          #if (CY_CPU_CORTEX_M0P)
              cy_en_intr_t    cm0pSrc;        /**< (CM0+ only) Maps cm0pSrc device interrupts to intrSrc */
              uint32_t        intrPriority;   /**< Interrupt priority number (Refer to __NVIC_PRIO_BITS) */
          } cy_stc_sysint_t;


          If you want to declare an interrupt for CM0+ the cm0Src field must be specified.


          Anyway, I confirmed that this structure is not required.  My solution is as follows.

              /* Step 6 - Enable interrupt if periodic interrupt mode selected */
              #if(WDT_DEMO == WDT_INTERRUPT_DEMO)
                  Cy_SysInt_Init(&WDTIsr_cfg, WdtInterruptHandler);


          Please change the step 6 to use the WDTIsr_cfg structure instead of the WDT_IRQ_cfg.




          1 of 1 people found this helpful
          • 2. Re: WDT Interrupt Not Triggering on M0



            Please refer the PSoC 6 MCU interrupts application note for more information (link given below).