Ubuntu - 建立 ARM Toolchain (Cross Compiler) @ Max's cellar! :: 隨意窩 Xuite日誌
  • ::我的 PSP::
  • 機型:PSP-1007K 黑色
    韌體:5.00 M33-6
    耳機:Victor JVC HP-FX55
    包包:DeerPack for PSP
    記憶卡:SanDisk MS PRO DUO 2G
    UMD:Monster Hunter Portable

    1. 沒有新回應!





  • Powered by Xuite
    200808301951Ubuntu - 建立 ARM Toolchain (Cross Compiler)
    由於網路上流傳的 ARM Toolchain 有點古老,看起來不是很順眼...
    所以,來建立新的 ARM Toolchain 吧~(話說自己動手做比較有成就感?


    環境:Ubuntu 8.04

    1. 開始前的準備:

    該抓的東西要先抓...
    binutils-2.18
    gcc-4.2.3
    gdb-6.8
    newlib-1.14.0

    安裝開發套件:
    sudo apt-get install build-essential bison flex texinfo


    2. 動工! (黑色粗體字路徑是我的家目錄,請自行修改為你的路徑

    把下載的四包原始碼檔案放在 /home/maxkerr/gnuarm

    解壓縮:
    cd /home/maxkerr/gnuarm
    tar jxvf binutils-2.18.tar.bz2
    tar jxvf gcc-4.2.3.tar.bz2
    tar jxvf gdb-6.8.tar.bz2
    tar zxvf newlib-1.14.0.tar.gz

    為了不必要的麻煩,以 root 的身份來做接下來的步驟
    否則編譯 gcc 時會發生問題(這問題搞的我灰頭土臉...)。

    sudo -s

    為了縮短指令參數長度,設定系統變數:
    TARGET_DIR 為編譯後 ARM Toolchain 放置路徑,請依喜好修改

    export TARGET_DIR="/usr/local/gnuarm"
    export LIB_SRC="/home/maxkerr/gnuarm/newlib-1.14.0"
    export MY_CONFIG="--target=arm-elf --prefix=$TARGET_DIR --enable-interwork --enable-multilib"
    export GCC_CONFIG="--target=arm-elf --prefix=$TARGET_DIR --enable-interwork --enable-multilib --enable-languages=c,c++ --with-newlib --with-headers=$LIB_SRC/newlib/libc/include"
    export PATH="$PATH:$TARGET_DIR/bin"



    3. 編譯 binutils

    cd /home/maxkerr/gnuarm/binutils-2.18
    ./configure $MY_CONFIG
    make all install



    4. 編譯 gcc (上)

    cd /home/maxkerr/gnuarm/gcc-4.2.3
    ./configure $GCC_CONFIG
    make all-gcc install-gcc



    5. 編譯 newlib

    cd /home/maxkerr/gnuarm/newlib-1.14.0
    ./configure $MY_CONFIG
    vi Makefile

    把 258 行的
    MAKEINFO = /home/maxkerr/gnuarm/newlib-1.14.0/missing makeinfo
    改成
    MAKEINFO = makeinfo
    (這問題也卡了我很久說...

    make all install



    6. 編譯 gcc (下)

    cd /home/maxkerr/gnuarm/gcc-4.2.3
    make all install



    7. 編譯 gdb

    cd /home/maxkerr/gnuarm/gdb-6.8
    ./configure $MY_CONFIG
    make all install



    8. 把 ARM Toolchain 路徑永久加入環境變數

    vi /etc/environment

    把 :/usr/local/gnuarm/bin 加到最後一個 " 之前,例如這樣:

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/gnuarm/bin"

    存檔離開(登出後再登入才生效喔~)



    大功告成!來測試一下吧~

    vi armtest.c

    #include <stdio.h>
    int main(void)
    {
        printf("ARM Rocks!\n");
        return 0;
    }

    arm-elf-gcc ./armtest.c
    arm-elf-run ./a.out

    看看有沒有印出 ARM Rocks! 呢?收工!!!

    轉載請務必註明作者 (maxkerr),及本文網址!
    Ubuntu - 建立 [具有...|日誌首頁|Watchmen上一篇Ubuntu - 建立 [具有 root 權限的檔案瀏覽器] 捷徑...下一篇Watchmen
    回應