Other Parts Discussed in Thread: UNIFLASH, MSPM0G3507
I'm trying to do a BSL entry through software (I have a UART application that communicates with the BSL), what I have currently is a very simple program that lights up the blue LED on the launchpad and waits for a bit of time before trying to invoke a software BSL entry:
#include "ti_msp_dl_config.h" int main(void) { SYSCFG_DL_init(); DL_GPIO_setPins(LED_GROUP_PORT, LED_GROUP_BLUE_LED_PIN); delay_cycles(50000000); DL_SYSCTL_resetDevice(DL_SYSCTL_RESET_BOOTLOADER_ENTRY); while (1) { } }
However, the BSL doesn't seem to be invoked and my program will run again (which of course will turn on the blue LED, wait for some time, then try to invoke BSL again and fails, hence it will be stuck in an infinite loop). What I'm currently expecting is that the LED should be off and BSL is invoked so that I can use my application to communicate with the BSL. As of now I was invoking the BSL using GPIO manually, which is not a good option for my development. Any idea what could be wrong here?
Please not that my application is not currently running as of testing the software BSL invoke, so my application is not mistakenly sending a START USER APP command.
Thank you for help.