本文へスキップ

組込み開発環境のあれこれ - ビットラン製品に対してやその他の開発ツールの情報を発信!。

E-mail : ice-info@bitran.co.jp

〒361-0056 埼玉県行田市持田2213

技術情報おおび開発環境の情報

コンパイラ

SH用gccコンパイラをWindows VistaにてCygwin環境で構築する

2009年6月 2日 (火)
 ※この情報は2009年当時のOSでの説明となっております。リンク先も当時の者になります。

今回はSH用gccコンパイラをWindows VistaにてCygwin環境で構築いたします。
目的はTOPPERS OS(TOPPERS/JSP、TOPPERS/FI4、TOPPERS/ASPカーネル)用の開発環境を用意するためです。社内でのメモの意味もありますが、何かの参考になるのではと思い公開します。

1.はじめに

●概要
1)PCのOS:Windwos Vista
(Windows VistaでCygwinを構築するためには幾つかポイントがあります。
また、今回は同じ手順でWindows 2000とWindows XPでも試してあります。)
2)Cygwin DLL release version 1.5.25(2009年6月1日現在 最新)
3)binutils-2.16
4)gcc-core-3.4.5
(当 初はJSPカーネルが動作確認されているgcc-3.3にて構築しようとしていましたがWindows 2000/XP/Vista全てのOSで構築に失敗しました。以下の情報を参考にして修正を加えたら構築できましたが、あえて修正が必要なバージョンは避 けました。参考URL:https://www.toppers.jp/TOPPERS-USERS/200312/msg00017.html
5)newlib-1.13.0

●ご注意
gccコンパイラはフリーコンパイラとして有名ですが、標準ライブラリを使用するとGPLまたはLGPLに該当してしまいます。簡 単に説明するとgccの標準ライブラリを使って作ったプログラムも、全て配布先の要求があればソースを公開しなければなりません。(LGPLの場合は、少 し緩くなります)またサイズ的にも大きいので、組込みではサイズがコンパクトでGPLよりも制限が緩いレッドハット社のnewlibが使われます。 (newlibを商用で使用する場合は必ずレッドハット社(http://www.jp.redhat.com/)のホームページにてライセンス条項を確認してください。)尚、TOPPERS OSのカーネルはライブラリを必要としませんので、ライブラリを使用しないという選択もあります。

2.Cygwinをインストールする

では、早速進めたいと思います。
まずはCygwinをインストールします。

Windows VistaでCygwinを動かすポイントは次の4点です。
1)管理者権限のユーザーアカウントでログインする
2)OSのユーザーアカウント制御をOFFにする
3)setup.exeを「管理者として実行する」で実行する
4)ショートカットも「管理者として実行する」で実行する

[手順]
●管理者権限のユーザーアカウントでログインする

●OSのユーザーアカウントをOFFにする
コントロールパネルにてユーザーアカウントをOFFにしてください。

●IEなどのブラウザでhttp://www.cygwin.com/を開きます
Cygwin1

●右上の「Install Cygwin now」をクリックします

●setup.exeをディスクトップに保存します

●setup.exeを選択してマウスの右ボタンをクリックしてポップアップメニューから「管理者として実行(A)...」を選びます
Cygwin3

●「セキュリティの警告」が出た場合は「実行」をクリックします。
Cygwin4

●インストーラが起動したら「次へ(N)」をクリックして進みます
Cygwin5

●「Install from Internet」を選択して「次へ(N)」をクリックして進みます
Cygwin6
 インターネットの回線が遅い環境の場合は「Download Without Installing」を選択した方が安定します。
 「Install from Local Directory」はCD-ROMなどからインストールする時に選択しますので、今回は関係ありません。

●インストール先を選択して(問題なければ初期のc:\cygwinで・・・)「次へ(N)」をクリックして進みます
Cygwin7

●インターネットの接続方法を選択して「次へ(N)」をクリックして進みます
Cygwin9_2
Proxyサーバ経由の場合は「Use HTTP/FTP Proxy」を選択してホストとポートを設定します。

