我的MSP430设计使用UART进行通信。 如果用户将正确的命令发送到UART,我想将其插入ROM bootloader。 我用于执行此操作的c代码是:
__DELAY周期(200万); ClockDriver_SetClockForBootloader(); __DELAY周期(200万); __DISABLE_INTERRUCE(); (void (*))0x1000)();
这会将MCLK更改为8 MHz (引导加载程序用户指南指出需要此频率),然后调用跳转指令。 我在执行此操作时失去了与UART的连接,但我无法与引导加载程序通话。 但是,如果我在代码的开头调用这些代码行,我就会跳到bootloader,我就可以很好地与它交谈。 我使用的波特率(5.76万)与bootloader使用的波特率不同,但我确实尝试将自己的波特率更改为bootloader波特率(甚至使用像bootloader一样的奇偶校验),但这也不起作用。 对其他要尝试的事情有什么想法? 我真的不想依赖硬件输入序列与引导加载程序对话。