@@ -121,7 +121,7 @@ typedef struct {
121121 ******************************************************************************/
122122STATIC const mp_obj_type_t pybsleep_type ;
123123STATIC nvic_reg_store_t * nvic_reg_store ;
124- STATIC pybsleep_wake_cb_t pybsleep_wake_cb ;
124+ STATIC pybsleep_wake_cb_t pybsleep_wake_cb = { NULL , NULL , NULL , 0 } ;
125125volatile arm_cm4_core_regs_t vault_arm_registers ;
126126STATIC pybsleep_reset_cause_t pybsleep_reset_cause = PYB_SLP_PWRON_RESET ;
127127
@@ -397,30 +397,22 @@ STATIC void PRCMInterruptHandler (void) {
397397 // reading the interrupt status automatically clears the interrupt
398398 if (PRCM_INT_SLOW_CLK_CTR == MAP_PRCMIntStatus ()) {
399399 // this interrupt is triggered during active mode
400- if (pybsleep_wake_cb .timer_lpds_wake_cb ) {
401- mpcallback_handler (pybsleep_wake_cb .timer_lpds_wake_cb );
402- }
400+ mpcallback_handler (pybsleep_wake_cb .timer_lpds_wake_cb );
403401 }
404402 else {
405403 // interrupt has been triggered while waking up from LPDS
406404 switch (MAP_PRCMLPDSWakeupCauseGet ()) {
407405 case PRCM_LPDS_HOST_IRQ :
408- if (pybsleep_wake_cb .wlan_lpds_wake_cb ) {
409- mpcallback_handler (pybsleep_wake_cb .wlan_lpds_wake_cb );
410- }
406+ mpcallback_handler (pybsleep_wake_cb .wlan_lpds_wake_cb );
411407 break ;
412408 case PRCM_LPDS_GPIO :
413- if (pybsleep_wake_cb .gpio_lpds_wake_cb ) {
414- mpcallback_handler (pybsleep_wake_cb .gpio_lpds_wake_cb );
415- }
409+ mpcallback_handler (pybsleep_wake_cb .gpio_lpds_wake_cb );
416410 break ;
417411 case PRCM_LPDS_TIMER :
418- // disable timer was wake-up source
412+ // disable the timer as a wake-up source
419413 pybsleep_wake_cb .timer_wake_pwrmode &= ~PYB_PWR_MODE_LPDS ;
420414 MAP_PRCMLPDSWakeupSourceDisable (PRCM_LPDS_TIMER );
421- if (pybsleep_wake_cb .timer_lpds_wake_cb ) {
422- mpcallback_handler (pybsleep_wake_cb .timer_lpds_wake_cb );
423- }
415+ mpcallback_handler (pybsleep_wake_cb .timer_lpds_wake_cb );
424416 break ;
425417 default :
426418 break ;
0 commit comments