C99に対応した標準Cライブラリの実装レポートを行っていきます。

プロフィール 

Author:高木信尚

ホームページ
ブログ

最近の記事 

最近のコメント 

最近のトラックバック 

月別アーカイブ 

カテゴリー 

友達申請フォーム 

この人と友達になる

ホーム 全記事一覧

 

2008/07/06 21:07|

 

本サイトで取り上げている標準Cライブラリは、TOPPERS/JSPカーネル上で動作させることを目指していますが、このたび、JSPカーネルの理解の助ける意味で、新サイト「TOPPERS/JSPカーネル ドキュメント」を公開することにしました。

現状では、Doxygenで自動生成したページしかありませんが、必要に応じて補足説明を加筆していければと考えております。本サイト同様、よろしくお願いいたします。
2006/03/10 21:02|開発環境TB:0CM:0

 

色々と準備が多くて、なかなか本題に入れませんが、すべて必要な過程ですので、省略するわけにはいきません。このブログでは、筆者の実作業に基づくレポートであると同時に、読者の皆さんが同じことを試みられるよう、皆さんが行う場合を想定した書き方をしています。予めご了承ください。

前回までで、クロス開発ツールの準備が整いました。今回は、実行環境でもあるTOPPERS/JSPカーネルの構築を行います。TOPPERS/JSPカーネルは、μITRON 4.0仕様のスタンダードプロファイルに準拠したオープンソースのリアルタイムカーネルです。まずは、TOPPERSプロジェクトのウェブサイトから、JSPカーネルをダウンロードします。

JSPカーネルには、.tar.gz形式で圧縮されたものと、.lzh形式で圧縮されたものの二種類があります。.tar.gz形式のものは、文字コードにEUC-JPを、改行文字にLFを使用したものです。.lzh形式のものは、文字コードにシフトJISを、改行文字にCR-LFを使用したものです。今回は、.tar.gz形式で圧縮されたものをダウンロードしてください。

ダウンロードしたファイルは、例によって、"~/src"ディレクトリに格納します。そして、bashから次のコマンドを入力して、圧縮ファイルを展開します。

cd ~/src
tar zxvf jsp-1.4.2.tar.gz

圧縮ファイルが展開され、"jsp"ディレクトリが現れたと思います。次に、カーネルのコンフィギュレータの構築を行います。コンフィギュレータは、μITRONの静的APIを解析して、C言語のソースに翻訳するためのツールです。次のコマンドを入力してください。

cd jsp/cfg
make depend

処理の完了を待って、次のコマンドを入力してください。

make

これで、エラーが発生しなければ、コンフィギュレータの構築は終わりです。次に、カーネル本体の構築に入ります。構築されたファイルの格納場所として、"~/build/jsp"ディレクトリを作成します。次のコマンドを入力してください。

cd ~/build
mkdir jsp

続いて、カーネルの構築を行います。まずは、configureからです。次のコマンドを入力してください。

cd jsp
../../src/jsp/configure -C h8 -S akih8_3069f

configureが完了すれば、次のコマンドを入力してください。

make depend

ここで、先ほどのコンフィギュレータの構築を忘れていたりすると、エラーが発生します。エラーが発生しなければ、次のコマンドを入力してください。

make

これまでの過程でエラーが発生しなければ、カーネルとsample1というサンプルプログラムの構築が完了します。"~/build/jsp"ディレクトリの中に、"jsp.srec"というファイルが生成されていることを確認してください。これは、ターゲットに転送するためのSレコード形式のファイルです。
2006/01/23 01:28|開発環境TB:0CM:0

 

binutilsに引き続き、今回はgccの構築を行います。gccは、GNU Compiler Collectionの略で、Cの他にも、C++, Objective-C, FORTRAN, Ada, Javaが含まれます。今回は、そのうちCコンパイラだけを構築することにします。

Ring Serverの詳しい使い方は前回解説しましたので、今回は要点だけに絞って解説したいと思います。まずは、Index of /archives/GNUからgccを選んでください。そして、その中からgcc-3.4.5/というディレクトリに入ります。

Index of /archives/GNU/gcc/gcc-3.4.5というディレクトリの中から、gcc-core-3.4.5.tar.gzというファイルをダウンロードしてください。binutilsと同様、拡張子が.tar.bz2になっているものも圧縮方法が異なるだけで、同じものです。

ダウンロードしたファイルは、binutilsと同様、"~/src"に格納してください。そして、圧縮されたファイルを次のコマンドで展開します。

