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.

[参考译文] TMS320F28377S:使用 dcsm_security_tool 的 DCSM 模块的 DFU

Guru**** 2322270 points
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1512886/tms320f28377s-dfu-of-dcsm-module-using-dcsm_security_tool

器件型号:TMS320F28377S
Thread 中讨论的其他器件:C2000WARESysConfig

工具/软件:Code Composer Studio、 dcsm_security_tool

我有两个问题、

Q 1)。 我正在 通过作为 F2837xS sci_flash_kernel 提供的 SCI 内核进行器件固件升级。 我成功地执行了正常 DFU 和接收 状态代码"no_command_error 0x1000 return on success"。 当它尝试对示例代码"dcsm_security_tool"生成的十六进制文件执行 DFU 时、DFU 将失败。 我会收到状态代码"PROGRAM_ERROR 0x4000在编程错误时返回"。 链接指针随我使用 "dcsm_security_tool"进行修改而更改。 但根本没有安全性。 相关的区域选择块中的数据全为0xFF。 使用 CCS 和相同的"dcsm_security_tool" 代码被烧录、并更新安全性。 而不是通过 SCI DFU 实现的。 我已经部署了一些系统、我必须在其中添加安全功能。 我只尝试了闪存安全。  

问题2)。   使用 CCS 示例"dcsm_security_tool"我无法执行"永久启用 PSWDLOCK "我收到该错误

C28xx_CPU1:闪存编程期间出现错误(闪存算法返回错误代码)。 FMSTAT (某些器件上为 STATCMD)值= 48。 操作已取消(0)。
C28xx_CPU1:文件加载程序:内存写入失败:未知错误
C28xx_CPU1:GEL:文件:e:\Firmwares\test_codes\dcsm_security_tool\cpu1_flash\dcsm_security_tool.out:加载失败。

所有块均已擦除、但加载时出错。 链路指针会更新(如 I set 所示)、所有内容都可以在 0x78000处看到。 而选择块上的数据为0xFF

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

    您好:

    1.您使用的是哪个版本的 C2000Ware?

    2.该错误表明已设置 VOLTSTAT 位,该位在编程时电压下降后触发。 您能否确认  编程期间电压是否在数据表指定的范围内?

    3.你能检查 OTP 的 ECC 区域吗? 它也是空白的吗? 数据表中也定义了这些范围。

    此致、

    Alex

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

    C2000Ware 5.2.0.00

    SysConfig 1.21.0

    2. 该错误指示已设置 VOLTSTAT 位、在编程期间电压下降后将触发。 您能否确认  编程期间电压处于数据表指定的范围内?

    电压没有下降。 仅此 代码 会引发问题。 我认为误差是 INVDAT 和 Cstat 。 但 PSWDLOCK 为0xFF、而不是前一张图片中可见的0。  

    3. 您能否检查 OTP 的 ECC 区域? 它也是空白的吗? 数据表中也定义了这些范围。

     用户可配置的 DCSM OTP ECC 组0和 TI OTP ECC 也可见。

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

    您好:

    INVDAT 错误表示您正在尝试将0编程回1。 如果区域选择块为空白、则表示该区域的 ECC 已被编程、您正在尝试重新编程。 您能否确认链路指针设置正确?

    此致、

    Alex

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

    我可以对 LinkPointer 进行编程我的当前 LinkPointer 已达到0x1FFE0000、ZoneSelectBlock 为0x00078130。 可以在需要时更改链路指针。 但我无法对 PSWDLOCK 进行编程。 仅当我尝试启用 PSWDLOCK 时才会出现该错误。 帮助我解决这个问题。

    注意:最初进行编程时 、我在区域1标头中选中了"Configure this Section"框、并设置"Disable PSWDLOCK"。

    以上涉及问题2。

    也请指导我完成问题1。

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

    尊敬的 Rana:

    错误消息是否专门指示 PSWDLOCK 地址导致编程错误? 您能否发送区域标头 OTP 值的快照?

    当您最初禁用 PSWDLOCK 时、与 PSWDLOCK 位置对应的 ECC 位置可能被编程为非默认值。

    谢谢您、

    Luke

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

    感谢 Luke 的协调

    错误消息是否专门指示 PSWDLOCK 地址导致编程错误? [/报价]

    不专门关于 PSWDLOCK、它会给出以下错误

    C28xx_CPU1:闪存编程期间出现错误(闪存算法返回错误代码)。 FMSTAT (某些器件上为 STATCMD)值= 48。 操作已取消(0)。
    C28xx_CPU1:文件加载程序:内存写入失败:未知错误
    C28xx_CPU1:GEL:文件:e:\Firmwares\test_codes\dcsm_security_tool\cpu1_flash\dcsm_security_tool.out:加载失败。

    您能否发送区域标头 OTP 值的快照?

    以下是整个区域

    当您最初禁用 PSWDLOCK 时、与 PSWDLOCK 位置对应的 ECC 位置可能被编程为非默认值。

     

    但我需要确定。 以下是 ECC 区域的屏幕截图

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

    我已经使用未编程器件检查了一侧的 OTP ECC、并查看所有 FS。 似乎 PSWDLOCK 的初始编程被禁用会阻止您稍后在同一器件上启用它。

    谢谢您、

    Luke

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

    我也观察到了这一点、但我想确认、通过选中"Configure this Section"复选框、所选设置将写入 OTP。