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.
我设置了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区域的内容,是什么样的保护特性呢?
DCSM密码加密的是配置,PSWLock密码加密的是DCSM密码;
被配置成EXEONLY的Flash扇区,可以取指令(fetch),也就是运行程序,读需要执行PMF。
Flash扇区的安全配置,以及读取/编程,是没问题的,我测试过。
但,我问的问题是DCSM OTP区域怎么读取?
在配置了DCSM CSM密码的情况下,DCSM OTP读取机制是和Flash的读取机制有什么不一样的地方?
我的理解,Flash的读取机制,如下:
1. Flash扇区被配置成secure,是可以通过处于相同zone的代码读取flash扇区内容的;
2. Flash扇区被配置成EXEONLY,不能读到实际内容。
Yale,你好!
在以上链接,工程师的问题:
回答如下:
Yale,你好!
上面链接,回答一下工程师的问题:The program that reads the CSM password & sector configuration, where is that program running from?
回答:程序在Zone1 EXEONLY的扇区中运行。
然后关于其他问题,工程师的回答,都看了,目前没有疑问。
请帮忙更新一下,谢谢!