對於初學者,我不是嵌入式工程師,但我在C開發了幾年。 我的問題是:當我在我的筆記本電腦上編譯我們的嵌入式軟件(基於contiki)之一的源代碼時,我獲得了不同於我們的分包商交付的文件大小(222Kb 236Kb)。我不知道爲什麼我有這種差異。 我想學習曲目。我使用相同的ARM EABI編譯器 - 我使用相同的生成文件 我已經安裝了與我們的分包商相同的編譯器ARM EABI,所以我認爲(也許是錯誤的),我的輸出已準備好嵌入。我錯了?編譯時丟失了千字節
想法?
對於初學者,我不是嵌入式工程師,但我在C開發了幾年。 我的問題是:當我在我的筆記本電腦上編譯我們的嵌入式軟件(基於contiki)之一的源代碼時,我獲得了不同於我們的分包商交付的文件大小(222Kb 236Kb)。我不知道爲什麼我有這種差異。 我想學習曲目。我使用相同的ARM EABI編譯器 - 我使用相同的生成文件 我已經安裝了與我們的分包商相同的編譯器ARM EABI,所以我認爲(也許是錯誤的),我的輸出已準備好嵌入。我錯了?編譯時丟失了千字節
想法?
這可能是下降到了一些東西,如:
隨着每一個編譯器\連接你總是可以找到部分這樣的地圖:
text data bss dec hex filename
0x1408 0x18 0x81c 7228 1c3c size.elf
比較這些部分逐一進行兩個建築環境,以縮小調查的主題。
也許你應該要求你的分包商提供地圖文件,並將地圖文件與你身邊的地圖文件進行比較。
如果您使用的是GCC,請將-Wl,-Map=the_map.map
添加到LFLAGS。
P.S.更重要的是,確保你有相同的配置。例如,如果您的分包商執行了「發佈」構建,那麼您應該與自己的「發佈」構建進行比較。
你正在比較哪些文件格式? –
我比較.hex文件 – user3789470