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.

[参考译文] LAUNCHXL-F280049C:将 GRABSECT 设置为 0x55557 会导致 OTP 无法访问

Guru**** 2616675 points

Other Parts Discussed in Thread: TMS320F280049C, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1581780/launchxl-f280049c-setting-grabsect-to-0x5555557-caused-otp-inaccessible

器件型号: LAUNCHXL-F280049C
主题中讨论的其他器件: TMS320F280049CUNIFLASH

您好、

 

您好、

我们有一个奇怪的问题。

我们知道如何通过将 TMS320F280049C 编程到 OTP 来使用密码锁定 TMS320F280049C。

之前、我们用于将所有闪存扇区和安全 RAM 设置为区域 1、并使其由密码保护。

目前、 我们正在尝试将某些扇区排除在安全区之外。

我们更改了:

  • B0-Z1OTP-GRABSECT 至 0x55555557  
  • 将 Z1OTP-GRAMRAM 更改为 0x00005555

我的主要问题是: 这是一个很好的设置吗?  

 

在那之后,我们看到了一些奇怪的影响,它们似乎是暂时的。 例如、需要多次复位才能同步 DCSM 影子寄存器和 OTP 寄存器、尽管我们已直接解锁它。  

在此期间、如果我们使用 UNiFlash 解锁它、并尝试使用 UniFlash Memory Browser 在地址 0x78020 处以 16 个地址跨度查看存储器、左侧显示 0x0000、因为未解锁。

在玩这个游戏时、我们已经经历了几个板。

稍后我可能会对此有其他问题。

此致、

Vlad  

 

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

    我们改变了  0x55555557 至 0x55555556。 似乎在某种程度上发挥作用、但我们仍可能失踪。

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

    尊敬的 Vladimir

    很抱歉晚回复。  让我向您推荐 DCSM 专家。

    此致、

    Joseph

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

    谢谢 Joseph。

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

    尊敬的 Vladimir

    0x55555556 是正确的值。  0x55555557 将导致闪存扇区被“阻止“而不是不安全。 任何代码都无法访问被阻止的存储器、即使是从安全存储器运行的代码也是如此。

    您是否仍然注意到此配置的问题?

    谢谢您、

    Luke

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

    你好、Luke

    感谢您的答复。

    首先回答你的问题:不、现在我们看不到与以前相同的问题。

    但是、我们想知道我们的一些设计决策:    当执行闪存 API 调用的代码 从也分配给同一安全区域的 RAM 运行时、是否可以对属于安全 DCSM 区域的内部闪存进行编程或擦除?  

    我的理解是应该允许这样做—也就是说、即使这些区域被外部访问(如 JTAG 或不安全的 CPU 上下文)锁定、在安全区域内执行的代码也可以完全访问属于同一区域的闪存扇区和 RAM。

    为了确认这一点、我相信以下几点是正确的:

    1.在**Zone1-secureRAM**中运行的代码可擦除/编程**Zone1-secureFlash**、同样适用于 Zone2。
    2.在**不安全上下文**中执行的代码无法修改安全区域中的闪存。
    3.闪存 API 必须复制到与要修改的闪存属于同一区域的 RAM 并从该 RAM 执行。
    4、闪存泵必须由同一个 CPU 区域拥有,其他主设备不应使用它。
    5、擦除/编程过程中、ISR 和其他代码不得从闪存执行。
    6.“EXEONLY"扇“扇区将阻止从软件读取验证数据。
    7、区域被外部锁定(通过 DCSM 密码)这一事实并不*阻止已在该区域内执行的代码执行内部闪存操作。

    TI 能否确认 F280049C 器件系列的上述理解是正确的?

    非常感谢您对此提供的意见。

    此致、

    Vlad Pavlovic