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: 请教一下,关于DCSM OTP内容读取问题

Part Number: TMS320F280049C

我设置了DCSM OTP Zone1区域的配置(扇区保护,以及使用非默认密码,但是密码锁PSWLock是enable);

同时设置了DCSM OTP Zone2区域的配置(扇区保护,以及使用非默认密码,但是密码锁PSWLock是disable)。

做了以下实验,如下:

1. 应用程序链接存放在zone1扇区中,没有解锁PMF,程序尝试去读取DCSM OTP Zone1的CSM密码,没有读到实际的值。

现象:LED2没有亮。

代码如下:

Fullscreen
1
2
3
4
5
6
7
8
9
10
uint32_t *p;
p = (uint32_t *)0x000780C8; //Zone1 CSM
if( *p == 0xFFFFFFFE) //Zone1 CSM value
{
GPIO_writePin(DEVICE_GPIO_PIN_LEN2, 0);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2.  应用程序链接存放在zone2扇区中,没有解锁PMF,程序尝试去读取DCSM OTP Zone2的CSM密码,可以读到实际的值。

现象:LED2亮。

代码如下:

Fullscreen
1
2
3
4
5
6
7
8
9
10
uint32_t *p;
p = (uint32_t *)0x000782C8; //Zone2 CSM
if( *p == 0xFFFFFFFE) //Zone2 CSM value
{
GPIO_writePin(DEVICE_GPIO_PIN_LEN2, 0);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

3.  应用程序链接存放在zone2扇区中,没有解锁PMF,程序尝试去读取DCSM OTP Zone2的扇区配置,没有读到实际的值。

现象:LED2亮。

代码如下:

Fullscreen
1
2
3
4
5
6
7
8
9
10
uint32_t *p;
p = (uint32_t *)0x000782C0; //Zone2 EXEONLYRAM
if( *p == 0x0000003F) //Zone2 EXEONLYRAM value
{
GPIO_writePin(DEVICE_GPIO_PIN_LEN2, 0);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

问:

1. 没有PMF时,DCSM OTP区域的内容,被保护的内容为什么不能读到?

2. Flash扇区被配置成secure,是可以通过处于相同zone的代码读取flash扇区内容的;Flash扇区被配置成EXEONLY,不能读到实际内容。

    那么DCSM OTP区域的内容,是什么样的保护特性呢?