Thread 中讨论的其他器件: SYSBIOS
我使用以下代码: Tiva TM4C1294NCPDT CPU、 CCS 6.1.2使用、 TIRTOS 2.16.0.08、 编译器5.2.7和 XDC 3.31.1333
当我执行调试编译 时、我有一个工程可以正常运行且稳定、但当我编译和运行发布编译时、我会遇到崩溃。 我仔细查看 了版本和调试版本之间的差异、发现除了优化之外、一切都是相同的。
我得到的崩溃是: "ti.sysbios.KNL.Task: line 373: e_stackOverflow: task 0x2001cd88 stack overflow."。
看到此错误后、我验证了版本和调试构建之间的堆栈大小相同。 我验证的设置是:Project->Properties->Arm Linker->Basic Options->Set C system stack size (项目->属性-> Arm 链接器->基本选项->设置 C 系统堆栈大小)。 此字段在版本 和调试版本之间是相同的。
如果我将发布版本更改为无优化、它运行正常。 如果我将调试编译更改为"2 Global Optimization (2全局优化)"、我也会遇到崩溃、因此优化 "2 Global Optimization (2全局优化)"会导致 ti.sysbios.KNL.Task:第373行:e_stackOverflow: Task 0x2001cd88 stack overflow crash (e_stackOverflow:任务0x2001cd88栈溢出崩溃)。
我如何确定根本原因并解决此问题? 我假设我希望版本 构建能够运行 2个全局优化。
谢谢、
道格