riscv-none-embed-gcc開啟Link Time Optimazation(-flto)后的問題

startup_CH32Vxxx.S 中的中斷聲明 .weak 全部失效了。

那意味著,我自己寫的、模板內(nèi)的NMI_Handler等,全部沒有了,全部轉(zhuǎn)跳到 startup 內(nèi) XXX_Handler: 1: j 1b 這邊了。

用的是最新版的套件Linux下1.3.0版 MRS Studio Community


目前的gcc 8.2.0使能-flto以后代碼即使編譯通過運行也有問題,等gcc更新吧。


我現(xiàn)在試下來,就是 weak 的問題,要不就是 _sbrk 被優(yōu)化掉了導(dǎo)致鏈接報錯。

后者可以通過添加 __attribute__((used)) 解決。

前者還沒找到合適的方法,只有在startup.S內(nèi)手動注釋掉我需要的中斷聲明。


你們還有沒有遇到其他問題?


-flto看上去能省不少空間,可是跑不起來啊。


使用xpack的risc-v gcc,10.2版。嗯 ,-flto 可以了。就是 __attribute__((interrupt("WCH-Interrupt-fast"))) 認不出來,然后某些擴展指令集優(yōu)化沒得了。

各有千秋吧。


我試過公版的gcc,10和12都試過,即使使能-flto以后也比WCH的8.2版本代碼大很多

gcc還把CSR相關(guān)指令放到擴展中了,和現(xiàn)在的MRS不兼容。


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

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