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.
你好,我在使用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密码相同的话还能仿真吗?
您好,
目前我们不说解密,专业的术语我们用保护即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的加密 - C2000︎ 微控制器论坛 - C2000 微控制器 - E2E
设计支持 (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 和密码。
非常抱歉以上回复是目前我们能给出的所有帮助了,给您带来的不便敬请谅解。