/************************************************************************************************** * @fn sblExec * * @brief Infinite SBL execute loop that jumps upon receiving a code enable. * * input parameters * * None. * * output parameters * * None. * * @return None. ************************************************************************************************** */ static void sblExec(void) { uint32 dlyCnt = 0; while (1) { HalUARTPollUSB(); if (sbExec() && sbImgValid()) { SB_TURN_ON_LED1(); SB_TURN_ON_LED2(); // Delay to allow the SB_ENABLE_CMD response to be flushed. for (dlyCnt = 0; dlyCnt < 0x40000; dlyCnt++) { HalUARTPollUSB(); } sblJump(); } else if (dlyCnt++ & 0x4000) { SB_TOGGLE_LED1(); } } }
/************************************************************************************************** * @fn sblExec * * @brief Infinite SBL execute loop that returns upon receiving a code enable. * * input parameters * * None. * * output parameters * * None. * * @return None. ************************************************************************************************** */ static void sblExec(void) { uint32 dlyCnt = 0; vddWait(VDD_MIN_NV); HAL_ENABLE_INTERRUPTS(); while (1) { if (dlyCnt++ & 0x4000) { SB_TOGGLE_LED1(); } HalUARTPollUSB(); if (sbExec()) { break; } } SB_TURN_ON_LED1(); SB_TURN_ON_LED2(); // Delay to allow the SB_ENABLE_CMD response to be flushed. for (dlyCnt = 0; dlyCnt < 0x40000; dlyCnt++) { HalUARTPollUSB(); } }