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.
工具与软件:
您好!
当我调试 MSPM0L1305时、 在 CCS12.5.0中、我发现当"Select optimization paradome/Level (-O)"为1时、程序失控。 但当我将 "选择优化范式/级别(-O)"设置 为空时、它可以正常运行。
我打开调试窗口查看 memroy 浏览器、我发现堆栈 RAM 数据在 "Select optimization paradome/Levle (-O)"= 1中是异常的、堆栈 RAM 数据在 "Select optimization paradome/Levle (-O)"= null 中是正确的。
我将 STACK_SIZE 的大小从256调整到512、这样也就失控了。 并将 STACK_SIZE 的大小从512调整到1024、就可以了。 但实际使用的堆栈大小约为200字节。
所以我想知道为什么当"选择优化范式/Levle (-O)"= 1时程序会失控?
您好、Lihang、
不同的优化级别将在编译期间产生不同程度和类型的代码优化。 级别1对您的代码进行了错误的优化。 我认为这可以帮助您了解不同优化级别的差异、并帮助您检查它是否会导致运行错误。 请了解此资源并检查您是否需要对代码进行一些修改。
此致、
Janz Bai
或者、优化器中有一个错误并非无人知晓。
如果可以、将您的代码放置到一个显示此行为的小示例、然后将其发布在此处。 通常在分解的过程中,你会发现你把它放在那里的错误。
Keith、您好!
很抱歉、我忘记向您发送有关 CCS 优化级别的资源、您可以参考此内容。
事实上、对于一个程序、并非所有编译器优化方法都适合它、尤其是对于一些非常简单的程序。 您可以检查不同优化级别的差异、并选择适合您的优化级别。 事实上、 您的程序运行不正确、这可能不是由于编译器错误所致、您选择的优化方法很可能不适合您的简单程序。
此致、
Janz Bai