Part Number:TMS320F280049C
我设置了DCSM OTP Zone1区域的配置(扇区保护,以及使用非默认密码,但是密码锁PSWLock是enable);
同时设置了DCSM OTP Zone2区域的配置(扇区保护,以及使用非默认密码,但是密码锁PSWLock是disable)。
做了以下实验,如下:
1. 应用程序链接存放在zone1扇区中,没有解锁PMF,程序尝试去读取DCSM OTP Zone1的CSM密码,没有读到实际的值。
现象:LED2没有亮。
代码如下:
uint32_t *p; p = (uint32_t *)0x000780C8; //Zone1 CSM if( *p == 0xFFFFFFFE) //Zone1 CSM value {GPIO_writePin(DEVICE_GPIO_PIN_LEN2, 0); }
2. 应用程序链接存放在zone2扇区中,没有解锁PMF,程序尝试去读取DCSM OTP Zone2的CSM密码,可以读到实际的值。
现象:LED2亮。
代码如下:
uint32_t *p; p = (uint32_t *)0x000782C8; //Zone2 CSM if( *p == 0xFFFFFFFE) //Zone2 CSM value {GPIO_writePin(DEVICE_GPIO_PIN_LEN2, 0); }
3. 应用程序链接存放在zone2扇区中,没有解锁PMF,程序尝试去读取DCSM OTP Zone2的扇区配置,没有读到实际的值。
现象:LED2亮。
代码如下:
uint32_t *p; p = (uint32_t *)0x000782C0; //Zone2 EXEONLYRAM if( *p == 0x0000003F) //Zone2 EXEONLYRAM value {GPIO_writePin(DEVICE_GPIO_PIN_LEN2, 0); }
问:
1. 没有PMF时,DCSM OTP区域的内容,被保护的内容为什么不能读到?
2. Flash扇区被配置成secure,是可以通过处于相同zone的代码读取flash扇区内容的;Flash扇区被配置成EXEONLY,不能读到实际内容。
那么DCSM OTP区域的内容,是什么样的保护特性呢?
Yale Li:
DCSM密码加密的是配置,PSWLock密码加密的是DCSM密码;
被配置成EXEONLY的Flash扇区,可以取指令(fetch),也就是运行程序,读需要执行PMF。
,
k lia:
Flash扇区的安全配置,以及读取/编程,是没问题的,我测试过。
但,我问的问题是DCSM OTP区域怎么读取?
在配置了DCSM CSM密码的情况下,DCSM OTP读取机制是和Flash的读取机制有什么不一样的地方?
我的理解,Flash的读取机制,如下:
1. Flash扇区被配置成secure,是可以通过处于相同zone的代码读取flash扇区内容的;
2. Flash扇区被配置成EXEONLY,不能读到实际内容。
,
Yale Li:
OTP区域调试时是可以读取的,运行时确实没有试过。
我一并咨询一下
,
k lia:
好的,非常感谢!
,
Yale Li:
请留意一下下方的链接:
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1313993/tms320f280049c-read-dcsm-otp