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.

[参考译文] CCS/TMS320F28377S:保护代码、以便器件正确启动

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/640149/ccs-tms320f28377s-securing-code-so-the-device-will-boot-properly

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

我想锁定该处理器上的一些代码。 我按照 Blinki-DCSM 的示例、添加了一个锁定处理器的.asm 文件。  此部件起作用。  如果我在 CCS7中没有正确的密码、我将无法看到代码。  如果我添加了正确的密码、我可以单步执行并查看代码。  但是,现在我只能运行来自 CCS7的代码--它不会像以前那样在重新启动时启动和运行。  

我的 asm 文件包含以下代码、不带密码。 (我打算锁定 FLASHD 和 RAMLS0、因为我的代码在 FLASHD 中启动并在启动时获得 RAMLS0的副本。  在没有 CCS7保护的情况下、阻止启动的错误是什么?  此致

.sect "Dcsm_otp_z1_linkpointer"
长整型0x1FFFFFFF ;Z1-LINKPOINTER1.
长整型0xFFFFFFFF ;保留
长整型0x1FFFFFFF ;Z1-LINKPOINTER2.
长整型0xFFFFFFFF ;保留
长整型0x1FFFFFFF ;Z1-LINKPOINTER3.
长整型0xFFFFFFFF ;保留

.sect "Dcsm_otp_z1_pswdlock "
长整型0x00000000 ;Z1-PSWDLOCK
长整型0xFFFFFFFF ;保留

.sect "Dcsm_otp_Z1_crclock"
长整型0xFFFFFFFF ;Z1-CRCLOCK
长整型0xFFFFFFFF ;保留

.sect "Dcsm_otp_z1_bootctrl"
长整型0xFFFFFFFF ;保留
长整型0xFFFFFFFF ;Z1-BOOTCTRL

.sect "Dcsm_zsel_Z1"

长整型0xFFFFFFFF ;Z1-EXEONLYRAM
长整型0xFFFFFFFF ;Z1-EXEONLYSECT
长整型0xFFFFFFFD ;Z1-GRABRAM
长整型0xFFFFFFBF ;Z1-GRABSECT 

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

    您好、Neil、

    需要检查的几件事-

    1)引导模式引脚的值-确保这些引脚在板上设置为1/1 (GetMode)。

    2) 2)请检查是否正确配置了所有安全设置的 ECC 值。 只要它未被禁用、闪存编程器就会自动对它进行编程。 在使用 CCS 运行时、GEL 文件禁用 ECC、因此即使未对 ECC 值进行编程、它也能正常工作。 您可以从 GEL 文件中删除该代码、然后查看 CCS 是否仍然正常工作。

    此致、

    Vivek Singh

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

    感谢您提供的信息、但我不确定我是否理解。 如何设置引导模式引脚? 这是在 CCS7中吗? 如果是、我会在哪里找到它?

    在哪里配置 ECC 值? 这是在.asm 文件中吗? CCS7? 我该怎么做?

    在用户手册 spruhx5e 中、我看不到这两个器件的完整文档。

    谢谢、

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

    GPIO72和 GPIO84是引导模式引脚、应在电路板上驱动至1/1。 您使用的是哪种电路板?

    关于 ECC 编程、不、您不必在.asm 文件中配置它。 如果您尚未在闪存插件中禁用它、闪存编程器将自动对其进行编程。

    您是否尝试从 GEL 文件中删除 ECC 禁用代码,并查看它是否仍然适用于 CCS?

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

    您好、Vivek、

    我们将 Launchpad 与 F28377配合使用。  我们通过切换引导 DIP 将板置于 GetMode 下、以关闭 TRST (将 GPIO84和 GPIO72保持开启状态)。

    GEL 文件有以下两行:

    *(int *) 0x5FB00 = 0;//禁用 CPU1-FMC 闪存 ECC *
    *(int *) 0x5FF00 = 0;//禁用 CPU2-FMC 闪存 ECC *

    是否删除这些内容?  为他们分配不同的值?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们在上面注释了这两行、行为是相同的-从 CCS7启动并运行、但不会自行启动。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Neil、

    注释掉这一行内容后、您需要重新启动目标并再次连接到 CCS、以便所做的更改生效。 你已经完成了吗?

    此致、

    Vivek Singh