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.

[参考译文] CCS/TMS320F28377D:DCSM 编程查询

Guru**** 2546940 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/623003/ccs-tms320f28377d-dcsm-programming-query

器件型号:TMS320F28377D

工具/软件:Code Composer Studio

您好,

我使用的是 Code Composer 版本6.1.3.00034。

我能够使用 code composer on-Chip flash 来锁定和解锁区域1中的密码。 我现在尝试通过使用 blinky_dcsm_xpu01.c 示例执行相同的操作。  

首先,您能告诉我 F2837xD_sysctrl.c 中的 CsmUnlock()用于什么?   将其放入 GEL 文件中, 以便处理器在 CCS 连接时自动解锁。 如果是,其目的是什么?

OnReset (int nErrorCode)
{
unlock_csm (); 




第二,如果我没有使用自动解锁,
我是否需要以下代码来执行 PWL 寄存器的虚拟读取并将128位密码写入 CSMKEY 寄存器?

void DcsmZ1Unlock (void)
{
volatile long int * csm =(volatile long int *) 0x5F010;//csm 寄存器文件
volatile long int * CSMPWL =(volatile long int *) 0x78028;//CSM 密码位置(假设是默认的区域 SEL 块)
volatile int tmp;
int i;
//读取 CSM 密码位置(PWL)的128位
//
对于(i=0;i<4;i++) tmp =* CSMPWL++;
//如果密码地址(CSMPWL)都为1 (0xFFFF),
//然后区域将不安全。 如果是密码
//不是全1 (0xFFFF)、则需要以下代码
//取消 CSM 的安全保护。
//将128位密码写入 CSMKEY 寄存器
//如果此密码与中存储的密码匹配
// CSLPWL,则 CSM 将变得不安全。 如果没有
//匹配,则区域将保持安全。
//示例密码为:
//使用0x111122223344455556677778888。
*CSM++= DcsmZ1Regs.Z1_CSMKEY0;//0x221111;//寄存器 Z1_CSMKEY0位于0x5F010
*CSM++= DcsmZ1Regs.Z1_CSMKEY1;//0x4443333;//在0x5F012处注册 Z1_CSMKEY1
*CSM++= DcsmZ1Regs.Z1_CSMKEY2;//0x66665555;//在0x5F014处注册 Z1_CSMKEY2
*CSM++= DcsmZ1Regs.Z1_CSMKEY3;//0x887777;//寄存器 Z1_CSMKEY3位于0x5F016
} 

如果是,我将此代码放在哪里并从 哪里调用此函数? 我是将其放置在 blink_with _dcsm_cpu01.c 中还是放置在 GEL 文件中?

如果我将其放入 GEL 文件,则 GEL 文件将失败。  

GEL 文件是否具有 DcsmZ1Unlock()而不是 Unlock_csm() ,如下所示:

OnReset (int nErrorCode)
{ 
DcsmZ1Unlock();
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Anish:

    很抱歉、由于某种原因、此帖子长时间未得到解答。 只是想检查您是否仍然存在此问题或是否已解决?

    Vivek Singh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Vivek,
    我仍然不明白如何使用它。 如果你能帮助我理解它,那就太棒了。