MounRiver Studio 沒有調(diào)用的代碼也編譯,生成到HEX文件里了嗎?

如題。我把沒調(diào)用的函數(shù)屏蔽了,生成的HEX文件就小了,難道沒用的函數(shù)也編譯到HEX文件里了???

如果是這樣的話,能不能設(shè)置,只有調(diào)用的才編譯?

編譯設(shè)置里把針對尺寸優(yōu)化開起來。(-Os)。image.png


剛試了,一樣的


您好,正常的設(shè)置中鏈接時會刪除未調(diào)用的段。每個函數(shù)都會有自己的section名字,你屏蔽掉的函數(shù)是否修改過,具體詳細(xì)的使用方法請發(fā)送郵件到y(tǒng)angy@wch.cn


看代碼大小,是看最后生成的HEX文件 還是看編譯信息

1700123634988.png


減小代碼體積的一些提示:

1)優(yōu)化里面使用-Os體積優(yōu)化

2)使能-flto,啟用鏈接時優(yōu)化,注意GCC8的這個功能有bug,需要使用GCC12

3)GNU?RISC-V?Cross?C?Linker里面選上Remove?unused?sections --Xlinker --gc-sections和Use?newlib-nano --specs=nano.specs和Do not use syscalls --specs=nosys.specs


樓上是大神, CH32V003大約8000行的代碼編譯后由原來13k 設(shè)置后壓縮到12k!?

提示: 改變設(shè)置后需要Clean才會使用改變后的參數(shù).


使能-flto ... 這個還是不要隨便開, 體積是減小了, 但是程序運(yùn)行異常, 改回來就可以了.?


題外話, 最新版的MRV對GCC12應(yīng)該是做了優(yōu)化的, 編譯后的體積比GCC8還要小一些, 但是上一個版本正好相反:用GCC12編譯后的體積比GCC8大10%.?


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

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