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.

[参考译文] TMS320F280041:DCSM OTP 是否已改用于用户数据? (序列号)

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031368/tms320f280041-dcsm-otp-repurposed-for-user-data-serial-number

器件型号:TMS320F280041

DCSM 中的链接指针指向每个区域 OTP 的0x200字区域中的单个0x10字区域。  如果 我们要将区域2链接指针设置为全0来选择最后一个区域、并且将0设置为输出(0x783F0-0x783FF)、那么我们是否可以将 DCSM 区域2的大部分区域(例如0x78220-0x783EF)用于用户数据?

实际上、在我看来、您可以使用两个区域并在0x78020-0x781EF 和0x78220-0x783EF 上具有用户 OTP 数据、将两个 DCSM 区域的链接指针编程到所有0以使用0x781F0和0x783F0获取 DCSM 组信息、并将0x783F0-0x783FF 置为0以禁用区域2。  这听起来是否可行?

我们的 DCSM 配置是仅使用区域1并将所有内容锁定 为安全、无 JTAG 等(不是只执行、对那个来说不够勇敢)... 我们实际上不需要任何其他配置。

我们在校准数据库中使用0x730CC 处的唯一 ID、但面向用户的序列号是一个简单得多的值(如418等)。  我们希望使用未使用的 OTP 区域来存储此版本的序列号和其他信息。

这一点尤其重要、因为 CCS 倾向于完全重置"仅对必要扇区进行编程"的选项并擦除整个用户闪存区域。  如果通信有问题、我认为这是某种回退。。 我们在开发我们的引导加载程序时经常遇到这种情况、但在此之前并没有发生过这种情况。  它会定期擦除我们的序列号、因此我们正在寻找一个更永久的位置。

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

    (笑声) 此外、为了说明...  表3-16中的技术参考没有显示"00"选项、并注意"用户绝不应在这些字段中编程任何其他值。 如果 RAM 块/闪存扇区发生任何这些情况的故障、将使 RAM 块/闪存扇区无法访问。" (笑声) 但是、由 DCSM 安全工具生成的 dcsm.asm 代码会创建一个段(注释掉)、该段将所有后续的 DCSM 区域清零、并显示"对于代码安全操作、在开发完成后、在生产之前、 所有其它区域选择块位置应该被设定为0x0000以实现最大安全性。 "

    如果 DCSM 区域2的当前链接区域未被使用、是否可以安全地将其编程为00s?

    我们完全不清楚如果 DCSM 区域1和 DCSM 区域2标记相同的扇区安全会发生什么情况。  是否需要解锁两个区域才能使用它?  (笑声) 还是解锁2个 DCSM 区域中的一个区域?  好的、因此重新读取表3-16周围的部分似乎是说即使在未使用的区域2上00s 也是坏的。  )  

    因此、使用区域1未使用的 OTP 块的一个问题是、在能够读取它们之前需要将其解锁。  所以... 如果区域2被配置为最后一个链接指针位置、并且所有的 GRABRAM/GRABSECT 位被设定为"10"、并且由用户应用程序解锁并保持解锁... 它能否安全地读取区域2的 OTP 数据而不产生任何风险?

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

    尊敬的 Darron:

    [引用 userid="51282" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031368/tms320f280041-dcsm-otp-repurposed-for-user-data-serial-number 命令]SO、DCSM 中的链接指针指向每个区域 OTP 的0x200字区域中的单个0x10字区域。  如果 我们将区域2链接指针设置为全0来选择最后一个区域、并且将0设置为输出(0x783F0-0x783FF)、那么我们是否可以将 DCSM 区域2的大部分区域(例如0x78220-0x783EF)用于用户数据?[/QUERPLET]

    不可以、用户 OTP 仅用于安全设置、不能用于任何用户数据、因为在启用安全功能的情况下、CPU 无法读取该区域。

    [引用 userid="51282" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031368/tms320f280041-dcsm-otp-repurposed-for-user-data-serial-number/3812935 #3812935"]"用户绝不应在这些字段中编程任何其他值。 如果 RAM 块/闪存扇区发生任何这些情况的故障、则 RAM 块/闪存扇区将无法访问。"[/quot]

    这仅适用于活动区域选择块、其中值0x0用于非活动区域选择块。

    [引用 userid="51282" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031368/tms320f280041-dcsm-otp-repurposed-for-user-data-serial-number/3812935 #3812935"]如果不使用 DCSM 区域2的当前链接区域,是否可以安全地将其编程为00s?

    还可以

    [引用 userid="51282" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031368/tms320f280041-dcsm-otp-repurposed-for-user-data-serial-number/3812935 #3812935"]如果您将 DCSM 区域1和 DCSM 区域2标记为同一安全扇区、我们完全不清楚会发生什么情况。  [/报价]

    这是不允许的。 表"RAM/Flash Status"提供了有效配置。 该表后面有一条注释、指出对表中提到的值以外的任何值进行编程都将使该存储器无法访问。

    希望这澄清了所有的问题。

    此致、

    Vivek Singh

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

    我在答复中增补了最后一段。   如果区域2不控制任何扇区、并将该区域用作用户数据区域、那么它是否安全?  那么就可以读取该数据、对吧?  我们将链接指针设置为0、仅使用最后一个区域、因此无法创建新的区域定义或更改现有区域、而不会使器件不可用。

    如果某个区域必须有要控制的内容、我们可以将配置扇区(闪存扇区15)标记为由区域2控制。  这目前标记为不安全。

    (笑声) 这是否会禁用 CPUSL 功能?  (笑声) 如果 DCSM 区域1或2解锁、是否将禁用 CPUSL?   (笑声)  不过、我不确定这是否是一个障碍。 不可以、当代码在锁定的 DCSM 区域1的安全区域中运行时、CPUSL 和 ECSL 似乎仍然工作。

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

    我认为这应该起作用、但我需要检查一下、然后再返回给您。 请注意、这些区域中的设置是为了安全起见、因此它们具有不同的属性。 例如、不允许从该区域执行。

    此致、

    Vivek Singh

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

    这正常工作。  我们的应用程序现在使用它来存储 OTP 序列号。  谢谢!