CH32V307/FreeRTOS/LED測試程序,gcc12編譯器,開到O3和LTO后出現(xiàn)HardFault

調了一天了找不到解決辦法,麻煩幫忙看看

icon_rar.gifFreeRTOS_HardFault.zip


把“WCH-Interrupt-fast”去掉似乎就好了,但治標不治本...


您好,lto選項會將所有代碼生成特殊段,在鏈接時統(tǒng)一優(yōu)化,底層運行庫目前是沒有的,可能會引起錯誤,非必要,不建議開啟lto選項。


lto選項會大大降低代碼尺寸,我的項目都是默認打開的


我沒細看。但如果是 WCH-Interrupt-fast 的話,會不會是中斷沒配置好?

中斷嵌套8級,但硬件堆棧只有3層。


> lto選項會大大降低代碼尺寸,我的項目都是默認打開的

哈哈,我也是。-Os -flto



出問題程序里面只是在FreeRTOS例程的基礎上加了個基本的主任務和LED閃爍,整個程序里面的中斷也只有FreeRTOS例程里的3個中斷,正常情況下會觸發(fā)的只有Systick這一個,應該不是中斷嵌套層次的問題。

我懷疑是任務切換中那堆匯編代碼涉及到快速中斷部分的問題,我對這塊確實不太熟,希望官方開發(fā)人員可以花點時間處理一下這個問題。

-----------------------------------------

對于代碼封裝層次比較多的項目,開LTO后無論是執(zhí)行效率還是代碼尺寸都會有非常大的優(yōu)化,所以我還是傾向于打開LTO。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频