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.

[参考译文] CCS/F28M35H52C:加载多个可执行文件导致失败

Guru**** 2390735 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/957297/ccs-f28m35h52c-loading-multiple-executable-causing-failure

器件型号:F28M35H52C

工具/软件:Code Composer Studio

我尝试将可执行文件1加载到闪存的一个扇区、然后将另一个可执行文件2加载到闪存的其余部分。  

这现在导致要放置可执行文件1的扇区被锁定。  

我在尝试对芯片重新编程时遇到的错误。  

我已经研究过安全功能、并非常确信我没有采取任何措施来触发这些功能。  

我已经尝试使用内存填充来"擦除"扇区、但它不会验证我提供的输入

将 GEL 文件更改为 R/W、因为尽管我以前没有遇到问题、但它仅设置为 R

我不确定导致这种情况的原因、并希望其他人可能会遇到此未知错误。 请提供任何帮助。  

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

    Steve、

    请检查您的映射文件以确保没有任何内容进入闪存扇区 A 和扇区 N 中的安全设置区域。 检查您是否修改了 GRABSECT 和/或其他安全设置。

    擦除该扇区意味着什么不会验证您提供的输入?  请清楚解释。   

    您更改了哪个 GEL 文件使其成为 R/W、以及 GEL 文件中的哪个条目?  请提供详细信息。  希望您使用的是最新的 CCS。

    谢谢、此致、
    Vamsi

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

    我没有检查映射文件、但链接器不应该在该空间中放置任何内容。 遗憾的是、我很可能无法准确地重新创建映射文件、因为我在最初的问题出现后进行了一些修改。 至于调试配置设置中的 GRABSECT 和其他安全选项、我没有对此进行任何修改。  

    这是指 CCS 中的存储器填充工具。 我试图用它来写入不再运行的扇区。 当我填入输入时、它请求它最初说存储器映射阻止了它的写入。 这让我看一下存储器映射、其中 M3闪存块显示为仅 R

    我转到 f28m35h52c1_m3.gel 文件并更改了此 LIN

      GEL_MapAddStr (0x200000、  0、0x80000、  "R"、  0);    /*闪存组1*/

    更改为  

      GEL_MapAddStr (0x200000、  0、0x80000、  "R|W"、  0);    /*闪存组1*/

    这解决了内存填充问题、但却给了我数据验证错误。  

    使用的 CCS 版本为6.2.0.00050  

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

    Steve、

    如果不映射文件,则可以直接检查内存窗口中的安全设置位置,并查看 zone1和 zone2的值编程到其中。  尽管您可能尚未在闪存插件 GUI 中进行任何更改、但有时应用中的任何未映射段可能会映射到此处。  请检查内存窗口、并告诉我为所有安全设置编程的值。

    关于 CCS 存储器窗口 GUI 存储器填充选项: 它不适用于闪存空间。   

    GEL 文件: 闪存空间标记为仅 R。  调试器无法写入它、因此标记为仅 R。  当在 CCS 中加载应用程序可执行文件(.out)时、如果存储器范围位于仅 R 区域、则 CCS 将自动调用闪存编程器以加载到该存储器范围。  因此、将闪存/ OTP 空间保留为 R 非常重要

    谢谢、此致、
    Vamsi   

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

    Vamsi、  

    我有机会将电路板与问题联系起来、并查看存储器部分  

    似乎 N 区已经改变。 这也是出现擦除问题的部分。 您是否说 CCS 将使用其认为合适的任何未映射链接器空间? 下面哪一项也是安全设置?

    这可以解决吗?

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

    Steven、

    可能是链接器在其中放置了某个段、或者您可能在其中放置了某个段(但您说您没有要检查的映射文件)。

    由于密码可见、您可以在 CCS 闪存插件 GUI 中输入该密码、然后解锁闪存并尝试擦除。

    请告诉我、如果这不起作用、我将请我们的安全专家进一步帮助您。

    谢谢、此致、
    Vamsi

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

    感谢 Vasmi 的帮助。  

    这解决了问题并解决了我的担忧。