H8でもC++

以前行列のライブラリをC++で作成したのですが、それをH8用に移植したい。ということでH8でC++を使えるようにしてみました。ターゲットは秋月の3069F(増設RAM 2M)です。

Cpp.jpg
結果はこのとおり。Eclipseの画面に表示されているのがソース。HTermはH8での実行結果。

C++での開発環境は以前に作成しました。あとは、Cで使用していたリンカスクリプトを少々変更し、h8300-elf-g++でlibstdc++.aを組み込むようにすればOKでした。

今回のソース等はここにおいておきます。

細かい話になりますが、リンカスクリプトの修正のこつというかなんというかを。修正にあたって参考にした資料は3つほどあります。

まずは、標準のリンカスクリプト(-Tオプションがないときに利用されるリンカスクリプト)です。GCCのコンパイラを作成すると、標準のリンカスクリプトが例えば/usr/local/h8300-elf/lib/ldscripts/の中に生成されますので、これが参考になりました。
次に、コンパイラのコンパイルレベルをアセンブラまでにとどめる、すなわち

$ gcc target.c -S -o target.S

とかすると、アセンブラに翻訳された結果がでてくるので、それの.sectionという部分をみると実際にどのようなセクションが生成されるのがわかります。
最後はmapファイルで-Map (出力ファイル名)とすると、どセクションがどの領域がわりあてられたのか、ファイルに書き出されます。

以上3つの資料を眺めれば、どのセクションをどの位置に配置すればよいか、なんとかなると思います。

June 02, 2004 22:52 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

コメントする