more: Jollen 的 Embedded Linux 教育訓練

« Nano-X 程式設計, #1:介紹與安裝 | Home | Build uClibc for ARM »

建立 Cross GNU Toolchains for ARM

jollen 發表於 August 11, 2004 4:09 PM

作者/陳俊宏
Copyright (c) 2004 www.jollen.org
Last date: 2004/08/11

1. 下載以下套件:

gcc-3.4.1.tar.bz2
newlib-1.12.0.tar.gz
binutils-2.15.tar.bz2

2. 解開套件:

# bzip2 -dc gcc-3.4.1.tar.bz2 | tar xf -
# tar zxvf newlib-1.12.0.tar.gz
# bzip3 -dc binutils-2.15.tar.bz2 | tar xf -

3. 建立編譯用目錄:

# mkdir build-gcc build-binutils

4. 首先編譯GNU binutils套件:

# cd build-binutils
# ../binutils-2.15/configure --srcdir=../binutils-2.15 --target=arm-elf --prefix=/usr/local/gnu-3.4.1 --enable-softfloat –-enable-shared
# make all
# make install

- ARM7TDMI 與 ARM9TDMI 不支援硬體浮點運算。
- 筆者使用的 target device (KS8695P) 是 ARM9TDMI 的裝置,ARM9TDMI並沒有DSP,因此必須建立啟用軟體浮點運算功能。
- 編譯完成後可以在 /usr/local/gnu-3.4.1 目錄下找到執行檔。

5. 編譯GCC與Newlib:

一開始必須先將 newlib 放到 gcc 原始碼目錄下,才能和gcc一併編譯.

# cd gcc-3.4.1
# ln -s ../newlib-1.12.0 newlib

接著設定GCC.

# cd ..
# cd build-gcc
# ../gcc-3.4.1/configure --srcdir=../gcc-3.4.1 --target=arm-elf --prefix=/usr/local/gnu-3.4.1 --with-cpu=arm9 --with-newlib --enable-threads --with-float=soft --without-headers –-enable-languages=c

GCC 3.4 必須在編譯設定時加上 “--with-float=soft|hard” 來指定要使用軟體或硬體浮點運算,在這裡我們必須指定使用軟體浮點運算。GCC 3.4 針對 ”arm-elf” 的 cross toolchains 改用由 Nicolas Pitre 所設計的ARM軟體浮點運算功能,這個新的ARM軟體浮點運算實作不但體積小而且比原來的C版本速度更快,因此請務必將target設定成arm-elf,GCC預設才會去使用新的軟體浮點運算。

執行編譯並安裝:

# make all
# make install

6. 最後可以在 /usr/local/gnu-3.4.1 目錄下取得完整的 Cross GNU toolchains for ARM。得到 cross toolchain 後,下一步則是要cross-compiling uClibc 或 glibc,取得C程式庫後才能開始cross-compiling應用程式。

--jollen

引用通告

如果您想引用這篇文章到您的Blog,
請複製下面的鏈接,並放置到您發表文章的相應界面中。

http://blog.jollen.org/mt-tb.cgi/25

發表一個評論

(您發表的意見將被立即接受,但需要一點時間與後端伺服器做同步,您的留言才會顯示在網站上。為避免 spam 攻撃,按「發表」後請輸入帳號密碼。使用者帳號:「nospam」、密碼:「nospam」。)

Top | 授權條款 | Jollen's Forum: Blog 評論、討論與搜尋
Copyright(c) 2006 www.jollen.org