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.

[参考译文] F28M35H52C:从 RAM 引导 C28后从闪存引导 C28

Guru**** 2033340 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/665748/f28m35h52c-booting-c28-from-flash-after-booting-it-from-ram

器件型号:F28M35H52C

您好!
我们有一个 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