2009年5月14日木曜日

GNUによる開発環境の整備(for ARM7TDMI)

組み込み用の開発環境として、GNUによる開発環境の整備を試行します。
問題はWindowsVISTA 64bit、失敗覚悟で行います。

1.linux環境の構築(Cygwinのインストール)
 1)"http://www.cygwin.com"にアクセス
 2)「Install or update now!」のアイコンをクリック ダウンロードで「実行」
    [Cygwin Setup]インストーラが立ち上がる。
 3)「Choose A Dounload Source」で Install from Internet を選択
 4)「Select Root Install Directory」は デフォルト"C:\cygwin"のまま設定
 5)「Select Local Packege Directory」は 適当にディレクトリ"C:\DownLoad\Cygwin"を設定
 6)「Select Your Internet Connection」で Direct Connection を選択
 7)「Select Download Site」で 適当にダウンロードサイトを選択
 8)「Select Packeges」先頭の"All"の横の"Default"はそのまま。
   ①パッケージの追加
    再度[Cygwin Setup]インストーラが立ち上げ以下のパッケージを追加する。
     ・"Archive" zip等のファイルの圧縮/解凍
     ・"Devel"  gcc、make等の開発ツール
     ・"Editors" vi等のエディター
     ・"Net"/"inetutils" telnet等のネットワークツール

--アンインストールの場合  
( ⑧「Select Packeges」で 先頭の"All"の横の"Default"をクリックして"Uninstall"に変更する。)
     

2.GNU開発環境のインストール
 1)GNU関連パッケージの入手
  ①"http:://www.gnu.org"にアクセス
  ②[DownLoad]をクリック
  ③「How to get GNU software」の[・Download it from the web or via FTP:we....]をクリック
  ④「GNU mirror list」の[Asia/Japan ftp://ftp.ring.gr.jp/pub/GNU]をクリック
  ⑤gccパッケージの入手
   ・[gcc]をクリック
   ・[gcc-4.4.0]をクリック(最新版にトライ)をクリック
      ※IE8.0では不調 [Apr 22 09:39 gcc-4.4.0]の表示
   ・[gcc-4.4.0.tar.bz2]をクリック
   ・c:\Download\GNUに保存
  ⑥binutilsパッケージの入手( ④のFTPサイトより。)
   ・[binutils]をクリック
   ・[binutils-2.19.1.tar.bz2]をクリック
   ・c:\Download\GNUに保存
  ⑦gmpパッケージの入手( ④のFTPサイトより。)
   ・[gmp]をクリック
   ・[gmp-4.3.1.tar.bz2]をクリック
   ・c:\Download\GNUに保存
  ⑧mpfrパッケージの入手
   ・"http://www.mpfr.org/”にアクセス
   ・[Latest release: download]をクリック
   ・[mpfr-2.4.1.tar.bz2]をクリック
   ・c:\Download\GNUに保存
  ⑨Insightパッケージの入手
   ・"ftp://sourceware.org/pub/insight/releases/”にアクセス
   ・[insight-6.8.tar.bz2]をクリック
   ・c:\Download\GNUに保存
  ⑩newlibパッケージの入手
   ・"ftp://sourceware.org/pub/newlib”にアクセス
   ・[ newlib-1.17.0.tar.gz]をクリック
   ・c:\Download\GNUに保存

 2)インストール (Cygwinでの作業)
  ①インストール先ディレクトリ作成
   ・cd /usr/local
   ・mkdir arm-tools
  ②各パッケージの解凍
   ・tar jxvf /cygdrive/c/DownLoad/GNU/binutils-2.19.1.tar.bz2
   ・tar jxvf /cygdrive/c/DownLoad/GNU/gmp-4.3.1.tar.bz2
   ・tar jxvf /cygdrive/c/DownLoad/GNU/mpfr-2.4.1.tar.bz2
   ・tar jxvf /cygdrive/c/DownLoad/GNU/gcc-4.4.0.tar.bz2
   ・tar jxvf /cygdrive/c/DownLoad/GNU/insight-6.8.tar.bz2
   ・tar zxvf /cygdrive/c/DownLoad/GNU/newlib-1.17.0.tar.gz
