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.

[参考译文] F28M36P63C2:CSM锁定时闪存编程失败

Guru**** 2574265 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/642405/f28m36p63c2-flash-programming-failure-when-csm-is-locked

部件号:F28M36P63C2
主题:controlSUITE中讨论的其他部件

我正在尝试修改Concerto F28M36的闪存编程示例,使其在CSM锁定的情况下运行。 当我包括要编程到安全区域的闪存扇区时,清除成功,但编程失败,fmstat = 0x1010 (PGV和Cstat集)。

我从controlSUITE示例中开始,并做了以下修改:

  • 文本和斜面加载部分现在仅为扇区N (扇区N + M)
  • 修改了Z1_GRABRAM = 0xFFFFFFFE,因此C0 RAM位于安全区域1中
  • 修改Z1_GRABECT = 0xFFFFFD7,因此扇区K + L位于安全区域1中
  • 已将默认Z1 CSM密码更改为包含1和0的值

总之,所有运行的代码都在闪存扇区N或RAM C0中,这两个代码都属于安全区域1。 据我所知,这种方式应该能够对属于安全区域1的Flash进行编程,而无需解锁CSM,但这不起作用。

该示例尝试擦除扇区K和L,然后对它们进行编程,当我通过GRABECT将它们添加到安全区域1时,编程命令将生成fmstat=0x1010,当使用内存浏览器读取闪存区域时(通过片上闪存工具解锁后),所有内容都是0xFF。

我已经尝试减少PLL时钟,但仍然得到相同的结果,感谢任何帮助!

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

    我认为,即使是擦除也不起作用-由于闪存已处于擦除状态,因此该功能不会报告故障。

    (1)您是否可以尝试在SECZONEREQUEST寄存器中为SEM字段写入'01'值? 不要忘记写入密钥值。

    (2)您是否可以检查以确保Fapi_UserDefinedFunctions.c文件中的所有函数也从区域1 RAM执行?

    我们的安全专家现在不在。 如有需要,我会请他看看这一职位,以便作进一步分析。

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

    您好,Vamsi:

    我尝试在SECZONEREQUEST中设置SEM=01,它成功了! 感谢您的建议,尽管我应该注意,此注册表仅在F28M36 TRM的Flash部分中提及,但在CSM部分中没有提及,尽管它与CSM操作密切相关,就像我的情况一样, 当CSM锁定时,SEM=01/10的要求在寄存器说明的注释中找到。 最后,我在driverlib或处理器标题,driverlib手册或controlSUITE示例中找不到对SECZONEREQUEST的任何提及,更不用说它的功能了(这给人的错误印象是CSM锁定所需的只是确保代码从安全RAM运行)。

    所以,再次感谢你们,希望你们能更好地描述这一点,这样其他人就不会像我那样偶然发现它。

    Giannis

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

    Giannis,

    很高兴我能提供帮助。  我将在内部提交一个TT,以便将您的反馈传递给我们的安全文档团队。

    谢谢,此致,
    Vamsi

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

    您好,Vivek,

    很高兴我能提供帮助。 我认为在Flash Programming controlSUITE示例中也应该提到此详细信息,并且可能还会在HW_FLASH.c中添加一个函数来处理信号量的设置。

    此致,

    Giannis