[Newbie 11] Re: 組み込み初心者のための話題 (2004/4/13)

Kenichi Nakamura nakamura @ upwind-technology.com
2004年 4月 16日 (金) 18:40:47 JST


中村@アップウィンドテクノロジーです。

堂本 隆生 wrote:
> 早々のお返事ありがとうございます。>中村さん
> 堂本@スカイ株式会社です。
> 
> On Fri, 16 Apr 2004 11:11:47 +0900
> "Kenichi Nakamura" <nakamura @ upwind-technology.com> wrote:
> 
> > > 2.Newlib のビルド方法は?
> > >   
> > >   図9には、GCCのビルド方法は示されていますが、Newlibのビルド方法が
> > >   示されていません。
> > 
> > --with-gxx-include-dir=/usr/local/gnu/h8300-elf/include 
> > オプションで、Newlibをビルドするように指定しています。
> > 図9の前に、図7で
> > $ cp -r newlib-1.11.0/newlib ./gcc-3.3.3/
> > $ cp -r newlib-1.11.0/libgloss ./gcc-3.3.3/
> > とNewlibのビルドに必要なソースファイルが含まれた
> > ディレクトリをgccのディレクトリにコピーしています。
> > このコピーを行うことによって、gccのconfigure時に
> > --with-gxx-include-dirが指定されている場合、
> > Newlibのソースがgccのディレクトリ内に存在すること
> > をチェックし、gccのビルド時にNewlibもビルドする
> > ようになります。
> 
> なるほど納得できました。で、原因ですが、
> 図9の前に、図7におけるtarでソース展開の後の
> 
> $ cp -r newlib-1.11.0/newlib ./gcc-3.3.3/
> $ cp -r newlib-1.11.0/libgloss ./gcc-3.3.3/
> 
> の2つを実行し忘れていたことが原因でした。
> 
> # ~/.bash_historyにも実行した痕跡がない・・・
> # あ〜、恥ずかしいったらありゃしない・・・

単純なオペレーションミスだったようですね。

> > > P.S.
> > >   因みに私が記事の内容を試した環境は、Cygwinではなく、
> > >   VineLinux 2.6r4の環境下で実行しています。
> > 
> > VineLinux 2.6r4に含まれるgccのバージョンは、2.95.3
> > です。
> > ビルドしようとしているバージョンは、3.3.3ですので
> > gcc-2.95.3でgcc-3.3.3をビルドすることは出来ません。
> > gccは、3.xになっていろいろと仕様変更が行われて
> > おりますので、gcc-3.xのビルドを行うには、gcc-3.3
> > が必要です。記事では、Cygwin-1.5.7に含まれる
> > gcc-3.3.1を使用しています。
> > VineSeedには、gcc-3.3.2が含まれているようですので
> > そちらを利用すれば、ビルドできるかもしれません。
> 
> 駄目で元々の考えで、VineLinux 2.6r4のデフォルトの環境で
> (つまり、gcc 2.95.3の環境で)再度、binutils、gcc(newlib)、
> insight(gdb)のビルドを実行すると、エラーでストップすること
> なく全てのビルドが完了しました。

良かったですね。

> 本当に出来たのかなぁ?と一抹の不安を感じつつも、
> リスト1の「LED点滅プログラム」を作成し、gdbでターゲットに
> リモート接続させ実行させると、LEDの点滅が動作することを
> 確認しました。ありがとうございます。

素晴らしいですね。
何のトラブルもなくそこまで進めば、もう初心者は卒業ですね。

> # やっぱり、動作が目で確認できるとちょっと感動です。

そうですね。
組み込みプログラミングの教科書はいろいろありますが、
実際にボードを使用して動作が確認できる教材というの
はまだまだ少ないので、(株)秋月電子通商製H8/3069F
ボードを題材に選択しました。

> 次のステップとして、キャラクタモジュールの動作を試そうと
> 考えていますが、今回ビルドした一連のツールチェーンの品質が
> 心配です。

そうですね。

本来は、品質を上げるためにはまず信頼出来るNative
コンパイラで、ビルドしたいバージョンのNativeコンパ
イラをビルドする必要があります。
そして、出来たNativeコンパイラでさらにもう一度、
Nativeコンパイラをビルドする必要があります。

具体的には、バージョン2.95.3を使用してバージョン
3.3.3のコンパイラがビルドできたとしても、そのコン
パイラの信頼性は低いと言えるでしょう。

最近のCygwinのNativeコンパイラは、十分信頼出来るほ
ど品質の高いものであることと、初心者向けの記事である
ことから、Nativeコンパイラのビルドには触れませんで
した。

このように、バージョンがあがるたびに毎回、Native
コンパイラをビルドしてツールチェインを再ビルドする
のは非常に面倒な作業であるため、弊社ではGNUWingと
いう名称で、信頼の出来るツールチェインをバイナリ
形式で提供しております。

> そこで、またまた質問で恐縮なのですが、
> 
> クロス開発の為のツールチェーンをビルドした後に、それらの
> 動作確認が行える仕組み(というか、パッケージ?)は存在しない
> のでしょうか?

コンパイラをテストするためのテストスイートであれば、
Plum Hall社など各社からいろいろなテストスイートが
提供されています。

また、日本ノーベル(株)様(http://www.jnovel.co.jp/)
が上記テストスイートの販売以外にもコンパイラを評価
するサービスを提供されています。

もちろん、弊社でも上記テストスイートなどをパスした
バージョンのGNUWingをご提供することも可能です。

では、よろしくお願いします。

--
アップウィンドテクノロジー・インコーポレイテッド (Upwind Technology, Inc.) 
技術部 中村憲一 
E-mail:nakamura @ upwind-technology.com 
URL:http://www.upwind-technology.com/




Newbie メーリングリストの案内