《线程:UNIFLASH》中讨论的其他部件
您好,
我正在尝试使用 MSP432启动板上的 BSL 脚本编写器刷新程序。 我使用了 BSL 软件调用方法,如下所述。 它在初始化时卡住。
模式 P4xx UART 115200 COM10奇偶校验
[ERROR_MESSAGE] P4xx BSL 初始化失败! 退出编剧!
节目:-->
volatile bool jumpToBsl = false; int main() { int i=0; // Stop watchdog MAP_WDT_A_holdTimer(); // Setup P2.0 with LED output to detect if the interrupt occurs MAP_GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN0); // Configure P1.1 as an input and enabling the interrupt MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1); MAP_GPIO_interruptEdgeSelect(GPIO_PORT_P1, GPIO_PIN1, GPIO_HIGH_TO_LOW_TRANSITION); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN1); MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1); MAP_Interrupt_enableInterrupt(INT_PORT1); MAP_Interrupt_enableMaster(); while(1) { MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2, GPIO_PIN0); __delay_cycles(2000000); if (jumpToBsl) { jumpToBsl = false; MAP_Interrupt_disableMaster(); // Setup interrupt priorities into 0x00 before entering bootloader for (i=0; i < 240; i++) NVIC->IP[i] = 0; NVIC->ICER[0] = 0xFFFF; NVIC->ICPR[0] = 0xFFFF; NVIC->ICER[1] = 0xFFFF; NVIC->ICPR[1] = 0xFFFF; // Call the BSL with given BSL parameters ((void (*)())BSL_ENTRY_FUNCTION)((uint32_t)BSL_PARAM); } } } void PORT1_IRQHandler(void) { uint32_t status; status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1); MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, status); /* Toggling the output on the LED */ if(status & GPIO_PIN1) { jumpToBsl = true; } }
我尝试刷新下面提到的新 BSL 程序:
A. 项目属性>调试> MSP432设置>擦除方法>擦除主内存和信息内存
B. 允许 BSL 信息存储器擦除
但仍不起作用
我们将感谢您的帮助。
谢谢。