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.

TMS320F28027F: C2000™︎ 微控制器论坛

Part Number: TMS320F28027F
Other Parts Discussed in Thread: C2000WARE

你好,我在使用CCS11.2版本给TMS320f28027F加密后,加密一般能成功,但是解密时会弹出Device unlocked. To clear the programmed password, please erase Sector A of Flash memory。但是节点A我选择上了的 ,是因为解密的时候必须要在BOOTLOAD的wait下才能解锁吗?

而且我还遇到了有的芯片在加密后不会运行的情况,这又是什么影响的呢?

还有添加文件_CSMPasswords.asm文件的形式加密的话,ccs 哦on-chip flash密码相同的话还能仿真吗?

  • 您好,我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢!

  • 好的谢谢,而且还发现一个问题,加密成功后去掉仿真器芯片无法运行,程序中有在RAM和flash运行,是给flash加密了导致的吗?仿真状态下又没有这个问题。

  • 您好,

    目前我们不说解密,专业的术语我们用保护即securing来代替。

    是因为解密的时候必须要在BOOTLOAD的wait下才能解锁吗?

    不是, Wait引导模式仅在上电期间使用。 保持器件在boot-ROM 中循环并且不访问闪存是一种secure资源,是很有效的方法。如果在secure器件中访问闪存,将会触发 ECSL 逻辑并断开调试器连接。 总而言之,Wait引导模式与闪存的擦除/编程操作期间并无关系。 

    而且我还遇到了有的芯片在加密后不会运行的情况,这又是什么影响的呢?

    正常情况下是不会发生的,securing的器件应该不会影响器件运行,尤其是在standalone模式下。此处应该还存在其他问题。CSM 模块与此无关。

    添加文件_CSMPasswords.asm文件的形式加密的话,ccs 哦on-chip flash密码相同的话还能仿真吗?

    如果您问的是,是否可以使用 CCS 片上闪存编程器添加密码,方法与使用_csmpassword.asm 将密码添加到项目中的方法相同。 那么答案是肯定的。

  • 好的,谢谢反馈,真的对于CSM的使用很有帮助。但是目前还是被加密后无法运行程序困住,现象是不通过仿真器DBUG程序一点都没有运行,但是仿真状态程序运行良好,当时认为可能是处于bootload模式下等待住了或者影响了CodeStartBranch.asm的地址。导致在没有仿真器的情况下无法运行程序,请问除了这两点还有什么方向值得查证的吗?

  • 对您有帮助就好。您说的问题我们再跟进给工程师看下,应该会在下个工作日给到您答复。

  • 您好,

    但是目前还是被加密后无法运行程序困住,现象是不通过仿真器DBUG程序一点都没有运行,但是仿真状态程序运行良好,

    好的,在这种情况下,代码在连接 JTAG 调试探针的情况下工作正常,但在未连接 JTAG 调试探针的情况下不工作。 也就是说,项目在通过 CCS 运行时可以正常运行,但不能在standalone模式下运行。 e2e 上有较多关于该问题的答复,请参阅:

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/757590

    当时认为可能是处于bootload模式下等待住了

    在正常情况下不应该要使用wait bootlload模式。 请在standalone模式下从闪存引导,仅使用 GetMode。

    或者影响了CodeStartBranch.asm的地址。

    如果您使用的是作为 C2000ware 一部分提供的默认linker command file,所有文件都将被放置在正确的地址。 

  • 你好刚才还是对代码加密的时候看到的现象是当添加好了f2802x_csmpasswords.asm文件后不去修改密码,那么没有程序没法运行问题。但是如果密码有改动。再次烧录后去掉仿真器程序就是无法运行。

    我看到了论坛里有几年前的相同问题的帖子,但是并没有得到解决办法帖子为:28027和28035的加密 - C2000Tm︎ 微控制器论坛 - C2000 微控制器 - E2ETm 设计支持 (ti.com)。其中提到了非secure区域的ram,将其改用为secure区域的ram。但是CMD的文件配置都是跟文本里提到的相同,如果可以的话能麻烦通过28027的历程加下密吗?

     CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
    CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */

  • 好的我们反馈给工程师看下。

  • 没理解您说的新问题到底是什么。正如之前所说的,securing或not securing的设备并不会影响应用程序的执行。

    还请麻烦详细并准确的再阐述下您的问题。

  • 抱歉可能我表达的不是很清晰,我在使用程序的工程里添加上了f2802x_csmpasswords.asm文件,这个文件的本质照我的理解是对于csm即对应的地址CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008 写入对应的密码。但是实际调试的时候当我添加上这个文件后对这段地址全部写入0xFFFF的时候,在不接仿真器的情况下我程序能启动,但是在这段地址发生变化改为我写入的密码时,程序在没有仿真器的情况下就无法启动了。意思是我改变了从0x3F7FF8到0x3F7FFF的地址后照成了程序无法启动,但28027的guide来说CSM的地址就是其中的8位。当我的芯片上电时是直接启动的getmode()的话应该是不会访问到0x3F7FF8到0x3F7FFF这段的地址的。如果不访问那么上电的时候为什么会程序无法启动。而且看到了上面帖子在使用28027的CSM时候遇到了相同的在上电后程序无法运行的问题,工程师说到了securing的RAM或not securing的RAM不知道是否是这个问题的解决方向。

  • 这个帖子是很久之前的了,我们先把您说的转达给美国的工程师,看下是否有解决办法。

  • 您好,

    还是我们之前说的,安全性并不会影响代码执行。 您还可以参考以上回复中给出的 e2e帖子,其中讨论了为什么没有仿真器时代码无法运行。这是一个非常旧的模块(将近20年历史),与 DCSM 相比是非常容易理解的。 您请尝试使用具有安全性的简单 GPIO 切换代码。此外还可以检查.map 文件以正确放置 DSP2803x_CodeStartBranch.asm 和密码。 

    非常抱歉以上回复是目前我们能给出的所有帮助了,给您带来的不便敬请谅解。