CH32V編譯問(wèn)題

一個(gè)小程序,寫(xiě)爆了flash空間,通過(guò)測(cè)試,原因是這樣的:我有一個(gè)tool.c文件,里面有F1-F100,一共100個(gè)函數(shù),但在我的main里,我只使用了F1這1個(gè)函數(shù),但是在編譯過(guò)后,F(xiàn)2-F100也被編譯到flash空間中。。。。。我記得在以前用過(guò)的IDE里編譯的時(shí)候,不管代碼里寫(xiě)了多少函數(shù),編譯的時(shí)候只會(huì)把程序運(yùn)行中使用到的函數(shù)編譯到flash里,未使用的函數(shù)不參加編譯。請(qǐng)問(wèn):在MRS里能實(shí)現(xiàn)這種效果嗎?能通過(guò)在那里設(shè)置一個(gè)編譯選項(xiàng)實(shí)現(xiàn)嗎?如果不能實(shí)現(xiàn)的話,只能在每個(gè)APP工程里再弄一個(gè)配置,決定那些函數(shù)參加編譯,還要在tool.c里的每個(gè)函數(shù)上都加上條件編譯,那就太費(fèi)勁了。。。

圖片中的三個(gè)選項(xiàng)會(huì)將函數(shù)和數(shù)據(jù)分成不同的section,鏈接時(shí)會(huì)刪除沒(méi)有調(diào)用的section。默認(rèn)都是開(kāi)啟的。

image.png


image.png

這個(gè)是LD文件里的內(nèi)容,您所說(shuō)的section指的是這個(gè)么?我不太明白,如果把您說(shuō)的選項(xiàng)選中后,編譯后是每一個(gè)函數(shù)會(huì)占一個(gè)section還是所有的函數(shù)都是一個(gè)section中,或是某些函數(shù)在一個(gè)section中,而其它函數(shù)又在另一個(gè)section中?如果并不是每一個(gè)函數(shù)占一個(gè)section,那么不還是會(huì)造成沒(méi)有使用過(guò)的函數(shù)也會(huì)被編譯到flash里的情況嗎?


跟 linker script 沒(méi)關(guān)系的,是編譯和鏈接的參數(shù)。


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

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