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.

[参考译文] TMS320F28375S:从闪存引导失败、随机发生

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1444168/tms320f28375s-failed-booting-from-flash-happens-randomly

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

工具与软件:

你好

我遇到了一个奇怪的问题。 我有一个引导加载程序在前两个闪存扇区中闪存并从闪存运行。 然后、我将剩余几个扇区为空。 实际上、它们被保留用于第二个引导加载程序、但它们目前是空的。 然后、在闪存中有一个用于主应用程序的位置。  

考虑以下因素:
在引导加载程序代码中、我进行了一项微小的更改、仅获取两个不同的校验和(我只更改已定义宏的值、这个宏甚至没有在代码中使用)。 我会获得两个不同版本的引导加载程序。 我们将其称为 BL0_v1和 BL0_v2
我在 DSP 上逐个刷写(没有其他内容已刷写、只有该引导加载程序。 无应用)。 两者都正常运行。
案例1:BL0_v1 => 可以
案例2:BL0_v2 => 正常


在另一种情况下、除了引导加载程序之外、我还闪存主应用程序。 在这种情况下、对于其中一个 bootloader、即使在下电上电后也无法启动 DSP!  

案例3:bl0_v1 + app =>正常
案例4:bl0_v2 + app =>不会运行!!  

我再次重申、Blv_v1和 BL0_v2之间的差异无关紧要。 所以造成这一问题的原因不是这个微小变化的内容。 它随机发生,它也发生在代码的其他部分的小更改。  

我的质询是、这问题可能是甚么原因呢? 为什么会随机发生? 如果引导加载程序代码 BL0_v2有问题 (这不是这样、因为 v2本质上与 v1相同)、为什么只有当应用程序也存在而没有应用程序时才会发生该问题?  

我开发了两级引导加载程序、我在测试过程中注意到了这个问题。 此 BL_0实际上是第一级加载器。
起初、我认为问题出在开发的第二级引导加载程序上、因为在我的开发过程中、有时仅仅通过对第2级引导加载程序进行少量更改就会发生类似的情况、DSP 也会在复位后消失。 (在这些测试期间、我未更改 BL0)。 然后我注意到、即使 BL_0发生了一些更改、没有第二阶段 BL、也可能会发生这种问题。 我感谢有关这个问题的原因的任何想法。





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

    你好、Saeed、

    复位后 DSP 不引导是什么意思? 您是否已尝试过调试引导 ROM 以了解 DSP 卡住了?

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

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

    此致、

    Matt