《线程: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 信息存储器擦除
但仍不起作用
我们将感谢您的帮助。
谢谢。
