顶层处理程序函数支持6种情况。 一种情况是进入包含简单 while (1){}陷阱的特定处理程序例程。 经过优化、这个特定的处理程序被代码省略、而顶层 switch 语句同样省略了 case 条件。
在构建简化的测试方案时、我展示了其他5个处理程序例程、在某些情况下、所有特定的处理程序都在启用优化的情况下从最终构建中省略。 如果不进行优化、则在该测试场景中会执行所有情况、同时 while (1)陷阱按预期运行。
优化级别2 -全局和速度/大小2。 但是、除优化关闭之外的所有第一级设置都会导致问题。 未使用高级优化设置。
对此观察结果的建议回答是什么? 当前编译器的任何可产生预期结果的设置? 更新的编译器版本是否会产生预期结果?
请提供对这种在启用优化的情况下的预期行为的引用。 此行为正在改变自然代码的性质并提供不可预测的功能。
编译器:
TI v18.12.4.LTS
TI-CGT-ARM_18.12.4.LTS