[筆記] 漫談 ARM cross compiler 環境
在 Windows 環境下,如果要開發軟體,我們只需安裝微軟的 Visual Studio IDE,接著在這 IDE 編譯我們的程式就能在 x86 的環境下運行。由於 Visual Studio 編譯器是專為 x86/x64 晶片設計的,實際上它編譯出來的機器碼並不能放到 ARM 晶片上執行,所以我們需要找其他編譯器編譯出 ARM 能看得懂的機器碼。 機器碼 目前可編譯 ARM 晶片的編譯器以 GCC 為主,當然有些付費版的 IDE 也能編譯 ARM,如:KEIL 、IAR (有專人管理的編譯器), 不過都還是源自 ARM compiler 網站 ,從網站上取得編譯器的原始碼,經過編譯後產生一套能編譯 ARM 晶片的編譯器 (說的有點複雜 !!)。簡單說,最終目的是製造出一個 ARM 編譯工具,但是要先取得原料後,再自行製造出這個工具。所幸現在網上有不少開發環境都能提供這 ARM 編譯的工具了,不需要我們重頭開始打造工具。然而,這類工具大多在 Linux 的環境下,所以想編譯成 ARM 機器碼只能到 Linux 環境下? 在 Windows 環境下,如果也想要 Linux 的環境,需要在 Win 系統安裝類 Unix 環境的軟體,如:cygwin 、MSYS2 、MinGW...等。底下以 MSYS2 軟體為例,其實它就是一個在 Win 系統的命令列,但是和 Win 系統提供的有何不同呢?請看圖一和圖二的環境變數,兩者環境變數完全不一樣,MSYS2 就是模擬一個 Linux 環境的命令列,操作指令也是 Linux 指令,但實際上指令已經轉為 Win 系統能執行了。有了這類 Linux 環境當然是對熟悉 Win 系統的人操作起來比較便利。 圖一:Windows的命令列 圖二:MSYS2的命令列 Unix-like環境 在 MSYS2 環境,我們要先安裝 ARM 相關的編譯工具,從 MSYS2 官網 下載安裝 package ,安裝這幾個套件 arm-none-eabi-gcc 、 arm-none-ea...