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.

[参考译文] TMS320F28386D:安全设置的片上闪存

Guru**** 2448780 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1382600/tms320f28386d-on-chip-flash-of-security-settings

器件型号:TMS320F28386D

工具与软件:

我尝试了将 CMACKEY0 (0x78018)(32位)从0xFFFFFFFF 修改为0xFFFFFFFE。

然后点击 PROGRAM 按钮、其显示为 FAILED、如下所示。

问题:为什么会发生这种情况?   

根据 OTP 的说明、每个位只能在1到0之间编程一次。

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

    TI 专家可以帮助解决这个问题吗?

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

    您好、W Z:

    我需要就此问题与安全专家进行沟通、但他们可能需要几天时间才能回复您、因为这是7月4日在美国度假。

    谢谢。此致、

    Charles

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

    您好、W Z:

    您能否检查存储器浏览器中的 CMACKEY 值以确认这些位置是否尚未编程?

    谢谢!

    Luke

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

    我使用 uniflash8.6读回这些值、它们都是 FFFFFF  

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

    您好、W Z:

    您能否检查以确保片上闪存工具中的"Reset target before flash programming operation"复选框处于未选中状态并且在尝试编程前已解锁该区域? 我怀疑区域正在被锁定、这会有效地将用户 OTP 中的所有位变为0并导致此错误。

    谢谢!

    Luke

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

    我想这可能是由 OTP ECC 引起的。 由于我挑选了一个新的板、DCSM OTP 存储器处于默认状态。 我只需将  CMACKEY0 (0x78018)(32位)从0xFFFFFFFF 更改为0xFFFFFFFE、即已成功编程。

    当 将   CMACKEY0 (0x78018)(32位)从0xFFFFFFFF 编程到0xFFFFFFFE 时、发生 I POST 问题的电路板出现故障。

    该板具有后台、在进行上述 CMACKEY0更改之前、已对以下部分进行了更改。

    引导引脚数和 BOOTDEF0。

      

    您能帮助分析 OTP ECC 机制吗、它会导致这个问题吗?

    如果是、以下说明应具有前提条件。

    每个位只能在1到0之间编程一次、也将受 OTP ECC 限制、OTP ECC 也只能在1到0之间编程一次。

    如果我这样做、每次都只需将 DCSM OTP 中的一位从1更改为0。

    由于 OTP ECC 限制、DCSM OTP 中的所有位都有机会从1编程为0。

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

    我尝试了此方法、将  CMACKEY0 (0x78018)(32位)从0xFFFFFFFE 更改为0xFFFFFFFC。

    它显示出失败。

    将 CMACKEY0 (0x78018)(32位)从0xFFFFFFFE 更 改为0xFFFFFFF8。

    也显示失败。

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

    您好、W Z:

    您是正确的、如果该存储器位置已使用所有 F 进行编程、它将对 ECC 位进行编程、并且限制您在将来对除所有 F 以外的任何值进行编程。

    我认为当前错误消息是正确的、因为它显示"检查以确保您正在编程的存储器位置尚未进行编程。" 这包括一个所有 FS 的程序。

    谢谢!

    Luke