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.

[参考译文] TMS320C6678:仅使用 RBL 从 SPI 引导、也不在评估板上引导

Guru**** 2553700 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/608338/tms320c6678-boot-from-spi-nor-on-eval-board-using-only-rbl

器件型号:TMS320C6678

我有一个 TMDSEVM6678LE 板、我已经验证它上面有一个 C6678芯片版本2.0 DSP。  我希望仅使用 RBL 从 SPI NOR 闪存引导。  原因是、IBL 占用128K 的 L2 SRAM、我需要将代码引导到 L2 SRAM 中。  我也无法跳过其中的前128K、因为我们的图像太大了。  我们需要一切。

我有一位 TI 现场服务代表建议我的2个选择是重新编程 CPLD (我想不会强制我使用 I2C)、或者获得一个只读 DIP 开关和分支回 RBL 的最小 IBL (从而为我释放 L2)。

目前、如果我尝试加载到 L2中、我会覆盖 IBL、它会在启动代码之前崩溃。  我已经通过修改 linker.cmd 文件将其加载到 MSM 中来证明我的代码是可以的、它可以在那里引导并正常运行。  但我们需要 MSM 用于其他用途、因此它不是有效的解决方案。

对于上述两种解决方案中的任何一种、我都需要 TI 为我提供映像和刻录说明。

谢谢!

David Hague

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

    我已通知软件团队。 他们的反馈将在此处发布。

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

    David、

    我将引导您访问我们提供直接引导示例的链接:

    请参阅这些示例、并告知我们这些说明是否有助于您实现直接 SPI 或从 ROM 引导加载程序引导。

    此致、

    Rahul

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

    Rahul、

    我将 prebuild_image (我 尝试了 spirom_le.dat 和 spirom_le_swap.dat)烧录 到 NOR Flash 并引导。  我希望在 UART 上看到"Hello World"、一些 LED 会闪烁。  我也没有看到。  我还完成了构建指令、 并烧录 了生成的 app.dat、并获得了相同的结果。  我在 UART 上看不到任何内容、因此可能无法 正确设置 DIP 开关?   我将 DIP 开关设置为:

    SW3: 关闭 打开 关闭  

    SW4: 打开 打开 打开  

    SW5  打开 关闭  打开

    SW6:  打开 打开 打开  

    是这样吗?

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

    David、

    docs 文件夹中的 C6678示例提供了闪存、运行示例和编译示例的完整过程。 n`t 您找到它、我将其附在此处以供您参考:

    e2e.ti.com/.../C6678_5F00_SPIboot_5F00_usersManual.pdf

    希望这对您有所帮助。  

    此致、

    Rahul

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

    是的、该文档显示的交换机设置与我设置的设置完全相同。  程序似乎没有运行。  UART 上无任何内容、LED 也不闪烁。

    不确定现在该怎么办。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我使它正常工作。 问题出在刻录之前将 app.dat 文件加载到内存中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    David、

    感谢您确认您已使用该示例。

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

    尝试使用相同的过程来构建我们的应用程序、我使用 b2i2c.exe 时遇到错误。 我得到"超出最大输入数组大小"错误。 在论坛中进行搜索、我看到很多人都遇到了这个问题、答案是编辑 b2i2c.c 文件、增加 maxsize 并重建。 问题是、我没有 gcc、很难获得它。 TI 的任何人是否将此 exe 文件重建为最大大小0x80000?

    此外、是否有方法可以自动执行 i2crom.ccs 文件编辑步骤? 我们希望尽可能实现楼宇和燃烧的自动化。

    请告诉我是否需要为此提交新的(或单独的)职位。

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

    David、

    我认为在处理器 SDK 版本中、b2i2c 中修复了最大大小问题、当前大小已更新为0x20000。

    我已将此更新为0x80000、并在此提供了实用程序:

    e2e.ti.com/.../btoccs.zip

    对于另一个问题、您能否在调用 romparse 创建 i2crom 时尝试添加以下语法、并查看这是否解决了该问题

    "romparse -rom_base 0x0"

    此致、

    Rahul

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

    当我运行 b2i2c.exe 程序时、我会得到:

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

    当我双击 b2i2c.exe 文件时、我会得到:

    尝试将其构建为"静态"可执行文件。  谢谢!

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

    当我双击 b2i2c.exe 文件时、我得到:

    尝试将其构建为"静态"可执行文件。  谢谢!

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

    David、

    这有点奇怪、每当我使用 cygwin 编译器进行编译时、似乎会自动链接到 cygwin DLL、因此我使用 Bash shell 和 MinGW (.org/-w64)构建它。 请尝试一下、并告知我们这是否有效。

    e2e.ti.com/.../b2i2c_5F00_MinGW.zip

    希望这起作用。

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的! 修复了 b2i2c 问题。 b2ccs 似乎也起作用。 但 romparse 会崩溃、i2crom.ccs 文件为空。 我怀疑这是一个类似的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../romparse_5F00_MinGW.zipOk,这是使用 bash 和 MinGW 重建的 romparse 实用程序。

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那个也会崩溃。 除了重建它之外、您还做了什么其他事情吗? 我想您需要修改 MAX_DATA_LEN_32位。 它在 romparse.h 中定义为32768、但我的输入文件中包含39959行。 确保65536安全。

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

    之前的二进制文件只是从 SDK 中提供的源代码重建的。

    我已根据您的要求更新了大小、并在此处提供了更新的二进制文件:

    e2e.ti.com/.../romparse_5F00_64K_5F00_MinGW.zip

    希望这个能够解决问题。

    这是使用以下命令构建的:

    使 I2C_BUS_ADDR=0x0 TARGET=c66x

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

    是的!!!  就是这样!  我现在只使用 RBL 从 NOR 闪存引导我的映像。

    非常感谢您耐心地帮助我完成这项工作。

    David