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.

[参考译文] TMS320F28054F-Q1:28054F_如何应用 DCSM

Guru**** 2860250 points

Other Parts Discussed in Thread: TMS320F28054F, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1630785/tms320f28054f-q1-28054f_how-to-apply-dcsm

器件型号: TMS320F28054F-Q1
Thread 中讨论的其他器件: TMS320F28054FUNIFLASH

尊敬的专家:

我正在将 TMS320F28054F 与 InstaSpin 搭配使用。

 -用户应用程序位于区域 1 (Z1)
 - InstaSpin 工程已在链接器命令文件 (.cmd) 中包含 Z1 DCSM 相关段

我尝试了以下操作:

 -添加了一个自定义 DCSM .asm 文件来对 Z1 密码进行编程
 -构建成功完成
 -然而,编程失败(通过 CCS/FLASH 工具)
 -如果我删除.asm 文件,下载工作正常

用于比较:

 -在 TMS320F280040C 上、使用 dcsm.cmd + dcsm.asm 工作正常并且应用了 DCSM

我的问题:

 1. InstaSpin 是否在内部使用或保留 Z1 DCSM (OTP)?
 2.是否可以在 InstaSpin 的基础上应用 Z1 密码保护,同时保留 Z1 中的用户代码?
 3.还是在将 DCSM 与 InstaSpin 配合使用时必须将用户应用程序移至 Z2?

如果需要、我可以共享错误日志。