(arm-tools以下をバックアップ)
  ③binutilsパッケージのインストール
   ・cd binutils*
   ・./configure --target=arm-elf --prefix=/usr/local/arm-tools
   ・make
   ・make install
  ④gmpパッケージのインストール
   ・cd ../gmp*
   ・./configure --prefix=/usr/local/arm-tools
   ・make
   ・make check
   ・make install

  ⑤mpfrパッケージのインストール
   ・cd ../mpfr*
   ・./configure --prefix=/usr/local/arm-tools --with-gmp=/usr/local/arm-tools
   ・make
   ・make check
   ・make install

  ⑥gccパッケージのインストール
   ・cd ../
   ・mkdir BuildGcc
   ・cd BuildGcc
   ・../gcc-4.4.0/configure --target=arm-elf --with-gmp=/usr/local/arm-tools --with-mpfr=/usr/local/arm-tools --prefix=/usr/local/arm-tools --enable-interwork --enable-multilib --enable-languages=c --disable-libssp
    (--with-newlib を追加 */* 下記参照)
    (--with-float=soft を追加 7/10 )
   ・make
   ・make install

   (/usr/local/arm-tools/binにPATHを通す。 <== newlibインストール失敗対応 12/4 )

  ⑦newlibパッケージのインストール
   ・cd ../newlib*
   ・./configure --target=arm-elf --prefix=/usr/local/arm-tools
    (--with-float=soft を追加 7/10 )
   ・make
   -- インストールの中断(エラーによる)

     エラー発生
       内容
         lib_a-dummy.oのコンパイル時
/bin/sh: arm-elf-cc: command not found

     エラー解析
      a.現在GNU開発環境があるPCでnewlibのconfigureを実行、出力Makefileを今回のMakefileと比較(diff)
       > CC_FOR_TARGET=$(STAGE_CC_WRAPPER) arm-elf-gcc $(FLAGS_FOR_TARGET) 
       < CC_FOR_TARGET=$(STAGE_CC_WRAPPER) arm-elf-cc $(FLAGS_FOR_TARGET) <=今回
       なぜ arm-elf-cc になったのか?
      b.config.logを確認
       591行目 CC_FOR_TARGET があった。
      c.configureの確認
       8539行以降にCC_FOR_TARGETの設定が記述

対処
      a.深く考えなく、GCCのバージョン を 4.3.3 に入れ替える。
             ==>変わらなかった。
      b.GCCのインストール 各オプションを変える。
             ==>検討中 ==> 解決
次のオプションでgccの configure を実行 (--with-newlib を追加)
     ../gcc-4.4.0/configure --target=arm-elf --with-gmp=/usr/local/arm-tools
         --with-mpfr=/usr/local/armtools --prefix=/usr/local/arm-tools
         --enable-interwork --enable-multilib --enable-languages=c
         --disable-libssp --with-newlib
       で gccとnewlibのインストール作業をやり直した。

※newlibでの再ビルドは make clean では不十分、newlib-1.17.0.tar.gz の解凍からやり直したほうが良さそう。

   --インストールの続き
   ・make install

  ⑥gccパッケージの補足インストール
   ・cd ../BuildGcc*
   ・make all
   ・make install

3.GNU検証
 1)newlibインストール失敗(未解決)での検証
   ① TIMERでLEDを点滅プログラム
             ==> 成功
 ② LCD表示プログラム
     ・リンクで、-lc オプションがエラー  llibc がリンクできず。

その他
 1)NXP LPC2388用 ダウンローダー 「Flash Magic」のインストール
   ①"http://www.flashmagictool.com/"にアクセス
   ②Download FlashMagic.exe (ページ右側)をクリック
   ③インストールプログラムを実行
 2)CP2102_USB ドライバのインストール
   ①LPC2388基盤をUSB接続
   ②ドライバインストールを促されるので、インターネットでドライバを検索する方法でインストールを行う。

0 件のコメント:

コメントを投稿