This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Button Causing CPU freeze/SystemOff

I have this odd issue which creeps up in field testing. Upon a button push the board goes immediately to System Off. 99.99% of the time Button pushes are handled normally, but in these rare cases while connected to a phone, the device will go straight to System Off upon a button push. Using SDK 6.1, S110 7.1

I was worried this could be happening because of one of the following reasons:

  • Stack, app_timer and app_button all use the Scheduler. Perhaps this is a corner case that occurs when the Scheduler Queue is full?
  • Perhaps the 32.768kHz crystal has drifted causing an assert according to DRGN-5153
  • A fault in the GPIOTE within the app_button is hardfaulting?
  • Noticed that in my on_sys_evt(uint32_t sys_evt) there is a system_off_mode_enter(); call on an NRF_EVT_FLASH_OPERATION_SUCCESS or NRF_EVT_FLASH_OPERATION_ERROR. Though it is unlikely to get here as I don't use pstorage anywhere in my application.

These are the only ways I can see this Button Freeze issue is occuring. I just thought I'd post this in case anyone else had seen this issue before. I read a similar post, which found a loop was blocking the Stack. I've verified none of my IRQ or scheduler handlers have any blocking.

Thanks guys,

DC

Parents
  • The above code will cause my Button hold state machine to rapidly execute. Normally the Button must be hold for 5seconds before the System_off event it pushed. However adding the above rtc1 code, causes the System off event to be executed immediately after the Button push.

    This tells me that during normal operation, somehow the SDK gets into a scenario where is executes rtc1_stop(); and rtc1_start();, which immediately seems to halt my system on Button pushes.

Reply
  • The above code will cause my Button hold state machine to rapidly execute. Normally the Button must be hold for 5seconds before the System_off event it pushed. However adding the above rtc1 code, causes the System off event to be executed immediately after the Button push.

    This tells me that during normal operation, somehow the SDK gets into a scenario where is executes rtc1_stop(); and rtc1_start();, which immediately seems to halt my system on Button pushes.

Children
No Data
Related