MCU: LPC55S28
Board: LPC55S28-EVK
Following the user manual, I have the following code in my application to enter ISP mode but all it's doing is reset the system and start from the beginning of my application. Do any of the configurations inside CMPA/CFPA affect the ability to enter ISP mode. CMPA/CFPA are not currently configured (all zeros). Is there anything that needs to be set within my application before jumping to bootloader (runBootloader).
...
#include "fsl_iap.h"
...
int main()
{
...
// ISP mode and USB only (LPC55 User Manual section 9.3.4: runBootloader API)
uint32_t arg = 0xEB110000;
RunBootloader(&arg);
while (1) {}
}
//////////////////////////////////////////////////////////////
I added RunBootloader declaration/definition in fsl_iap.h/c:
void RunBootloader(void *arg)
{
BOOTLOADER_API_TREE_POINTER->runBootloader(arg);
}
/////////////////////////////////////////////////////////////
fsl_iap already has the following definitions:
#define BOOTLOADER_API_TREE_POINTER ((bootloader_tree_t *)0x130010f0U)
typedef struct BootloaderTree
{
void (*runBootloader)(void *arg); /*!< Function to start the bootloader executing. */
standard_version_t bootloader_version; /*!< Bootloader version number. */
const char *copyright; /*!< Copyright string. */
const uint32_t *reserved; /*!< Do NOT use. */
flash_driver_interface_t flashDriver;
} bootloader_tree_t;