主题中讨论的其他器件: UNIFLASH
工具与软件:
我已经在 msp432e401y 中按照 Etherent SDK 的引导加载操作。 我得到了串行终端的输出为"设备准备好接受 UDP 端口9的魔术包",现在如何闪存我所需的代码(魔术包)通过以太网. 我使用 BSL 脚本程序实现了上述"设备已准备就绪..."。
除 BSL 脚本程序 SDK 外、还有关于通过以太网刷写定制代码的完整指南。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
我已经在 msp432e401y 中按照 Etherent SDK 的引导加载操作。 我得到了串行终端的输出为"设备准备好接受 UDP 端口9的魔术包",现在如何闪存我所需的代码(魔术包)通过以太网. 我使用 BSL 脚本程序实现了上述"设备已准备就绪..."。
除 BSL 脚本程序 SDK 外、还有关于通过以太网刷写定制代码的完整指南。
首先、你是否通过运行以下三个脚本来运行这些示例?

我在串行终端上得到的输出是"设备已准备好接受 UDP 端口9上的魔术包"、
如果您到目前为止已经 通过运行脚本2加载了 boot_emac_flash_magicpacket_MSP_EXP432E401Y.txt 示例固件。 BOOT_EMAC_FLASH_magicpacket_MSP_EXP432E401Y 已经是示例固件。 您可以参考此示例、创建要由自定义加载程序加载的固件。
[quote userid="633349" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1481741/msp432e401y-bootloading-over-ethernet 现在如何通过以太网刷写我所需的代码(magic packet)
如果您查看示例固件、其中可以在 C:\ti\simplelink_msp432e4_sdk_4_20_00_12\examples\nortos\MSP_EXP432E401Y\boot_loader\boot_emac_flash_app_magicpacket_update 中找到完整源代码、它会等待魔术包。 通过运行脚本3、PC 会将魔术包发送到 MCU、接收后、固件将再次跳转到引导加载程序、对另一个固件进行编程。 在脚本3中、它将通过以太网端口下载一个闪烁示例。 您可以使用任何需要的应用程序。

运行此示例的脚本1后、出现了无效 TFTP 错误。 请提供有关如何执行此操作的分步说明、从仅使用 DHCP 连接到路由器的 MSP 开始。 我不确定如何获取 TI 的本指南中所述的空白 MSP。
我用于达到配置了引导加载程序的上一状态的步骤
1) 1)闪存 serial_emac_flash 示例
2) 2)使用 Uniflash 中的手动擦除选项
3) 3)重置 MSP
4) 4)运行此脚本
日志
以太网 E4xx 模式 MAC=70:FF:76:1C:E5:73 IPClient=192.168.0.2 IPServer=192.168.0.3
RX_DATA_BLOCK_32 boot_serial_emac_flash_MSP_EXP432E401Y_nortos_ccs.txt
BSL 脚本程序
5) 5)重置 MSP
6) 6)运行此脚本
日志
以太网模式 E4xx MAC=70:FF:76:1C:E5:73 IPClient=192.168.0.100 IPServer=192.168.0.3
RX_DATA_BLOCK_32 boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt
我的笔记本电脑和带有路由器的 MSP。
4) 4)运行此脚本
日志
以太网 E4xx 模式 MAC=70:FF:76:1C:E5:73 IPClient=192.168.0.2 IPServer=192.168.0.3
RX_DATA_BLOCK_32 boot_serial_emac_flash_MSP_EXP432E401Y_nortos_ccs.txt
BSL 脚本程序
5) 5)重置 MSP
[报价]此处您的客户端 IP 为192.168.0.2。 这是使用过的 IP 地址吗?
[报价 userid="633349" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1481741/msp432e401y-bootloading-over-ethernet/5689165 #5689165"]6) 6)运行此脚本
日志
以太网模式 E4xx MAC=70:FF:76:1C:E5:73 IPClient=192.168.0.100 IPServer=192.168.0.3
RX_DATA_BLOCK_32 boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt
此处您的客户端 IP 为192.168.0.100。 为什么不 像脚本1中那样使用192.168.0.2?
我通过 DHCP 报告将 IP 取为192.168.0.100,所以我使用该 IP 作为魔术包,即使我使用 IP 192.168.0.2它第一次工作后,我收到错误无效的 TFTP 读取请求(在图像中),请告诉我为什么. 我必须重新启动 PC 才能执行此错误。 此外、如果我尝试刷写任何代码、则使用脚本3不仅会删除引导加载程序、而且生成的代码(timerled tirtos)也不会运行。 我有一个疑问是魔术包格式只基于没有 RTOS ,有没有任何方法我可以得到这种行为使用 RTOS 代码??
您好!
我无法重现您的问题。 我在 MSP432E LaunchPad 上运行这些示例。 请参阅下面我运行脚本1和脚本2的地方。 在运行脚本之前、我需要确保闪存已完全擦除。 我还使用 Wireshark 来查看通信量。 首次擦除闪存后、我等待 Wireshark 上显示 BOOTP 请求、然后再执行脚本1。 将自定义引导加载程序编程到闪存后、我将重置电路板并再次等待 BOOTP 请求、然后再执行脚本2。
脚本1日志:

脚本2日志:

Wireshark 显示 BOOTP、ARP 和 TFTP。

我们能够复制上述步骤并达到您的相同状态、但在此之后、我们会遇到以下问题:
1)使用脚本3发送的任何代码均已成功发送,但由于某种原因无法在电路板上运行,这也会擦除引导加载程序
2)当我们在脚本2之后尝试对板执行 ping 操作,其中获取 IP 时, ping 失败,但 BSL 中的示例引导加载程序就是这样。当我们尝试相同的步骤系列,但使用 TI SDK 引导加载程序和 Magic 数据包时,板会显示在 ping 上
怀疑:
1) 1)如何在运行脚本2后闪存定制 TI-RTOS 代码?
2)在读取源代码时、注释提到了一个名为 LM FLASH 的工具、在脚本2之后也使用了该工具、但当我们使用 TI SDK 时确实设法对 MSP 进行了编程、但未执行代码和擦除引导加载程序的相同问题仍然存在、这就是适合此用例(MSP432E401Y Launchpad)的工具。
查看 boot_emac_flash_app_magicpacket_update 示例的.cmd、其中固件将从0x4000开始、因为引导加载程序配置文件期望其从该地址开始。 如前所述、您可以对其进行更改。 您需要确保更改闪存引导加载程序的 bl_config.h 文件和应用程序的.cmd 文件。
#define APP_BASE 0x00004000
小程序
{
FLASH (RX): origin = APP_BASE, length = 0x000FC000
SRAM (RWX):origin = 0x20000000、length = 0x00040000
}

如果 TI-RTOS 应用程序从此地址启动、您是否将 m3Hwi.resetVectorAddress 设置为0x4000?
使用示例软件参考 Chester 在这篇文章中的答案。 https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1024278/tm4c1294ncpdt-rtos-bios-not-working/3786291?tisearch=e2e-sitesearch&keymatch=vtable%20relocate#3786291