cd ~/src
tar zxvf gcc-core-3.4.5.tar.gz

圧縮ファイルが展開されれば、gcc-3.4.5というディレクトリが現れたと思います。次に構築によって生成されるファイルの格納先ディレクトリを作ります。次のコマンドを入力してください。

cd ~/build
mkdir gcc

そして、いよいよgccの構築を行います。まずはconfigureからです。

cd gcc
../../src/gcc-3.4.5/configure --target=h8300-hms --prefix=/usr/local/h8300-hms

しばらくするとconfigureが完了すると思いますので、次にmakeを行います。

make

ここでエラーが発生した場合、多くの原因はbinutilsのツールにパスが通っていないためだと思われます。前回の記事を参考に、もう一度パスの設定を確かめてください。

makeが完了すれば、"/usr/local/h8300-hms"にインストールを行います。次のコマンドを入力してください。

make install

ここまででエラーが発生しなければ(警告が出る場合はありますが、無視して構いません)、gccのインストールは成功です。念のため、次のコマンドを入力して、正しくインストールされていることを確認してください。

h8300-hms-gcc -v

このとき、

Reading specs from /usr/local/h8300-hms/lib/gcc/h8300-hms/3.4.5/specs
Configured with: ../../../src/gcc-3.4.5/configure --target=h8300-hms --prefix=/usr/local/h8300-hms
Thread model: single
gcc version 3.4.5

と出力されれば、gccのインストールは正しく行われています。

PCのCコンパイラを使われたことのある方なら、ここで"Hello, World!"でも出力させたいところでしょうが、残念ながら、"Hello, World!"には、まだはるか遠い道のりが待っています。

標準出力に文字列を出力するputs関数は、これから実装すべきライブラリの機能ですし、main関数を呼び出すスタートアップルーチンもまだありません。リンク時にプログラムやデータを配置するためのリンカスクリプトもまだないのです。
2006/01/23 00:32|開発環境TB:0CM:0

 

前回はCygwinをインストールしましたので、今回はCygwin上で動作するクロス開発ツールの構築を行います。クロス開発ツールというのは、H8/3069Fマイコンで動作するプログラムを、Windows上(実際はCygwin上)で、コンパイル・アセンブル・リンクするためのツール群です。

まずは、必要なファイルをRing Serverからダウンロードします。慣れないとちょっと使いにくいかもしれませんが、ページの真ん中より少し上あたりに、「毎日更新! ソフトウェア ライブラリ」と書かれたところがあると思います。そこからソフトウェアライブラリのページに入れます。

そして、「GNUツール群」からライブラリ一覧に入り、GNUを選べば、Index of /archives/GNUにGNUツール群のディレクトリ一覧が現れます。その中から、binutilsを選んでください。たくさんファイルが並んでいますが、binutils-2.16.1.tar.gzです。拡張子がtar.bz2のものも同じですが、圧縮方法が異なります。今回はtar.gzの方をダウンロードしたものとして解説します。

ダウンロードしたファイルは、"~/src"ディレクトリに格納するものとします。ここで、"~/src"というのはCygwinにおけるディレクトリの指定方法です。~(チルダ)はホームディレクトリの意味で、Cygwinを"C:\cygwin"にインストールした場合、"C:\cygwin\home\<アカウント名>"がホームディレクトリになります。また、bashを立ち上げたとき、最初に移動する先がホームディレクトリです。

"~/src"ディレクトリを生成するには、Windowsのエクスプローラで行っても構いませんが、bash上で次のように入力することでも生成できます。

mkdir src

binutils-2.16.1.tar.gzを"~/src"に格納したら、今度は、圧縮されたファイルを展開します。bashのコマンドラインから、次のコマンドを入力してください。

cd ~/src
tar zxvf binutils-2.16.1.tar.gz

これで圧縮ファイルが展開され、binutils-2.16.1ディレクトリが現れるはずです。

このbinutilsというのは、アセンブラやリンカのほか、色々な開発ツールが含まれたパッケージです。コンパイラを構築する前に、必ずbinutilsを構築する必要があります。
それでは、これからbinutilsの構築を開始します。

まず、構築結果として生成されるファイルを格納するためのディレクトリを作成します。ここでは、"~/build/binutils"とします。次のコマンドを入力してください。

cd ~
mkdir build
cd build
mkdir binutils

