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.
实验:使用TMS320F280049C开发板,启动方式选择flash启动,配置DCSM OTP
使用同样的程序(程序没有PML解锁流程),lnk.cmd 分散加载链接情况如下图所示:
使用同样的程序(程序没有PML解锁流程),但进行了2次DCSM配置,扇区的安全配置完成相同,不同在于密码设置;
第1次配置使用非默认密码,第2次配置使用默认密码。
配置以及现象如下所示:
现象:使用默认密码时,LED2亮了。
问题:
1. 使用非默认密码时,不能从扇区0(EXEONLY)跳转到flash启动。这是为什么呢?
2. 使用默认密码时,在没有PML解锁的情况下,为什么能从扇区0(EXEONLY)跳转到flash启动?为什么能读取EXEONLY扇区的数据?
谢谢!
DCSM配置zone2如下:使用默认密码,配置BANK0 扇区7为EXEONLY,属于zone2
使用默认密码,应该能读到EXEONLY扇区数据。但是,通过Uniflash不能读BANK0 扇区7的数据
1. uniflash读取memory这个功能确实有bug。我之前就遇到过这种情况,一模一样的配置,有的时候能成功读取,有的时候不能;我记得当时如果先从设备中读取安全配置,再读memory,读取的成功率会增加:
也可以通过CCS的读取功能尝试一下;
2. 这个跳转具体是怎么实现的?
1. 使用非默认密码时,不能从扇区0(EXEONLY)跳转到flash启动。这是为什么呢?
好的,感谢分享。
代码的运行(取指令)其实并不会受DCSM加密的影响(我之前的回复不准确),从EXEONLY是可以正常跳到外部运行的。
但是.cinit存放的是运行时初始化相关的内容,先于code_start(也就是主函数的入口)运行。这个会不会受DCSM保护的影响,确实存疑,我会询问一下相关的工程师。