●インターネットの接続先を選択して「次へ(N)」をクリックして進みます
Cygwin10_2
サイトはJPでring系を選択します。
今回はring系でなく「http://ftp.iij.ad.jp」を選択しています。

●インストールするパッケージを選択して「次へ(N)」をクリックして進みます
Cygwin11_2
インストールするパッケージがわからない時は「all   default」をクリックすると「all    install」となり全てインストールします。
Cygwin12_2
今回、選択したパッケージは以下の画面の通りです。
(クリックすると拡大します)
Cygwin13_2

●インストールを開始します

インストールには1~2時間以上かかる場合があります。

●終了するとショートカットの作成とメニューの作成を聞いてきますので、どちらもチェックして完了してください。

●ショートカットまたはcygwin.batを選択してマウスの右ボタンをクリックしてポップアップメニューから「管理者として実行(A)...」を選びCygwinを起動します。

Cygwin14_2

●「exit」と入力すると終了します。

以上でCygwinのインストールは終了です。

3.GNUツールをインストールする

次にGNUツールをインストールします。

GNUツールをインストールするためのポイントは次の3点です。
1)binutils、gcc、newlibの順で構築していく(必要に応じてその後gdb)
2)gccを構築する前にnewlibのソースを展開しておく
3)gccを構築する前にアセンブラのパスを通しておく

3-1.GNUツールをダウンロードする

1)ダウンロード先のフォルダを作成

●ショートカットまたはcygwin.batを選択してマウスの右ボタンをクリックしてポップアップメニューから「管理者として実行(A)...」を選びCygwinを起動します。

Cygwin14_2

●Cygwinから次のように入力して新しいフォルダを作成します

 $ cd /usr/local <return>
 $ mkdir sh <return>
 $ cd sh <return>
 $ mkdir src <return>
 $ cd src <return>

この /usr/local/sh/src に各ツールをダウンロードします。

2)binutilsをダウンロードする
binutilsはアセンブラやリンカなどのツール群の集まりです

●サイトhttp://ftp.gnu.org/gnu/binutils/ をブラウザで開きます
Gcc1_2

●「binutils-2.16.tar.bz2」をクリックします

●「保存」をクリックします
Gcc2_2

●ファイルの種類を「tarファイル」から「すべてのファイル」に変更して、ファイルの拡張子に「.bz2」を付けてファイル名が 「binutils-2.16.tar.bz2」になっているのを確認してc:\cygwin(またはcygwinインストール先)\usr\local \sh\srcに保存します
Gcc3_2

3)gccをダウンロードする
gccもまた多くのツールが含まれたパッケージなので、今回はメインのツールのみ集めたgcc-coreをダウンロードします。

●サイトhttp://ftp.gnu.org/gnu/gcc/ をブラウザで開きます
Gcc4_2

●「gcc-3.4.5/」をクリックします

●「gcc-core-3.4.5.tar.bz2」をクリックします
Gcc5_2

●「保存」をクリックします

●ファイルの種類を「tarファイル」から「すべてのファイル」に変更して、ファイルの拡張子に「.bz2」を付けてファイル名が「gcc- core-3.4.5.tar.bz2」になっているのを確認してc:\cygwin(またはcygwinインストール先)\usr\local\sh \srcに保存します
Gcc6_2

4)newlibをダウンロードする

●サイトftp://sources.redhat.com/pub/newlib/ をブラウザで開きます
Gcc7_2

●「newlib-1.13.0.tar.gz」をクリックします

●「保存」をクリックします

●ファイルの種類を「gzファイル」、ファイル名が「newlib-1.13.0.tar」になっているのを確認してc:\cygwin(またはcygwinインストール先)\usr\local\sh\srcに保存します
Gcc8_2

3-2.ダウンロードしたファイルを展開する

Gcc9_2

●Cygwinから次のように入力して各ファイルを展開します。

 $ cd /usr/local/sh/src <return>
 $ tar jxvf binutils-2.16.tar.bz2 <return>
 $ tar jxvf gcc-core-3.4.5.tar.bz2 <return>
 $ tar zxvf newlib-1.13.0.tar.gz <return>

3-3.binutilsを構築する

