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.

[参考译文] TMS320F28378S:启用 DCSM 后、不能访问闪存组1

Guru**** 2404975 points
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1343053/tms320f28378s-after-enabling-dcsm-no-access-to-flash-bank-1

器件型号:TMS320F28378S
主题中讨论的其他器件:SysConfigC2000WARE

在启用 DCSM 将所有 RAM 和闪存专用于 Z1后、我无法访问闪存组1。 以下是我使用的配置:

.sect "dcsm_zsel_z1"
      .retain
      .long 0x000000FF       ;Z1-EXEONLYRAM
      .long 0x00003FFF      ;Z1-EXEONLYSECT
      .long 0x10005555          ;Z1-GRABRAM
      .long 0x15555555         ;Z1-GRABSECT

整个银行1是否应低于 Z1? 我不能从调试器读取(例如0x0C0000)或直接从代码读取。 我缺少什么吗? 没有 DCSM、一切都会正常运行。

在 dcsm_security_tool 示例中、根本无法配置闪存组1! 如果使用该示例、则闪存组1访问将设置为0 = 无效。 闪存组1无法访问。

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

    Z1-EXEONLYSECT 的值为 0x00003FFF。 这意味着位14 (EXEONLY_BANK1)为0。 来自 TRM 的下方:

    0:对闪存组1启用仅执行保护(仅当它分配给 ZONE1时)

    这可能是您无法访问的原因。

    [报价 userid="51904" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1343053/tms320f28378s-after-enabling-dcsm-no-access-to-flash-bank-1 ]整个银行1是否应低于 Z1? [/报价]

    根据您的 GRABSECT 值、它确实应该被分配给 Z1。

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

    您解锁 Z1了吗?

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

    谢谢、我错过了该位、现在我可以从软件读取组1。 我仍然无法使用调试器读取组1、但组0是。 为什么有什么想法? 所有闪存都位于 Z1中、当我可以读取存储体0时、闪存必须解锁、那么为什么仍然无法从调试器访问存储体1呢?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,我漏掉了那个位,现在我可以从软件中读取银行1了。 [/报价]

    假设您指的是 位14 (EXEONLY_BANK1)。

    现在我可以从软件读取银行1。 我仍然无法使用调试器读取组1、

    我现在在研究这个。

    在另一个注意事项上、您是否尝试向 Zone0分配任何存储器?  

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

    使用 Zone0意味着不安全? 不,我想让所有的人都在同一个安全区内。

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

    了解您只想将所有存储器分配给 Z1。 我只是想知道您是否简单地尝试了将任何内存分配给 Z2。 也就是说、不是为了使用该配置、而只是尝试在 Z1和 Z2之间共享存储器。 您可以发送 SysConfig 文件吗?

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

    我没有尝试使用 Z2。 我没有 SysConfig 文件。 我在 dcsm_security_tool 示例的帮助下生成了 asm 和 cmd。 该示例的唯一问题是、您根本无法分配 Bank1。 这就是为什么我一开始也把位错了。 我已经附加了我的 asm 和 cmd 文件。

    e2e.ti.com/.../dcsm.zip

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

    我会看看您的.asm 和.cmd 文件、但请查看以下命令是否有帮助:

    这个器件中有两个存储体、闪存存储体0和闪存存储体1。 每个组包含14个扇区、组0 (扇区0至13)和组1 (扇区14至27)。 可以分别使用 Z1_GRABSECTR 寄存器或 Z2_GRABSECTR 寄存器、选择性地将组0中的扇区分配给 ZONE1或区域2。 但是、组1中的扇区只能"作为一个整体"分配给 Zone1或 Zone2。 这是使用 Z1_GRABSECTR 寄存器或 Z2_GRABSECTR 寄存器中的 GRIP_BANK1位字段来完成的。 请注意、在 Zx_GRABSECTR 寄存器中、组0的扇区0到13被标记为 A 到 N。

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

    您好、JHi:

    SysConfig 工具中存在一个错误、阻止配置组1安全设置。 这将在 C2000Ware 5.03中进行更新

    谢谢!

    卢克

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

    JHi:

        我想您没有其他问题、我将结束此主题。 BTW、我们曾在器件上尝试过您的设置、而且能够使用调试器访问 Bank1、不会出现任何问题。  

    e2e.ti.com/.../dcsm.asme2e.ti.com/.../dcsm.cmd