ここでホスト側に戻ってみると、出来上がったファイルのあるディレクトリの中に、実行可能なファイル(hello-h8)のほかに、もう1つ「hello-h8.gdb」というファイルが出来上がっています。このファイルはGNUのデバッガ「gdb」で、デバッグできる情報を含んでいるファイルです。
それでは、それぞれどんなファイルなのか、前述の「file」コマンドを使って確かめてみましょう。
# file hello-h8 hello-h8: BFLT executable - version 4 ram # file hello-h8.gdb hello-h8.gdb: ELF 32-bit MSB executable, Hitachi H8/300, version 1, statically linked, not stripped
H8マイコンのターゲットボードで動作させた実行ファイル「hello-h8」は、Flat BinaryといわれるH8マイコンで実行可能なフォーマットのファイルです。一方「hello-h8.gdb」は、H8のCPUで実行可能であることを示していて、スタティック(静的)にライブラリがリンクされ、stripされていないことを表しています。
Intelの実行ファイルではライブラリがダイナミックにリンクされていましたが、今回はスタティックにリンクされています。これは、ターゲットボード側でダイナミックリンクするには、それなりの大きな仕掛け(ライブラリの保存場所など)が必要だということです。そのためスタティックリンクになっているのです。
このように、H8の開発環境においてIntelの実行可能なファイルと同様の情報を調べるには、この「*.gdb」というファイルに注目すべきなのです。このファイルは連載後半でもお世話になりますので、よく覚えておいてください。
通常、この手のマイコンボードを使った解説ですと、ここまでの内容でほぼゴールだと思います(ユーザー・アプリケーションのコンパイルと実行方法を説明したので、後はご自由に……という感じ)。もしくは、もう少し掘り下げたものだと、I/Oの使い方や割り込みプログラミングについてのお話あたりまで出てくるかもしれません。
本連載でもこうした解説と同じ方向で話を進めていくこともできますが、そもそも目指すものが違います。そうです“ソフトウェアのハードウェア化”ですね。一般的なH8関連のお話は書籍やほかのWebサイトに譲るとして、次回から本格的に「ザ・組み込み」の世界に突入していきます。まずは、LCDをコントロールするプログラムの作成と、その分析を行うことで、ソフトウェアのハードウェア化とはどういうものかを皆さんに実感していただきたいと思います。お楽しみに!(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.