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.

[参考译文] RM46L852:F021_FLASH_API 在 ccsv6优化高于0时挂起

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/575380/rm46l852-f021_flash_api-hangs-with-ccsv6-optimization-above-0

器件型号:RM46L852

优化似乎与 BL_FLASH.c 中等待的 while 循环混乱

代码在优化关闭或处于0级时工作正常。 挂起的情况。 单步进入 BL_FLASH.c 中的代码对于优化的代码来说非常困惑、但 看起来两种编译器都不尊重硬件寄存器的"易失性"、或者寄存器未被正确声明为易失性。

我使用的闪存 API 为02_01_01、我使用的是 SafetyMCUBootloader 示例。 编译器为 TI v16.6.0.STS


问题很容易重现-首先验证程序是否在关闭优化的情况下工作。 然后将优化提升到0以上、它将在尝试擦除闪存时挂起。

它是否适合这里的任何人? 我应该设置一些编译器设置吗?

谢谢、Steve

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

    您好、Steve、

    引导加载程序仅在优化关闭时进行测试。 我将尝试优化。

    此致、

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

    您是否重复了此问题?

    Steve