summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authordanicampora <danicampora@gmail.com>2015-03-20 10:59:35 +0100
committerdanicampora <danicampora@gmail.com>2015-03-21 11:27:26 +0100
commitc1c23e2f6a145fa5aacc165395e00f47f359b95a (patch)
treed9966e3cfa235e546629a6480327a8d8f595df7d
parentcd9bc14c8f524834578d3e7b2ee8ecf4fbc8ea3e (diff)
downloadmicropython-c1c23e2f6a145fa5aacc165395e00f47f359b95a.tar.gz
micropython-c1c23e2f6a145fa5aacc165395e00f47f359b95a.zip
cc3200: Remove superfluous code in pybsleep.
-rw-r--r--cc3200/misc/mpcallback.c2
-rw-r--r--cc3200/mods/pybsleep.c20
2 files changed, 7 insertions, 15 deletions
diff --git a/cc3200/misc/mpcallback.c b/cc3200/misc/mpcallback.c
index fa1d55f4ca..7827b0e62e 100644
--- a/cc3200/misc/mpcallback.c
+++ b/cc3200/misc/mpcallback.c
@@ -113,7 +113,7 @@ uint mpcallback_translate_priority (uint priority) {
void mpcallback_handler (mp_obj_t self_in) {
mpcallback_obj_t *self = self_in;
- if (self->handler != mp_const_none) {
+ if (self && self->handler != mp_const_none) {
// disable interrupts to avoid nesting
uint primsk = disable_irq();
// when executing code within a handler we must lock the GC to prevent
diff --git a/cc3200/mods/pybsleep.c b/cc3200/mods/pybsleep.c
index 52dafd9d41..b074d539bd 100644
--- a/cc3200/mods/pybsleep.c
+++ b/cc3200/mods/pybsleep.c
@@ -121,7 +121,7 @@ typedef struct {
******************************************************************************/
STATIC const mp_obj_type_t pybsleep_type;
STATIC nvic_reg_store_t *nvic_reg_store;
-STATIC pybsleep_wake_cb_t pybsleep_wake_cb;
+STATIC pybsleep_wake_cb_t pybsleep_wake_cb = {NULL, NULL, NULL, 0};
volatile arm_cm4_core_regs_t vault_arm_registers;
STATIC pybsleep_reset_cause_t pybsleep_reset_cause = PYB_SLP_PWRON_RESET;
@@ -397,30 +397,22 @@ STATIC void PRCMInterruptHandler (void) {
// reading the interrupt status automatically clears the interrupt
if (PRCM_INT_SLOW_CLK_CTR == MAP_PRCMIntStatus()) {
// this interrupt is triggered during active mode
- if (pybsleep_wake_cb.timer_lpds_wake_cb) {
- mpcallback_handler(pybsleep_wake_cb.timer_lpds_wake_cb);
- }
+ mpcallback_handler(pybsleep_wake_cb.timer_lpds_wake_cb);
}
else {
// interrupt has been triggered while waking up from LPDS
switch (MAP_PRCMLPDSWakeupCauseGet()) {
case PRCM_LPDS_HOST_IRQ:
- if (pybsleep_wake_cb.wlan_lpds_wake_cb) {
- mpcallback_handler(pybsleep_wake_cb.wlan_lpds_wake_cb);
- }
+ mpcallback_handler(pybsleep_wake_cb.wlan_lpds_wake_cb);
break;
case PRCM_LPDS_GPIO:
- if (pybsleep_wake_cb.gpio_lpds_wake_cb) {
- mpcallback_handler(pybsleep_wake_cb.gpio_lpds_wake_cb);
- }
+ mpcallback_handler(pybsleep_wake_cb.gpio_lpds_wake_cb);
break;
case PRCM_LPDS_TIMER:
- // disable timer was wake-up source
+ // disable the timer as a wake-up source
pybsleep_wake_cb.timer_wake_pwrmode &= ~PYB_PWR_MODE_LPDS;
MAP_PRCMLPDSWakeupSourceDisable(PRCM_LPDS_TIMER);
- if (pybsleep_wake_cb.timer_lpds_wake_cb) {
- mpcallback_handler(pybsleep_wake_cb.timer_lpds_wake_cb);
- }
+ mpcallback_handler(pybsleep_wake_cb.timer_lpds_wake_cb);
break;
default:
break;