仔細(xì)閱讀以下清單可以幫助您確保在開(kāi)發(fā)階段可以在不同的PC上生成相同的十六進(jìn)制或二進(jìn)制構(gòu)建輸出,或者由于舊項(xiàng)目的維護(hù)需求而可以重新生成。
- 使用相同的Arm編譯器工具鏈版本。使用相同版本的MDK可以輕松確保項(xiàng)目中使用相同的Arm 編譯器工具鏈。如果使用不同的MDK版本,請(qǐng)下載某個(gè)版本的Arm編譯器工具鏈并將其集成到MDK uVision中。
- 使用相同的編譯器和鏈接器命令行選項(xiàng)來(lái)構(gòu)建項(xiàng)目。在不使用?MDK uVision IDE的命令行中構(gòu)建項(xiàng)目時(shí),這一點(diǎn)尤其重要。
- 使用相同版本的軟件包。獲得顯示項(xiàng)目中使用的所有軟件包的詳細(xì)列表的方法,例如設(shè)備系列包?(DFP)、CMSIS、MDK中間件包等,是在uVision中打開(kāi)“管理運(yùn)行時(shí)環(huán)境”對(duì)話框并單擊“詳細(xì)信息”,如以下屏幕截圖所示。將在包含此類列表的同一項(xiàng)目文件夾中生成Packs_*.htm文件。對(duì)于缺少此“詳細(xì)信息”按鈕的舊MDK uVision v5.x版本,打開(kāi)構(gòu)建日志文件還可以為您提供項(xiàng)目中使用的所有軟件包的詳細(xì)列表。

為了確保在項(xiàng)目中使用特定版本的軟件包,建議在選擇軟件包對(duì)話框中禁用默認(rèn)選項(xiàng)“使用所有已安裝軟件包的最新版本”,如下圖所示:

- 如果使用MDK uVision構(gòu)建項(xiàng)目,請(qǐng)確保uVision的Project窗口中列出的所有源代碼在不同的PC上具有相同的順序。項(xiàng)目的所有源代碼都按照項(xiàng)目窗口中顯示的該項(xiàng)目樹(shù)的順序編譯,然后通過(guò)armlink以相同的順序鏈接。如果編譯的模塊通過(guò)armlink以不同的順序鏈接,可能會(huì)導(dǎo)致不同的十六進(jìn)制或二進(jìn)制構(gòu)建輸出。在項(xiàng)目對(duì)象輸出文件夾中檢查和比較uVision生成的*.lnp Linker Input File,也可以確保編譯后的模塊通過(guò)armlink以相同的順序鏈接。
- 避免在源代碼中使用時(shí)間戳、系統(tǒng)環(huán)境變量、編譯器宏(例如__DATE__或__FILE__)等,這些在不同的PC上可能會(huì)有所不同。