工具/软件:Code Composer Studio
大家好
我们的处理器上有一个引导加载程序(不使用BSL)和应用程序。 我们通过USB在我们正在使用的Windows C#应用程序中连接到设备,通过这种方式,我们选择要发送到bootloader的固件映像,以便刷新映像。 这一切都很好。
在引导加载程序中刷新映像时,引导加载程序将跳转到应用程序 在这里,处理器重新配置并继续运行,但我们失去了与应用程序的USB连接。
如果我们移除USB (从PC应用程序到嵌入式设备上的USB)并将其重新插入,USB将再次开始工作。 我们还可以进入设备管理器,右键单击MSP430 USB并禁用/重新启用以使其正常工作。
我们在c#应用程序中发布通信端口,还运行嵌入式中的库功能以释放USB。
我们使用以下命令进行初始化(在两个上):
USBHAL_initClocks(2400万); //配置时钟。
USB_setup (TRUE,TRUE); //初始化USB和事件;如果存在主机,请连接
我们以这两种方式结束:
USB_disconnect();
USB_disable();
_disable_interrupts();
sysctl &=~SYSRIVECT; //关闭RAM中断
((void (*))) app_reset_vector)();//jump
当我们从应用程序转到bootloader时,我们使用BOR而不是Jump,因为我们的重置矢量始终位于bootloader中。
USB_disconnect();
USB_disable();
Brown_Out重置//这将导致BOR并启动引导加载程序
我们正在为MSP430使用最新的TI堆栈
问题是,我们如何保持或刷新USB连接,这样我们就不必物理断开连接并重新插入? 我认为这可能是车窗侧的问题,但我想先检查是否有办法在嵌入式侧执行此操作。 如果您需要更多信息,请告诉我。
谢谢。