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.

[参考译文] TMS320VC5510A:在何处存储引导表的入口点值?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1248406/tms320vc5510a-where-to-store-entry-point-value-for-boot-table

器件型号:TMS320VC5510A

我们正在开发适用于 TMS320VC5510A 芯片的应用、其中我们要从外部闪存加载程序。 执行此操作的过程涉及从闪存读取程序数据并根据引导表定义对其进行解析。 从引导表解析的第一个值是"入口点"。 我们不太清楚的是、我们将此应用起点值存储在从闪存中读取之后的 Code Composer Studio 项目中。 有没有人对如何做到这一点有任何见解?

谢谢

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

    尊敬的 Stephen:

    上述引导加载过程由上电复位后的 C5510A ROM 引导加载程序完成。

    您需要做的是使用 HEX55将 CCS 项目二进制文件(输出文件)转换为引导映像、并将其刷写到 EEPROM 中、然后 ROM 引导加载程序将读取引导映像。 引导表由 HEX55生成。 它将由 ROM 引导加载程序处理。

    有关详细信息、请参阅以下应用手册: https://www.ti.com/lit/pdf/spra763

    此致、

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

    尊敬的 Ming:

    感谢您的回复。 我在我的问题中应该更具体一些-闪存中存储了多个图像。 我们可以在芯片上电时加载初始程序、但我们要通过软件使用不同的程序在不同的闪存插槽中重置芯片。

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

    尊敬的 Stephen:

    在这种情况下、您可能需要编写自己的次级引导加载程序(SBL)。 ROM 引导加载程序将在上电时引导加载您的 SBL、然后您 SBL 将根据您的需求引导加载不同的应用程序映像。 SBL 将模仿 ROM 引导加载程序、后者将应用程序映像从闪存逐节复制到 RAM、最后分支到所需的入口地址。

    此致、

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

    尊敬的 Ming:

    感谢您的深入理解。 我们已经写入了大多数次级引导加载程序。 我不明白的是技术细节、指明 我应将闪存映像中的入口点存储在 RAM 的何处。

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

    尊敬的 Stephen:

    入口地址是引导表中的第一个32位字、请参阅 SPRA763c.pdf "引导表结构"的第2.4.2节。

    我为 C5510A 编写了 ROM 引导加载程序、但为 C5505编写了 ROM 引导加载程序。 ROM 引导加载程序将保留一些 RAM 部分以存储其堆栈、变量等。 对于 C5505、我们使用最后8KB 的片上 RAM。 可以参阅 SPRA763c.pdf 的第2.4.1节。 "引导加载程序使用的 DSP 资源"、在我看来、它们使用的是0000h−0200h RAM 作为 ROM 引导加载程序工作存储器。

    应用起点地址存储在字地址0060h 和0061h 上

    此致、

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

    尊敬的 Ming:

    因此、如果我将辅助程序映像的数据复制到芯片的内部 RAM 中、请将其引导表中的入口点存储在地址0x60/0x61中、然后执行软件复位、 芯片将从新的应用起点地址引导、我的辅助映像将会加载并运行吗?

    感谢您提供的信息。

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

    尊敬的 Stephen:

    RAM 0x0000至0x0200仅是 ROM 引导加载程序的工作存储器。 入口地址将存储在0x60/0x61中。 ROM 引导加载程序的最后一步是跳转到入口地址。

    如果您已经完成了自己的 SBL、那么在加载应用程序映像后、您可以将应用程序映像的入口地址存储在0x60/61中。 加载引导表中指定的所有段后、可以跳转到新的入口地址以启动应用程序。

    每次复位都将触发 ROM 引导加载程序的新执行。 我认为你不能改变这些设置、但是你始终可以将 PC (程序计数器)更改为一个新的地址并运行(或者无条件跳转到一个新的地址)。

    此致、