在正式開始學習裸機程序的編寫之前,我們還需要安裝一下交叉編譯工具。何為交叉編譯工具?其實就是在x86的ubuntu主機上編譯程序,並且可以運行在arm環境的編譯工具。而gcc是本地編譯工具,這個在我們本篇剛開始就已經安裝了。現在我們需要安裝交叉編譯工具arm-linux-gcc。我現在是直接使用廠家制作好的工具,只需解壓后增加到環境變量即可:
sudo tar xzf arm-linux-gcc-4.3.2.tgz -C /
然后修改“/etc/environment”,在PATH中增加交叉編譯工具的bin文件的路徑:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/arm/4.3.2/bin"
注銷或者重啟之后,環境變量生效,可以使用如下命令測試一下:
arm-linux-gcc -v
如果有如下信息輸出,說明安裝成功了:
Using built-in specs. Target: arm-none-linux-gnueabi Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin Thread model: posix gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
下面開始進入裸機程序篇了,第一小節准備介紹一下GPIO。