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.
您好!
我们有一个 M3引导加载程序、它在共享 RAM 中加载 C28二进制文件。 将该二进制文件加载到 RAM 中后、我们会从 RAM 引导 C28、其工作正常。
该二进制文件的目的是使用 FlashAPI 在闪存中加载实际的 C28固件
将 C28主固件编程为闪存后、M3引导加载程序将跳转到主应用程序、然后我们再次尝试从闪存引导 C28。 此步骤无效。
是否存在阻止 C28连续启动两次的情况(从 RAM 启动、然后从闪存启动)?
我可以确认 C28主固件已正确编程到闪存中、因为如果我们之前没有在同一个下电上电周期从 RAM 引导、我们可以从闪存引导、而不会出现任何问题。
总结步骤:
启动 M3引导加载程序->确定
将 C28二进制文件加载到共享 RAM ->确定
为共享 RAM 主器件提供 C28访问权限->确定
从共享 RAM 启动 C28 ->确定
使用 FlashAPI 将 C28主固件编程到闪存->确定
将共享 RAM 主站访问权限发送回 M3 ->确定
M3跳转到主 M3固件->好的
从闪存启动 C28 ->失败
非常感谢您的帮助、谢谢!
RIL
编辑:
现在、作为一种权变措施、我们在升级后重新启动器件、这样我们就不必在同一个下电上电周期中两次启动 C28、它工作正常。 不过、如果我们可以避免重新启动、那就很好了。
谢谢
RIL、
[引用 user="RIL Dank"]
总结步骤:
启动 M3引导加载程序->确定
将 C28二进制文件加载到共享 RAM ->确定
为共享 RAM 主器件提供 C28访问权限->确定
从共享 RAM 启动 C28 ->确定
使用 FlashAPI 将 C28主固件编程到闪存->确定
将共享 RAM 主站访问权限发送回 M3 ->确定
M3跳转到主 M3固件->好的
从闪存启动 C28 ->失败
[/报价]
M3应用程序如何在上述步骤的末尾要求 C28从闪存启动? 如果您要向 C28引导 ROM 发送 IPC 命令、那么在该实例中不会运行 C28引导 ROM、对吧? 就在将共享 RAM 访问权返回到 M3之前、您应该让 M3将 C28置于 RESET 状态并释放 C28 RESET 状态、以便它运行 C-Boot ROM、然后您可以将 Boot to flash IPC 命令从 M3主固件中写入 C-Boot ROM。
希望这对您有所帮助。
此致
Santosh Athuru
您好 Santosh、
非常感谢您的回答、它解决了我的问题。
我将 C28置于复位状态、但没有释放它。
这样做对我很有用:
RAMMReqSharedMemAccess (C28_Sectoses_access_list、SX_M3MASTER); //将 C28保持在复位状态并将其释放、以便它准备好从闪存 SysCtlHoldSubSystemInReset (SYSCTL_CONTROL_SYSTEM_RES_CNF)引导; SysCtlSubSystemFRESTl (SYSCTL_CONTROL_RES_SYSTEM);SysReleaseRECT_RES_RES_CNTL
再次感谢您的支持。
RIL