While attempting to run the following code from a MESH example in IAR, the program gets stuck. It only seems to be calling button_event_handler continuously, as if the interrupt is never clearing.
static void initialize(void) { __LOG_INIT(LOG_SRC_APP | LOG_SRC_ACCESS, LOG_LEVEL_INFO, LOG_CALLBACK_DEFAULT); __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "----- BLE Mesh Light Switch Provisioner Demo -----\n"); hal_leds_init(); #if BUTTON_BOARD ERROR_CHECK(hal_buttons_init(button_event_handler)); #endif /* Mesh Init */ nrf_clock_lf_cfg_t lfc_cfg = DEV_BOARD_LF_CLK_CFG; ERROR_CHECK(mesh_softdevice_init(lfc_cfg)); mesh_init(); }
Pretty much everything is bone stock in this code base, and I have logging disabled. Does anyone have any leads on what I can check to debug this? I've tried checking the registers in the NVIC but everything looks okay. It only finishes initialization when I push button 1 on the board. This is my Main() where initialize() gets called from.
int main(void) { initialize(); NRF_LOG_INFO("Initialization complete"); execution_start(start); for (;;) { (void)sd_app_evt_wait(); } }