0

我正在使用带有 ARM M0 平台的 2011 Q3 ARM GCC 编译器。在我当前的应用程序中,如果我不使用优化(使用 -O0 编译),我的代码太大并且不适合。如果我使用任何优化(-O1、-O2、-O3、-Os),则 SWITCH CASE 语句不起作用。我已经验证了这个块内的代码没有被执行,因为简单的 GPIO 切换操作没有通过。

我在某处读到 -O1 及更高版本的任何优化都会出现 goto 代码问题。但是,我无法在任何地方找到解决此问题的方法。

我也尝试使用最新的 GCC ARM 编译器,但我的工具与此版本不兼容。

感谢您对此事的任何帮助!

4

1 回答 1

0

尝试像这样拆分您的源代码:您不想优化的代码(例如,访问 GPIO 等内存映射区域)和其余部分。

用不同的优化级别编译每个源文件后,您将获得一个带有“脆弱”代码的工作版本。

然后,当您调试代码时,您将使用对象 (.o) 文件并编译其余部分。

于 2016-01-04T00:37:40.360 回答