●Cygwinから次のように入力して構築します(時間がかかります)

 $ cd /usr/local/sh/src/binutils-2.16 <return>
 $ mkdir obj <return>
 $ cd obj <return>
 $ ../configure --target=sh-hitachi-elf --prefix=/usr/local/sh --disable-nls <return>
 $ make <return>
 $ make install <return>

--target指定によりツール群の名前がsh-hitachi-elf-xxになります(TOPPERS/JSPno仕様からその名前にしました)。
--prefix指定により /usr/local/sh 下に構築されました。
パスは /usr/local/sh/bin で通します

3-4.PATHを設定する

1)環境変数に設定する場合

●Cygwinから次のように入力してください

 $ echo 'export PATH=$PATH:/usr/local/sh/bin' >> ~/.bash_profile <return>
(フォントの関係で見えにくいかもしれませんが「 ~ 」はチルダです。ご注意ください。)

2)一時的に設定する場合

●Cygwinから次のように入力してください

 $ export PATH=$PATH:/usr/local/sh/bin <return>

3-5.gccを構築する

●Cygwinから次のように入力して構築します(かなり時間がかかります)

 $ cd /usr/local/sh/src/gcc-3.4.5 <return>
 $ mkdir obj <return>
 $ cd obj <return>
 $ ../configure --target=sh-hitachi-elf --prefix=/usr/local/sh --with-gnu-as --with-gnu-ld --with-newlib --with-headers=/usr/local/sh/src/newlib-1.13.0/newlib/libc/include <return>
 $ make <return>
 $ make install <return>

3-6.newlibを構築する

●Cygwinから次のように入力して構築します(かなり時間がかかります)

 $ cd /usr/local/sh/src/newlib-1.13.0 <return>
 $ mkdir obj <return>
 $ cd obj <return>
 $ ../configure --target=sh-hitachi-elf --prefix=/usr/local/sh <return>
 $ make <return>
 $ make install <return>

3-7.構築の確認

●Cygwinから次のように入力してgccのバージョン情報が出たら完了です

 $ sh-hitachi-elf-gcc -v <return>

追記(2009.06.03)

Cygwinの環境(c:\cygwin)を別のPCにコピーしてcygwin.batを起動した場合、ユーザーアカウントが変わったためエラーが出ます。このような場合、以下に様にすればアカウントを再構築してくれます。

 $ mkpasswd -l > /etc/passwd <return>
 $ mkgroup -l > /etc/group <return>

続・追記(2009.06.03)

Windows Vistaで構築する際、Core2 Duoのメモリ2Gバイトのノートで構築しましたが、同じことをWindows 2000のノート(Pentium4 メモリ256Mバイト)の2倍時間がかかってしまいました。このことを考えると最新のノートではなく社内で使われていないPCを利用するのもいいかもしれ ません。



ルネサスSHC/H8Cコンパイラでローカル変数が見えない

2009年4月 1日 (水)

コンパイラの出力を*.src にした場合、特にインラインアセンブラを使った時に発生します。通常はC言語で書いたソースをコンパイルすると*.obj というオブジェクトファイルに出力します。しかし、ルネサスCの場合、インラインアセンブラを使うと*.src に出力しないとエラーがでてしまいます。これによりC言語⇒アセンブラ⇒オブジェクトの順になり、アセンブラソースに一度出力する際にローカル変数の情報 がなくなってしまいます。

回避方法はありません。インラインアセンブラを使うソースだけを分離して、その他の関数に影響が出ないようにします。

以前、ビットランの社員がルネサス(当時は日立)の有料セミナーに参加して、「インラインアセンブラを使えるように出力は*.src にしましょう。」と教わって帰ってきました。あまりデバッガのことは考えてもらってないようですね ・・・今は違うのでしょうか?


ルネサスSHC/H8Cコンパイラでシンボル情報がまったく見えない

2009年4月 1日 (水)

ルネサスのツールはデバッグオプションがコンパイラ時(C/ASMなど)とリンク時の両方に必要です。最近はHigh-performance Embedded Workshop(HEW)が使われていてダイアログで設定するので気が付くケースが増えましたが、コマンドラインで実行する場合、C言語では -debugオプションをつけていてOPTLINKでも-debugオプションが必要(存在している)というのを気が付かないケース多いようです。

