主题中讨论的其他器件: UNIFLASH
您好、TI 专家!
我将 MSP432E411Y MCU 用于在 TI-RTOS 上运行的基于以太网的应用。 除了电源和以太网连接外、无法通过物理方式访问电路板、因此、TI 提供的闪存以太网引导加载程序将用于更新 MSP432E411Y 上的软件。
根据 为 MSP432E401Y Launchpad 提供的示例、我的理解是、当擦除 MSP432的主闪存时、ROM 中的以太网引导加载程序处于活动状态。 我们可以使用此文件通过 BOOTP 请求将闪存引导加载程序加载到 MSP432上。 当器件复位时、闪存引导加载程序将发送 BOOTP 请求、我们可以使用这些请求来加载示例应用程序代码。
上面的示例和我的项目之间的唯一区别是我的应用程序是 ti-RTOS 项目。 它具有与示例所使用的相同的魔术包侦听程序例程和 SoftwareUpdateBegin ()函数,它用于通过以太网更新应用程序代码。
我的理解是、应用代码与其使用的 ti-RTOS 构建项目相结合、更改了器件的复位矢量、使其从应用代码(0x4000?)开始 对其进行辅助控制。 该应用代码能够检测由 TI BSL_Scripter 应用通过以太网发送的"魔术包"、并跳转到执行存储在 MSP432的 SVCall 寄存器中的函数 (引导加载程序在其项目中有一个汇编文件、如果我没有弄错、请将名为 UpdateHandler 的函数设置为 SVCall 寄存器)。 SVCall 寄存器中的功能位于引导加载程序中、开始发送 BOOTP 请求以进行软件更新。 一旦接收到软件、它就会触发器件复位、从而使 MSP432在新的应用程序代码处重新启动。
请更正此过程中的任何步骤有误的情况^、我将更好地了解系统寄存器发生了哪些变化以及3个工程(引导加载程序、应用程序和 ti-RTOS 构建)如何相互链接。
我遇到的主要问题是、BSL_Scripter 有时(大约10%的时间)会失败并显示"[ACK_ERROR_MESSAGE] Unknown Error!"、这会损坏我的应用程序软件。 如果电路板复位、它会再次尝试运行损坏的应用程序、这基本上会导致砖型 MSP432、它只能用 JTAG 来恢复(当您只能以太网访问它时无法恢复)。
您能帮助我了解以下内容吗?
- 复位矢量在存储器中的什么位置、当我们上传应用程序代码时如何更改?
- 是否可以在软件中配置复位矢量、以便我们可以对其进行修改、从而根据需要开始运行应用程序/引导加载程序?
- 当 BSL_Scripter 以太网软件更新失败时、您是否有用于调试 MSP432器件的解决方案?
谢谢。







[/报价]