ディレクトリができたら、そのディレクトリに移動し、構築を開始します。まずはconfigureからです。configureは、構築のための色々な設定を行います。例えば、どんなターゲット用のツールを生成するのかとか、生成後のツールはどこにインストールするのかなどです。次のコマンドを入力してください。

cd binutils
../../src/binutils-2.16.1/configure --target=h8300-hms --prefix=/usr/local/h8300-hms

ここでは、ターゲットとして"h8300-hms"を指定し、構築されたツールを"/usr/local/h8300-hms"というディレクトリにインストールするように設定しました。configureには少し時間がかかります。configureが完了したら、今度はmakeの番です。次のコマンドを入力してください。

make

makeもしばらく時間がかかります。気長に待ってください。makeが完了すれば、構築されたツールを、先ほど設定した"/usr/local/h8300-hms"にインストールします。次のコマンドでインストールが始まります。

make install

これで、途中でエラーが発生しない限り、binutilsのインストールは完了です。ただし、このままではツールにパスが通っていませんので、パスを設定しておきましょう。次のコマンドでパスの設定が行えます。

export PATH=$PATH:/usr/local/h8300-hms/bin

Windowsのパス設定とは微妙に異なるので注意してください。特に、パスの区切りには ;(セミコロン)ではなく、:(コロン)を使いますので要注意です。これで、次のコマンドを入力すれば、リンカのバージョンが表示されると思います。

h8300-hms-ld -v

ここで、

GNU ld version 2.16.1

と表示されれば、正しくパスが通っています。

ところで、このままではbashを立ち上げるたびに、毎回パスの設定を行わなければなりません。そこで、"/etc/profile"(Windowsでのファイル名は"C:\cygwin\etc\profile")をエディタで開いて、その中の適当なところに先ほどの設定コマンドを書いてしまいましょう。パスの設定を行っている箇所がどこかにあると思いますので、その直後にでも追加するとよいでしょう。
2006/01/22 23:47|開発環境TB:1CM:0

 

標準Cライブラリを実装するには、まずは開発環境を構築しなければなりません。今回は、h8300-hmsをターゲットとしたGNU開発環境をCygwin上に構築します。まずは、Cygwinのインストールについて、解説することにします。

Cygwinは、Windows上でUnix環境をエミュレートするためのツールです。Cygwinをインストールするには、まずはCygwinの公式サイトから、setup.exeをダウンロードする必要があります。

上の画像が、ページのあちこちに見つかると思いますので、それをクリックしてsetup.exeをダウンロードしてください。ダウンロードしたsetup.exeは、どこか専用のフォルダに格納した方がよいでしょう。たとえば、"C:\cygsrc"といったフォルダを作成して、そこに格納するようにしてください。

setup.exeがダウンロードできたら、そのアイコンをダブルクリックしてセットアップ・プログラムを起動してください。大体デフォルトの設定のままで構いませんが、次の画面

が現れたら、CategoryがDevelのDefaultとなっているところをクリックして、Installにしてください。ハードディスクに余裕がある場合は、CategoryがAllのところをInstallにしておいた方が無難です。

そのまま先に進めば、自動的にダウンロードとインストールが行われます。結構時間がかかりますので、気長に待ってください。インターネットへの接続環境によっては、途中で止まってしまったりしますが、その場合は、いったん中断してから再スタートすれば、途中からダウンロードを再開することができます。

インストールが無事終われば、デスクトップにアイコンが現れますので、これをダブルクリックしてください。黒いウィンドウが起動するかと思います。

これは、コマンドプロンプトによく似ていますが、bashというCygwinの標準的なシェルです。コンパイラなどは、ここからコマンドを入力することで利用します。

試しに、次のように入力してみてください。

gcc -v

ここで、いろいろな文字が表示された後、最後に

Thread model: posix
gcc version ...

といった表示があれば、インストールに成功しています。(...の部分はgccのバージョンによって変わります)
2006/01/22 19:21|開発環境TB:0CM:0

ホーム 全記事一覧

ブログ内検索 

お勧め書籍 

RSSフィード 

リンク 

このブログをリンクに追加する

Powered By FC2ブログ 

Powered By FC2ブログ
ブログやるならFC2ブログ

Copyright(C) 2006 TAKAGI Nobuhisa All rights reserved.
Powered by FC2ブログ. 無料ホームページ アフィリエイト レンタルサーバー FC2ブログ 一戸建て template designed by 遥かなるわらしべ長者への挑戦.