ルネサスSHCコンパイラ対応

2009年4月 1日 (水)

SuperH RISC engine C/C++コンパイラパッケージは(株)ルネサス テクノロジと日立ソフトウェアエンジニアリング(株)、(株)日立超LSIシステムズから販売されています。3社ともコンパイラパッケージに関しては同じ 製品になります。尚、ビットランがバンドルしているのは日立ソフトウェアエンジニアリング(株)から販売されている製品となっています。

パッケージの構成

1.統合開発環境(IDE): 名称:High-performance Embedded Workshop(HEW)
2.ツールチェイン: コンパイラ、アセンブラ、最適化リンカ、標準ライブラリ構築ツールの総称
3.標準ライブラリ構築ツール: 標準ライブラリを構築する為のツール
4.Install Manager: 複数のIDE を一台のPC 上に構築する「マルチインストール」をサポートするツール
5.シミュレータデバッガ: SH マイコン用のシミュレータデバッガ
6.AutoUpdater: 統合開発環境に登録されている各コンポーネントの自動アップデートを行うツール
7.Document Updater: ルネサスマイコンに関するドキュメント類を収集するツール
※ バンドルしている日立ソフトの製品は、この他に幾つかのボーナスソフトを添付

HEW=コンパイラではありません。High-performance Embedded Workshop(HEW)はあくまでも統合開発環境(IDE)の名称です。

バージョン表記

     V.9.03 Relese 00
バージョン番号  リビジョン番号
リビジョンアップは無償で行えます。バージョンがアップした場合は買い替えが必要です。

バージョン9(SHC V.9)について

V.9.03 Relese 00が2009年3月現在の最新バージョンです。このバージョン9からSH-2Aに対応しています。出力ファイルはELF/DWARFを選択頂ければDWARF2の形式でシンボル情報が出力され、ソースレベルデバッグを行うことができます。

バージョン8(SHC V.8)について

V.8.00 Relese 05(2005年6月)が最終バージョンです。このバージョン8からSH-4Aに対応しています。出力ファイルはELF/DWARFを選択頂ければ DWARF2の形式でシンボル情報が出力され、ソースレベルデバッグを行うことができます。このバージョンでは更に最適化が強力になりました。

バージョン7(SHC V.7)について

V.7.01.05(2004年7月)が最終バージョンです。このバージョン7から最適化が更に強力になり、最適化を無効にしても無駄なシンボル情報などは削除されてしまい、デバッグがやり難くなりました。(苦笑)
出 力ファイルはELF/DWARFを選択頂ければDWARF2の形式でシンボル情報が出力され、ソースレベルデバッグを行うことができます。この辺のバー ジョンからSYSROFからELFにコンバートするのではなくELFからSYSROFのコンバートするようになっています。よって、SYSROFを選択す るとコンバータを余分に通す分バグを誘発する可能性がありますのであえてSYSROFを選択する必要はないと思います。

バージョン6(SHC V.6)について

V.6.0C(2002年10月)が最終バージョンです。このバージョン6からC++のシンボル情報に対応するためDWARF2の形式を採用しまし た(前バージョンはDWARF1の形式)。その為かV6.0Ar2ぐらいまではシンボル情報はSYSROFを選択した方がトラブルが少なかったようです。

バージョン5(SHC V.5)について

V.5.1F(2002年10月)が最終バージョンです。このバージョン5から統合開発環境(IDE): HEWが搭載されました。今までどうしても、サードパーティより見劣りをしていましたが、HEWの登場で一新されました。(パッケージ提供もこのバージョ ンからCD-ROMだったような・・・)欠点はSYSROF形式がメインでELF形式にはコンバートしてDWARF1形式にしたためC++のシンボル情報 は十分ではなかったようです。C++ユーザーはV.6に移行しましたが、安定度が高かったため、その他のユーザーは長く愛用されたバージョンです。デバッ グ情報はSYSROF形式をお薦めしています。

