把“WCH-Interrupt-fast”去掉似乎就好了,但治标不治本...
您好,lto选项会将所有代码生成特殊段,在链接时统一优化,底层运行库目前是没有的,可能会引起错误,非必要,不建议开启lto选项。
lto选项会大大降低代码尺寸,我的项目都是默认打开的
我没细看。但如果是 WCH-Interrupt-fast 的话,会不会是中断没配置好?
中断嵌套8级,但硬件堆栈只有3层。
> lto选项会大大降低代码尺寸,我的项目都是默认打开的
哈哈,我也是。-Os -flto
出问题程序里面只是在FreeRTOS例程的基础上加了个基本的主任务和LED闪烁,整个程序里面的中断也只有FreeRTOS例程里的3个中断,正常情况下会触发的只有Systick这一个,应该不是中断嵌套层次的问题。
我怀疑是任务切换中那堆汇编代码涉及到快速中断部分的问题,我对这块确实不太熟,希望官方开发人员可以花点时间处理一下这个问题。
-----------------------------------------
对于代码封装层次比较多的项目,开LTO后无论是执行效率还是代码尺寸都会有非常大的优化,所以我还是倾向于打开LTO。