谢谢。

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

    您好:

    抱歉、我离开办公室直至星期四 (3/2)。 请等待回复。  

    此致、
    马特

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

    您好:

    我不知道 DCSM 与 InstaSpin 有任何限制。  

    您是否可以共享错误日志以用于其他上下文?  

    - InstaSpin 工程已在链接器命令文件 (.cmd)
    中包含 Z1 DCSM 相关段

    您是否可以尝试删除这些内容并仅使用 dcsm.cmd 段?

    此致、
    马特

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

    我的工程中的 DCSM 设置如下所示

    .cmd
    Z1_SCC_ROM       : origin = 0x3F8000、长度= 0x000400
    Z1_SECURE_ROM:   origin = 0x3F8808、长度= 0x0044F8
    dcsm_OTP_Z1_P0  :origin = 0x3D7A00、长度= 0x000006
    dcsm_ZSEL_Z1_P0  :origin = 0x3D7A10、长度= 0x000010
    Z1_DCA_RSVD     : origin = 0x3D7A20、长度= 0x0001E0

    .asm
    enableCSM_Z1 .set 1;0-禁用 CSM、1-启用 CSM

    .sect “dcsm_OTP_Z1"</s>“
    .retain
    .long 0xFFFFFFFF   ;Z1-LINKPOINTER
    .long 0xFFFFFFFF   ;OTPSECLOCK
    .long 0xFFFFFFFF   ;引导模式

    .sect “dcsm_zsel_Z1"</s>“
    .retain
    .long 0xFFFFFFFF   ;Z1-EXEONLYRAM
    .long 0xFFFFFFFF   ;Z1-EXEONLYSECT
    .long 0xFFFFFFFF   ;Z1-GRABRAM
    .long 0xFFFFFFFF   ;Z1-GRABSECT

    .if enableCSM_Z1    ;enableCSM_Z1=1
    .long 0x12345678    ;Z1-CSMPSWD0 (128 位密码的 LSW)
    .long 0x12345678    ;Z1-CSMPSWD1
    .long 0x12345678    ;Z1-CSMPSWD2
    .long 0x87654321    ;Z1-CSMPSWD3 (128 位密码的 MSW)
    .else
    .long 0xFFFFFFFF   ;Z1-CSMPSWD0 (128 位密码的 LSW)
    .long 0xFFFFFFFF   ;Z1-CSMPSWD1
    .long 0xFFFFFFFF   ;Z1-CSMPSWD2
    .long 0xFFFFFFFF   ;Z1-CSMPSWD3 (128 位密码的 MSW)
    .endif

    .if enableCSM_Z1    ;enableCSM_Z1=1
    .sect “dcsm_rsvd_Z1"</s>“
    .retain
    .loop (1e0h)
    .int 0x0000
    .endloop
    .endif

    使用此设置进行编译时会成功、调试下载时会发生以下错误

    C28xx:GEL 输出:
    区域 1 是安全的。
    C28xx:GEL 输出:
    区域 1 是安全的。
    C28xx:GEL 输出:
    区域 1 是安全的。
    C28xx:GEL 输出:
    区域 1 是安全的。
    C28xx:闪存编程器:写入闪存时遇到错误
    C28xx:文件加载器:内存写入失败:未知错误
    C28xx:GEL:文件:C:\TI\28054F_CV_221213\sw\solutions\instaspin_foc\boards\DOOWON_rev1p1\f28x\f2805xF\projects\ccs5\DOOWON\Flash\Doowon.out:加载失败。

    我发现一个与我的问题类似的问题、也请检查以下链接。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/585215/ccs-tms320f28054f-how-to-secure-this-device-with-the-original-otp-contents-all-0s/2150039?tisearch=e2e-sitesearch&keymatch=28054f%2520z1#

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

    您好:

    对不起,今天是一个假期在美国。 请在星期一上继续获得帮助。

    此致、
    马特

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

    您好:

    [引述 userid=“691894" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1630785/tms320f28054f-q1-28054f_how-to-apply-dcsm  3.还是在将 DCSM 与 InstaSpin 搭配使用时必须将用户应用程序移至 Z2?

    我误解了 F2805xM/F 器件的历史记录。 以上是情况。

    所有 F2805xF 器件上的区域 1 (+RAML0) 在出厂时由 TI 进行预保护 一个示例文档 。  

    您必须使用 Zone 2 来保护您的应用程序代码。  允许在区域 1 和区域 2 之间进行函数调用、因此应该能够使用区域 2 安全性。 请确认 这两个区域之间没有数据传输、因为这将不起作用。

    有关详细信息、请参阅以下主题:

    此致、
    马特

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

    您好、
    我目前正在 TMS320F28054F 上测试 DCSM 区域 2 安全性、并想分享测试结果并提出问题。
    配置:

    -闪存扇区 C、D、E、F 通过 GRABSECT 分配给区域 2
    -所有其他 DCSM 设置(EXEONLY、GRABRAM 等)保留为默认值(未修改)

    测试结果:

    1.按预期阻止通过 UniFlash 进行连接
    2.通过 CCS Target Configuration 连接成功
    连接 CCS 后、扇区 C、D、E、F 的存储器读取失败—返回 0x0000(符合安全区域的预期)
    4.执行 PMF(密码匹配流程)解锁第 2 区后,对扇区 C、D、E、F 的内存读取成功—正确的行为
    5.但是,即使在解锁区域 2 之前,也可以通过 CCS 对所有扇区(包括 C、D、E、F )进行闪存擦除

    问题:
    是否可以在 F28054F 上使用 DCSM 区域 2 安全机制阻止闪存擦除操作?
    在使用 TMS320F280040C 的不同电路板上、相同的区域 2 安全配置会成功阻止闪存擦除、直到通过 PMF 解锁区域。 这表明行为可能因器件代数而异。
    您能否阐明 F28054F(F2805x 系列)硬件是否支持通过 DCSM 阻断闪存擦除、或者这种保护是否仅适用于较新的器件(如 F28004x 系列)?
    谢谢你。

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

    您好:

    除非在 Z2 安全存储器中执行闪存 API 函数或 PMF 完成、否则这应该是不可能的。 让我看看

    资料来源: https://dev.ti.com/tirex/explore/node?node=A__ALkPsnNh-AX68CX3pn1u6A__c2000ware_gen2_module__1kRFgrO__LATEST

    来源: F2805x TRM

    此致、
    马特