それ以降のバージョンもSYSROF形式ならロードできます。(SYSROF V1とV2どちらも対応しています。)

ルネサスH8Cコンパイラ対応

2009年4月 1日 (水)

H8SX,H8S,H8ファミリ用 C/C++コンパイラパッケージは(株)ルネサス テクノロジと(株)日立情報制御ソリューションズ、(株)日立超LSIシステムズから販売されています。3社ともコンパイラパッケージに関しては同じ製品 になります。尚、ビットランがバンドルしているのは(株)日立情報制御ソリューションズから販売されている製品となっています。

パッケージの構成

1.統合開発環境(IDE): 名称:High-performance Embedded Workshop(HEW)
2.ツールチェイン: コンパイラ、アセンブラ、最適化リンカ、標準ライブラリ構築ツールの総称
3.標準ライブラリ構築ツール: 標準ライブラリを構築する為のツール
4.Install Manager: 複数のIDE を一台のPC 上に構築する「マルチインストール」をサポートするツール
5.シミュレータデバッガ: H8 マイコン用のシミュレータデバッガ
6.AutoUpdater: 統合開発環境に登録されている各コンポーネントの自動アップデートを行うツール
7.Document Updater: ルネサスマイコンに関するドキュメント類を収集するツール

HEW=コンパイラではありません。High-performance Embedded Workshop(HEW)はあくまでも統合開発環境(IDE)の名称です。

バージョン表記

     V.6.02 Relese 01
バージョン番号  リビジョン番号
リビジョンアップは無償で行えます。バージョンがアップした場合は買い替えが必要です。

バージョン6(H8C V.6)について

V.6.02 Relese 01が2009年3月現在の最新バージョンです。このバージョン6からH8SXに対応しています。出力ファイルはELF/DWARFを選択頂ければDWARF2の形式でシンボル情報が出力され、ソースレベルデバッグを行うことができます。

バージョン5(H8C V.5)について

V.5.0.06が最終バージョンです。出力ファイルはELF/DWARFを選択頂ければDWARF2の形式でシンボル情報が出力され、ソースレベルデバッグを行うことができます。

バージョン4(SHC V.4)について

V.4.0.05が最終バージョンです。このバージョン4からC++のシンボル情報に対応するためDWARF2の形式を採用しました。出力ファイル はELF/DWARFを選択頂ければDWARF2の形式でシンボル情報が出力され、ソースレベルデバッグを行うことができます。初めて採用された DWARF2なのでシンボルが、うまく出ない場合はSYSROF形式もお試しください。

それ以降のバージョンもSYSROF形式ならロードできます。(SYSROF V1とV2どちらも対応しています。)

SH用ガイオXASS-Vシリーズツール対応

2009年3月31日 (火)

ガイオ XASS-Vシリーズ(クロス開発ツール)の出力されるsaufフォーマートに対応していますので、デバッグオプションを有効に設定するだけで、ソースレベルデバッグを行うことができます。

XASS-Vシリーズについては以下のガイオ・テクノロジー株式会社のホームページを参照ください。
http://www.gaio.co.jp/

H8S用ガイオXASS-Vシリーズツール対応

2009年3月31日 (火)

ガイオ XASS-Vシリーズ(クロス開発ツール)の出力されるsaufフォーマートに対応していますので、デバッグオプションを有効に設定するだけで、ソースレベルデバッグを行うことができます。H8系ではH8Sのみ対応を確認しています。(2009年時点での情報です。)

XASS-Vシリーズについては以下のガイオ・テクノロジー株式会社のホームページを参照ください。
http://www.gaio.co.jp/

SH用exeGCCコンパイラ

2009年4月 1日 (水)

exeGCCもKPIT同様、GNUツールをベースとして販売しています。15万円位しますので、SHではKPIT GNUツールの方がいいのではないかと個人的には思っています。

弊社ではexeGCCは持っていませんので、ユーザー様のご協力により動作チェックを行いました。

2003年3月のサポート記録

このバージョンでは-gオプションを指定した場合、ELF/DWAF1フォーマットが出力されました。-gdwarf-2オプションでdwarf2のデバッグ情報を出力が出ましたが、-gオプション(DWAF1)で動作チェックを行いました。

