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.

[参考译文] MSPM0G3519:MCAL_MSPM0_00.02.04.00

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1490092/mspm0g3519-mcal_mspm0_00-02-04-00

器件型号:MSPM0G3519

工具与软件:

团队成员、您好!

我在工程中使用 MCAL_MSPM0_00.02.04.00。 我尝试了 MCAL 软件包中的示例(DIO)。  

我曾尝试使用-O2编译器标志、在这种情况下、我发现以下观察结果:  

-这部分代码已经过优化,  

-因为代码直接进入下面的部分,它不断地在那里执行。

当我尝试使用-O0 编译器标志时、发现以下观察结果:  

-代码未按预期优化,代码正在执行所需序列。 但可能是由于当代码达到以下行时、与 SYSPLL 相关的设置不正确、它会跳转到复位处理程序。

我想了解使用-O2或更高级别的 优化、什么会影响性能和调试?

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

    您好、 

    感谢您的反馈,从我的经验,下面的 IF 将 得到 优化在第一行 while (1)在-O2

    while(1) {
        if(i == 0) {
            i = 100;
        }
        i--;
    }

    为了解决这个问题,我需要在 while (1)的第一行添加一个_NOP ();

    while(1) {
        __NOP();
        if(i == 0) {
            i = 100;
        }
        i--;
    }

    如果这样可以解决您的问题、则这将是编译器问题。

    请帮助我检查此内容。

    此致、

    Helic

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

    你好、Helic、

    如果我在特定行中使用-O2选项添加__NOP、是的、这不会优化代码、如下图所示:

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

    您好、 

    太棒了!

    同时、我会将这些信息提供给内部团队以解决此问题。

    请注意未来的编译器或 MCAL 更新。

    感谢您的反馈!

    此致、

    Helic

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

    你好、Helic、

    感谢您的响应。  

    上述所有问题均在内部 MCAL 版本中得到解决。

    非常感谢!

    此致、

    Rohidas