You are here

GPIO Interupt does not pass control to Reset Vector or Specified isr from Hibernate State? | Cypress Semiconductor

GPIO Interupt does not pass control to Reset Vector or Specified isr from Hibernate State?

Summary: 0 Replies, Latest post by grrasic_1882326 on 29 Nov 2016 02:40 PM PST
Verified Answers: 0
Log in to post new comments.
grrasic_1882326's picture
User
2 posts

Problem: GPIO interrupt source is not initiating a software reset as specified from Hibernate. What are the possible reasons? EZ-BLE 4100

I have configured a GPIO the same as in the Hibernate_PSoc4_Example and do not see my device entering the Reset Vector when the input is switched to ground. Prior to entering Hibernation I stop all my other interrupt ISRs, disable resources and outputs driving loads. Next I perform the following sequence:

            isr_SW_Enable();
            SW_ClearInterrupt();
            isr_SW_ClearPending();
            isr_SW_StartEx(&ButtonPressInt);
            CySysPmHibernate();

The GPIO input (SW) is set as a digital input, initialized High with a pullup. Its interrupt is set to falling edge, transparent, dedicated and buffered. The isr_SW is configured to DERIVED.

In the debugger the code waits at: (seen when I pause the debugger)

CyExitCriticalSection(interruptState); in void CySysPmHibernate(void) of cyPm.c

returning to rusume and commutating SW to ground, will then vector to the ButtonPressInt instead of reset as expected.

In standalone mode, the system just hangs. Any cause for not resetting that I'm overlooking?

Rick

Log in to post new comments.