2004年1月のサポート記録

exeGCC V3では-gオプションを指定した場合、STABSフォーマットでシンボル情報が出るので、シンボルの参照ができない。。-gdwarf-2オプションでdwarf2のデバッグ情報を出力すると正常にシンボルが参照できることを確認。

exeGCCを使用する場合は-gdwarf-2を付けてもらうようにホームページで公開しました。

SH用KPIT GNUツール対応

2009年3月31日 (火)

KPITのGNUツールは通常のgccと同じで、gccがHigh-performance Embedded Workshop(HEW)上で動作するというツールです。

よってgccコンパイラと同様、COFF、ELFフォーマットに対応しています。

KPITのGNUツールは以下のURLより入手できます。
http://www.kpitgnutools.com/

H8用KPIT GNUツール対応

2009年3月31日 (火)

KPITのGNUツールは通常のgccと同じで、gccがHigh-performance Embedded Workshop(HEW)上で動作するというツールです。

よってgccコンパイラと同様、COFF、ELFフォーマットに対応しています。

KPITのGNUツールは以下のURLより入手できます。
http://www.kpitgnutools.com/

GNUCコンパイラ(sh-coff-gcc Version 3.4.3)でローカル変数が見れないものがある

2009年3月31日 (火)

2008年5月のサポート記録より

質問:GNUCコンパイラ(sh-coff-gcc Version 3.4.3)でローカル変数が見れないものがある

MES2.4r11用ツール gcc24r11.exeを利用している場合に発生しました。
状況は以下の通りです。
・参照できるローカル変数とできない変数がある
・出力されたoutファイルを確認したところ見れない変数情報はCOFFフォーマットでoutファイル内に入っていない
・簡単なテストプログラムでは問題ない
・最適化オプションを変えてみても状況は変わらない

以上により、コンパイラの問題と考えられます。まずは、シンボル情報が出ていないので対処方法はありません。コンパイルするコード(シンボル情報の 量)が大きくなると現象が出るような感じです。ELFフォーマットのものをお使い頂ければ、このような現象は発生しないと思います。

SH用gccコンパイラ対応(GNU)

2009年3月31日 (火)

COFFフォーマットへの対応

COFF出力のものは最近少なくなっていますが、デバッガの方は最新版でもサポートしています。コンパイルの際は-gオプションを付けてシンボル情報を出力する指定をしてください。

ELF/DWARFフォーマットへの対応

ELF/DWARFについてもDWARF1、DWARF2、DWARF3と対応しています。コンパイルの際は-gオプションを付けてシンボル情報を出力する指定をしてください。

H8用gccコンパイラ対応(GNU)

2009年3月31日 (火)

SH用のgccと同様になります。

COFFフォーマットへの対応

COFF出力のものは最近少なくなっていますが、デバッガの方は最新版でもサポートしています。コンパイルの際は-gオプションを付けてシンボル情報を出力する指定をしてください。

ELF/DWARFフォーマットへの対応

ELF/DWARFについてもDWARF1、DWARF2、DWARF3と対応しています。コンパイルの際は-gオプションを付けてシンボル情報を出力する指定をしてください。

SH用GHSコンパイラ ELF/DWARF2でのビットフィールド

2009年3月31日 (火)

2008年3月のサポート記録により

質問:SH用GHSコンパイラ(ELF/DWARF2)にて構造体のビットフィールドの表示が正しくない

これはビットフィールドのシンボル情報の出方が、gccやルネサスコンパイラーと異なってアドレス境界を無視して出ているためずれて表示されます。 対処としては最新バージョンにしていただきますと、GHSコンパイラの時だけ特別な処理をするようにいたしました。コンパイラのバグか仕様かという点は、 メーカに問い合わせしていますが、回答までには至っていません。今後も同様の現象で、お客様のところで発生するようでしたら、更なる対策を検討いたします ので、お手数ですがご連絡頂けますようお願い申し上げます。

SH用GHSコンパイラ対応

2009年3月31日 (火)

