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.

[参考译文] TMS320F2800137:SPI 引导加载程序和 SPI 闪存内核作为辅助引导加载程序、或作为程序一部分的 SPI 闪存内核

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1394682/tms320f2800137-spi-bootloader-and-spi-flash-kernel-as-secondary-bootloader-or-spi-flash-kernel-as-part-of-program

器件型号:TMS320F2800137
Thread 中讨论的其他器件:C2000WARE

工具与软件:

我们需要通过 ESP 32通过 SPI 对 DSP 进行更新和编程。  

首先、DSP 中内置了 SPI 引导加载程序、可将程序保存到 RAM 中。 我们首先转移我们的闪存内核,一旦运行,它会将我们的实际工作程序保存到闪存中。 闪存内核与 SCI 闪存内核示例非常相似、但对于具有校验和的 SPI、我们甚至在 SPI 逐字节传输之间添加了我们自己的延迟。

引导加载程序的问题是、由于它是内置的、因此我们无法向它添加功能、也无法逐步对它进行调试。 它还面向 SPI EEPROM 闪存而不是 ESP 等微控制器。 引导加载程序的时序与 ESP 是很难匹配的。 ESP 错过了时序、传输失败。 我们唯一成功的方法是将整个文件缓冲区加载到一个数组中并通过 ESP 发送。 如果 ESP 在处理过程中甚至延迟了一微秒、则传输失败。

也不存在校验和或任何使我们知道 DSP 已成功编程的确认。  

闪存内核约为15-16 KB、如果我们使一个较小的 SPI 缓冲区(例如16字节)并继续重新加载、它将错过时序。

我们的另一个想法是将 SPI 闪存内核作为我们主程序的一部分。 但如果它破坏了,我们没有办法在现场更新它。

是否有更好的方法利用 SPI 引导加载程序? 使用 ESP 32设置它的正确方法是什么?  

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

    您好!

    感谢您的咨询。 请允许我再过一天提出一些建议-感谢您的耐心!

    总之、您能够利用 SPI 引导模式(基于 SCI 示例)并成功地对器件进行编程、但使用案例似乎非常窄/在实施中(特别是对于 EEPROM)非常有限。 因此、您希望获得有关实施 SPI 引导加载程序的建议/指导、以便找到更灵活的时序并验证程序负载?

    此致、

    Allison

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

    "那么、您想在实现 SPI 引导加载程序方面寻求更灵活的时序以及能够验证程序负载方面的建议/指导吗?"

    是的、完全正确  

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

    您好!

    我仍在收集有关这方面的信息、但明天会提供更新。 再次感谢您的耐心!

    此致、

    Allison

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

    您好!

    对于响应延迟、我们深表歉意。 关于您之前的评论:

    [quote userid="596135" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1394682/tms320f2800137-spi-bootloader-and-spi-flash-kernel-as-secondary-bootloader-or-spi-flash-kernel-as-part-of-program 我们也不能一步一步地对其进行调试。 [报价]

    您可以通过将引导 ROM 符号(.out 文件)加载到器件来单步执行器件引导 ROM。  加载符号是一种有价值的调试方法。  此选项会添加生成的项目".out"文件中提供的符号以进行调试、而不是通过 CCS 将实际的".out"程序加载到内核中-这也是您可以将此方法与引导 ROM/内 置引导加载程序一起使用以进行调试和获得可见性的原因。

    1. 将 CCS 打开到工作区
    2. 点击"View">"目标配置":
    3. 您可以将此器件的工程导入 CCS 并使用该工程连接到器件、或在此窗口中将原始目标配置从 C2000Ware 复制到"用户定义的"目标配置。 无论通过哪种方式、均可查找器件目标配置(下面的 F28377D 示例)并启动:
    4. 当它打开调试窗口时、选择器件 CPU 并连接到目标:
    5. 导航至工具栏并单击按钮至"LOAD symbols"(加载符号)
    6. 加载 bootrom .out 文件。 对于该器件、它应该位于中  
      1. C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f280013x\RevB\rom_sources\ccs_files\cpu\Release
      2. 如果弹出一个窗口、表明找不到源文件、可以选择"Locate File"并在 C2000Ware 中找到它
        1. 通常在此处为 C:\ti\c2000\C2000Ware_5_02_00_00\libraries\boot_rom\f280013x\RevB\rom_sources\F280013x_rom\bootROM\source
    7. 该文件应打开以显示您所在的 Bootrom 位置、而您可以单步执行/调试

    如果您尝试一下、请告诉我-还有可能还有其他线程也提供了有关如何执行此操作的说明。 关于调查的其余部分、我仍在努力收集更多信息、以便了解其他哪些建议在这里可能会有所帮助、并将在我能够提供更新时告诉您。

    此致、

    Allison

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

    谢谢您的回答。 为了进行调试和测试、我们在 bootrom 中使用了 SPI 引导文件、并围绕它制作了一个 CCS 项目。 它工作得很好。 您能不能联系我们了解校验和的相关信息? 以及我们是否可以在引导加载程序中进行更改

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

    您好!

    很高兴您能够进行调试和测试! 如果您使用内置 SPI 引导加载程序并引导至 SPI、则只限于引导 ROM 中包含的内容、而对于 SPI、  没有可用的固有硬件检查特性、但我要验证这里是否有任何其他灵活性或解决方案、并明天提供更新。

    此致、

    Allison

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

    您好!

    很抱歉周末的延误-只是想让你知道我不幸还没有能够获得更多的信息。 接下来我要介绍一些资源。 我一定会在接下来的1-2天跟进。

    此致、

    Allison

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

    您好!

    抱歉耽误了长时间-为了确认我之前提到的内容、如果您使用的是我们的 SPI 引导加载程序、 除非您自己开发了自定义引导加载程序、否则无法了解从 bootROM 使用的是什么。 遗憾的是、此案例在这方面受到限制、但我已经对此进行了记录、以便向 bootROM 团队提供反馈。  

    此致、

    Allison