H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ
特長
機器組込み向けプログラムの開発環境として、最適化C/C++コンパイラ、アセンブラ、最適化リンケージエディタなどのTool chainを提供しています。詳細は下記をご覧下さい。
* NEWは、H8SX,H8S,H8ファミリ用 コンパイラパッケージVer.7からの新機能になります。
C/C++ コンパイラ
- H8SX,H8S,H8ファミリの全CPUに対するオブジェクト生成が可能
- ANSI仕様C/C++言語に準拠
- C99言語仕様(ISO/IEC 9899:1999、可変長配列を除く)サポート
- C99ライブラリサポート
* C99対応はH8SX、H8Sファミリを対象にしたコンパイルにのみ対応しています。H8ファミリを対象にしたコンパイルでは、C99に対応していません。
- H8SX,H8S,H8ファミリマイコン 用拡張言語機能
- 組み込み関数
- セクションアドレス演算子
- #pragma拡張子
- インフォメーションメッセージ制御
- コンパイルリスト表示改善
- ELF/DWARF2フォーマットサポート
- Embedded
- C++仕様のクラスライブラリ
| オプション、#pragma拡張子追加・変更 NEW |
| オプション | 説明 |
| _ _ptr16 | 2byteサイズポインタが使用可能。(H8SXのみ) |
| _ _asm | C/C++ソースプログラムの中にアセンブリ言語を記述することが可能。(H8SXのみ) |
| #pragma bit_order | ビットフィールドメンバの詰め込み方を指定可能。 |
| _ _indirect_ex | 拡張メモリ間接呼び出しとなる関数を宣言。(H8SXのみ) |
| noline | プリプロセッサ展開時の#lineの出力を抑止。 |
| libraryオプション | memcpyとstrcpyの二つのライブラリ関数をインライン展開可能。(H8SXのみ) |
| change_messageオプション | メッセージのエラーレベルを変更。 |
| sbrオプション | 8bit絶対アドレス領域の配置アドレスを指定が可能。(H8SXのみ) |
| cpu=rs4 | RS4マイコンのコードを生成。 |
| divs_inst | 除算を常にdivs命令でコード展開する。(H8SXまたはAE5のみ) |
| align=4 | 境界調整数・バウンダリ調整指定。 *H8Sも指定可能になりました。 |
| lang=c99 | C99言語プログラムのコンパイル可能。また、lang=c99オプション指定時にc89stdioオプションを指定することにより従来使用していたstdio関連が使用可能。 NEW |
| lang=cpp | オプション指定時にc99stdioを指定することによりC++プログラムでC99のstdio関連が使用可能。 NEW |
| outcode=utf8,utf8 | UTF-8コードが使用可能。 NEW |
| 組込み関数追加 NEW |
| 説明 | 組込み関数 |
| H8SXの64bit乗算 | mulsu, muluu |
| H8SXのブロック転送命令 | movmdb, movmdw, movmdl, movsd |
| ブロック転送命令組み込み関数強化 | eepmovb, eepmovw, eepmovi |
| MOVFPE命令組み込み関数見直し | movfpe |
| デフォルトinline関数の展開抑止機能をサポート(C++言語コンパイル時) NEW | inline |
アセンブラ
- H8SX,H8S,H8ファミリの全CPUに対する命令サポート
- ファイルインクルード機能
- 条件付アセンブリ機能
- マクロ機能
- 構造化アセンブリ機能
- ELF/DWARF2フォーマットサポート
| オプション追加・変更 NEW |
| オプション | 説明 |
| cpu=rs4 | rs4のオブジェクトを生成。 |
| #pragma __naked_asm | レジスタ退避/回復抑止機能サポート。 NEW |
最適化リンケージエディタ
- H8SXのオブジェクトファイルの入力をサポート
- デバッグ情報の圧縮機能
- モジュール間最適化機能
- 複数ロードモジュール選択
- リロケータブルELF形式
- アブソリュートELF形式
- Sタイプ形式
- HEX形式
- バイナリ形式
- ライブラリファイルの作成、編集が可能
- リストファイル出力による解析(シンボル参照回数出力)
| オプション追加・変更 NEW |
| オプション | 説明 |
| byte_count | インテルHEX形式ファイルのデータレコードの最大バイト数を変更する。 |
| space=random | 空きエリアへ乱数を充填することができる。 充填可能ファイル形式
|
| memory=low | ライブラリファイル作成時にも使用可能に。 |
| total_size | 標準出力へ以下の種別ごとのセクション合計サイズを出力できます。
|
| show=total_size | リンケージリストへ以下の種別ごとのセクション合計サイズを出力できます。
|
| RTs_file | 特定エミュレータ向けの情報ファイルを出力。 |
| CRc | リンク時に指定範囲のCRC(Cyclic Redundancy Check)演算を行い、計算結果を指示したアドレスのメモリに埋め込み。 |
| cpu=stride | リンクオプションcpuのアドレス範囲の情報を元に、セクションを自動的に分割して割り付けることが可能。 NEW |
| contiguous_section | セクションを分割して割り付けるときに、分割したくないセクション(ROM-RAM転送するセクション)を指定することにより、配置可能な別メモリ領域に割り付けが可能。 NEW |
| show=all | showオプションのサブオプションにallを追加。全てのリスト内容の出力を有効にします。 NEW |
標準ライブラリ構築ツール
- プロジェクトごとに標準ライブラリを生成することで、標準ライブラリのカスタマイズが可能
- malloc確保サイズ単位の可変化(RAM容量の節約が可能)
- openファイル数可変化(RAM容量の節約が可能)
- reentオプション指定でリエントラントライブラリが生成可能
フォーマットコンバータ
- 旧フォーマットからELFフォーマットへの変換
- ELFフォーマットから旧フォーマットへの変換
Japan 日本語

![マイコン内蔵周辺I/Oドライバ本体と設定関数が、簡単なGUI操作で自動生成できます。[Peripheral Driver Generator]](/media/products/tools/pdg_logo_enter.jpg)