SH用GHS(Green Hills Software)のコンパイラは、株式会社アドバンスド・データ・コントロールズ:ADaCより販売されています。

最初はCOFFフォーマットに対応

GHSコンパイラは初めてSH用対応ICEに対応した際の最初のお客様が使っていました。当時、ルネサス(日立)製コンパイラには今のような統合環 境がなかったため、ユーザーインターフェースを重視したエンドユーザーから指示されていました。Code Debuggerでも、まだCOFFフォーマットのお客様がいますので、現在も対応を継続しています。

ELF/DWARF(DWARF1)フォーマットにも対応

このフォーマットの場合には、スタック変数が正しく参照できない場合があります。その場合には、-gaオプションを追加してini内に以下の行を加えてください。
[SYMBOL]
BASEREG=14

ELF/DWARF(DWARF2)フォーマットにも対応

このフォーマットの場合には、DWARF1の時のような設定は不要です。

H8用 IAR Embedded Workbench対応(EWH8)

2009年3月31日 (火)

H8用 IAR Embedded WorkbenchはIARシステムズのコンパイラです。

SH用を対応した際に、V850用とこのH8用を対応しました。CPUはH8/300H、H8Sにて確認しました。フォーマットはUBROFフォー マットです。ELFフォーマットではDWARFフォーマットもサポートされているため、このフォーマットでもデバッグ可能です。但し、最新バージョンで ELF/DWARFフォーマットは確認していませんで、ご希望があればご連絡ください。

現在のバージョンでは、H8SXへの対応の記載がありません。H8SX用に拡張された命令が対応されていないということだと思います。その点はとて も残念ですが、16ビット、32ビットの次期CPUとなるRXマイコンに対応を表明しているので、H8SXは今更という感もあります。

SH用 IAR Embedded Workbench対応(EWSH)

2009年3月27日 (金)

SH用 IAR Embedded WorkbenchはIARシステムズのコンパイラです。

当時、ケニック社のCPUボードに評価版が付いていました。それを使って気に入ったユーザーは製品版の方も使っていました。そのようなユーザーから 対応して欲しいと要望が結構ありました。そのユーザーからの要求は「E10エミュレータがSYSROFフォーマットで動いているので、同じように SYSROFフォーマットに対応して欲しい。」というものでした。調べてみると、当時SHCが出力していたSYSROF Ver.2ではなくSYSROF Ver.1でした。でも簡単に対応できるだろうと考え、ユーザーと約束をして、予定通り対応版を出荷しました。

しかし、しばらくしたら別のユーザーからローカル変数が見れないとクレームが入りました。そこで、よく調べてみたところ、SYSROFフォーマットを指定した場合は、コンパイラがローカル変数のデバッグ情報を出力しないことがわかりました。それではということでELFで出力してみましたが、SHの場合はSYSROFと同じようにELFでもローカル変数のデバッグ情報がでてきませんでした。結 局、ネイティブフォーマットUBROFでないと全てのデバッグ情報は出ないとわかりました。最初に依頼したユーザーはE10エミュレータでもローカル変数 が見えないので、当然見えると思っていなかったのですが、他のユーザーは違います。IARコンパイラが使えるということで、協力会社から紹介されているの で、制限があるとは思っていませんでした。

そこで、思い切ってUBROFに対応することにしました。幸運にもSYSROFとも似ているところもあり、IARの方も積極的にサポートしてくれた ので時間をかけずに対応することができました。(それでも初期は、「ソースにこういう記述にしたら変数が見えなくなった。」など不具合で迷惑をお掛けてし まいました。)

現在の IAR Embedded WorkbenchはSHに対応していません。またSHの時と違い、ARMではELFフォーマットで全てのシンボル情報がでます。結局、ネイティブフォー マットUBROFが読めるデバッガということで、活躍できる機会は時期的にわずかでしたが、弊社がIARシステムズ社のツールに対応するベースとなりまし た。

バナースペース

ビットラン株式会社 ICE事業部

〒361-0056
埼玉県行田市持田2213

E-mail: ice-info@bitran.co.jp
TEL 048-556-9881
FAX 048-556-9591