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.

[参考译文] TMS320F28388D:对自定义引导选项进行编程时遇到问题- CAN#39;t boot from Flash in standalone configuration

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1035016/tms320f28388d-trouble-programming-custom-boot-option---can-t-boot-from-flash-in-standalone-configuration

器件型号:TMS320F28388D

您好!
我尝试将默认引导引脚从 GPIO84/72更改为 GPIO33和 GPIO0。
需要进行更改、因为其中一个默认引脚由某些逻辑驱动、无法确保在上电时该输出处于高电平状态。
我们希望从闪存引导。

我所做的是:
将 BOOTPINCONFIG (Z1-GPREG1)寄存器设置为0x5AFF2100 (5A - KEY、FF - BMSP2引脚未使用、21 - GPIO33、00 - GPIO0)
并将 BOOTDEF-LOW (Z1-GPREG3)寄存 器设置为0x03020100 (03 - BOOT_DEF3 =引导至闪存、02 - BOOT_DEF2 - CAN 引导、01 - BOOT_DEF1 - SCI 引导、00 - BOOT_DEF0 -并行引导)。 这些是默认引导选项、因此我以相同的方式设置它们。

因此、在通过 CCS (10.4.0)连接到器件并打开片上闪存工具后、我输入了上述值并点击"Program"。
编程后、我使用了"计算校验和"选项、希望它也会读取编程的值。 它们与上面给出的相同、所以一切看起来都不错。
然后、我断开了 JTAG 并尝试循环通电。 设备无法引导。 已尝试几次。
我连接了调试器并转到片上闪存工具。 BOOTDEF-LOW 的值不同:0xF3020100!  
但是、从独立引导流程图(TRM 中的图5-3)中、如果编程了不受支持的代码(0xF3)、无论如何、它应该从闪存引导。
那么发生什么事了? 为什么 CPU 不从闪存引导? CODE_START 符号在链接器选项中定义并指向 0x080000地址。


有人可以提供帮助吗? 我出了什么问题?

此致、
Andy

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

    有人可以帮助解决这个问题吗?
    非常感谢您的任何意见。

    Andy

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

    尊敬的 Andy:

    将在今天结束时返回给您。

    此致、

    Vivek Singh

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

    尊敬的 Andy:

    [引用 userid="4124" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1035016/tms320f28388d-trouble-programming-custom-boot-option---can-t-boot-from-flash-in-standalone-configuration、因此我连接了调试器并转至片上闪存工具。 BOOTDEF-LOW 的值不同:0xF3020100!  [/报价]

    这很奇怪。 不应该发生这种情况。 我不记得在工具验证期间看到了这个问题。 我需要返回并检查它。

    [引用 userid="4124" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1035016/tms320f28388d-trouble-programming-custom-boot-option---can-t-boot-from-flash-in-standalone-configuration "]但从独立的引导流程图(TRM 中的图5-3)中、如果编程了不受支持的代码(0xF3)、则无论如何应从闪存引导。

    那么、您是否确认了在 GPIO33和 GPIO00引脚上驱动的值为"B11。 如果没有、请再次检查。 如果正确、则需要确保已在闪存中对所有代码进行编程、并且 RAM 中没有任何映射。 如果这也是可以的、那么我建议在连接 CCS 的情况下仿真独立启动、以调试正在发生的情况。 请按照以下步骤执行相同的操作-

    1. 连接到 CCS
    2. 打开存储器视图并在地址0xD01处写入0xA500
    3. 发出 CPU 复位
    4. 点击 CCS"Run"

    您可以在代码入口点放置断点、然后对其进行调试。

    此致、

    Vivek Singh

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

    您好、Vivek、
    我按照您提到的步骤操作、设置 EMUBOOTPINCONFIG、代码运行正常。
    我们将进一步研究这一点、因为在我们一侧对某些模块进行初始化时可能会出现问题(代码可能从闪存运行、但卡在某个位置)。
    当我有一些详细信息时、我将会回来。

    谢谢、此致、
    Andy

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

    好的、谢谢。 将等待您找到的内容。  

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

    我有一些新信息。
    因此、器件正在从闪存引导。 程序执行停留在某些初始化例程和外部存储器测试函数上。 结果、外部 RAM 初始化与 GEL 文件中的初始化略有不同(在 GEL 中是正常的、在主代码中是不好的)。 我们的结论是、确保在测试闪存配置时禁用 GEL 初始化、以避免将来出现此类情况。

    但 CCS OTP 编程工具的另一个问题仍然存在-我们不知道编程(或回读)值为什么与输入的值不同。 我希望你能为我们澄清这一点。

    此致、
    Andy

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

    尊敬的 Andy:

    [引用 userid="4124" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1035016/tms320f28388d-trouble-programming-custom-boot-option---can-t-boot-from-flash-in-standalone-configuration/3833963 #3833963">但 CCS OTP 编程工具的另一个问题仍然存在-我们不知道为什么已编程(或回读)值与输入的值不同。 我希望您能为我们清除这个问题。[/引述]

    我们将对此进行研究。 您能否确认您正在使用哪个 CCS 版本? 如果不是最新的、您能否检查更新并安装最新的更新、然后重试。

    此致、

    Vivek Singh

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

    我使用的是最新的 CCS: 10.4.0.00006。

    此致、
    Andy