RENESAS TOOL NEWS 2007年04月01日 : 070401/tn2
| SuperH RISC engine ファミリC/C++コンパイラパッケージ
V.9.01 Release 00へのリビジョンアップのお知らせ |
SuperH RISC engineファミリ用C/C++コンパイラパッケージをV.9.00 Release 04A
からV.9.01 Release 00にリビジョンアップしました。
1. リビジョンアップ内容
1.1 付属の統合開発環境High-performance Embedded WorkshopをV.4.02.00に更新
更新内容の詳細は、2006年12月16日発行 RENESAS TOOL NEWS 資料番号:061216/tn2
を参照ください。
1.2 付属のシミュレータデバッガをV.9.06.00に更新
更新内容の詳細は、2006年7月1日発行 RENESAS TOOL NEWS 資料番号:060701/tn2
を参照ください。
1.3 コンパイラの新機能
(1) 以下のオプションを追加しました。
(a) optimize=debug_onlyオプション
ローカル変数の情報を常に参照できるようにします。
(b) simple_float_convオプション
符号なし整数型と浮動小数点型の相互の型変換に対して、変換前の
値の範囲チェックを省略したコードを生成します。
(2) CPUコアがSH-3, SH3-DSP, SH-4, SH-4A, および SH4AL-DSPであるMCUを使用
する場合、多重割り込みやレジスタバンクを有効活用する処理をC言語で記述
できるように 、#pragma interruptの仕様追加(a), (b), および(c)、および
組み込み関数の追加(d)を行いました。
(a) #pragma interrupt <関数名>(sr_rts):
レジスタバンク切り替えおよびRTS 命令を使用
(b) #pragma interrupt <関数名>(bank):
割り込みハンドリング関数を宣言
(c) #pragma interrupt <関数名>(rts):RTS 命令を使用
(d) sr_jsr():多重割り込みを許可した後に関数を呼び出す組み込み関数
(3) 以下の既存機能について、仕様追加および変更を行ないました。
(a) CPUコアがSH-2A,およびSH2A-FPUであるMCU使用時にdivision=cpu=inline
およびdivision=cpu=runtimeオプションを使用できるようにしました。
(b) CPUコアがSH-4であるMCU使用時にキャッシュブロックを操作するための
組み込み関数ocbi(), ocbp(), および ocbwb()を、使用できるように
しました。
(c) #pragma inline宣言した関数を、inlineオプションに関係なく
インライン展開するように変更しました。
(d) subcommandオプションとlistfileオプションを同時に使用した場合に、
subcommandオプションで選択したファイルの内容をコンパイルリスト
に出力するよう変更しました。
(4) FPUを持たないCPUに対して、単精度の浮動小数点数用の数学関数sinf(),
cosf(), tanf(), expf(), logf(), sqrtf(), およびatanf()のオブジェクト
サイズを削減し、かつ演算速度および演算精度を向上しました。
1.4 最適化リンケージエディタの新機能
(1) オプションps_checkを新規追加しました。
ps_checkオプションを使用することにより、32bitの仮想アドレス空間を
サポートするマイコンにおいて、物理アドレス空間上でのオブジェクト
コードの重なりを検出することができます。
(2) オプションbyte_countを新規追加しました。
byte_countオプションを使用することにより、インテルHEX形式ファイル
のデータレコードの最大バイト数を変更することができます。
(3) MCUの空きROMエリアへ乱数を充填する機能を追加しました。
下記形式のファイルの空きエリアに、乱数を埋め込むことができる
space=randomオプションを新規追加しました。
・Sタイプファイル
・インテルHEX形式ファイル
・バイナリファイル
(4) メモリ使用量を削減するオプションmemory=lowが、ライブラリファイル
作成時にも使用できるようになりました。
1.5 改修内容
1.5.1 統合開発環境High-performance Embedded Workshopについて、以下の
RENESAS TOOL NEWSで報告した問題を改修しました。
(1) 2007年3月16日発行 RENESAS TOOL NEWS 資料番号:070316/tn1
(2) 2006年4月16日発行 RENESAS TOOL NEWS 資料番号:RSO-HEW-060416D
(3) 2005年11月16日発行 RENESAS TOOL NEWS 資料番号:RSO-HEW-051116D
(4) 2005年10月16日発行 RENESAS TOOL NEWS 資料番号:RSO-HEW_2-051016D
(5) 2005年7月16日発行 RENESAS TOOL NEWS 資料番号:RSO-HEW-050716D
1.5.2 コンパイラ
(1) 2007年3月1日発行 RENESAS TOOL NEWS 資料番号:070301/tn3
で報告した3点の問題を改修しました。
(2) C4098、およびC4099インターナルエラーが発生する場合がある
問題を改修しました。
1.5.3 最適化リンケージエディタ
(1) レジスタ退避および回復の最適化機能を使用している場合に、誤った
オブジェクトコードを生成する問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
(a) マイコン種別が、SH-2AかSH2A-FPUのいずれかである。
(b) コンパイル時にgoptimizeオプションを選択している。
(c) リンク時に、レジスタ退避および回復の最適化機能(例えば、
optimize=registerオプション)を使用している。
(d) 下記いずれかの条件に該当している。
(d-1) コンパイル時にsizeオプションを選択している。
(d-2) コンパイルにより、4byteサイズ命令位置へ分岐する命令が
生成される。
補足:
(d-2)に該当するかどうかは、コンパイルリスト(.lst)ファイルから確認
できます。コンパイルリストを生成するには、コンパイル時に、
listオプションshow=objectを選択してください。
(2) 下記3つのオプションのパラメータであるファイル名やフォルダ名が
文字コードに0x7cを含む文字(たとえば"ポ")を含む場合、誤って
エラーL3300となり、リンクできない問題を改修しました。
・inputオプション(入力オブジェクトファイル選択)
・libraryオプション
・binaryオプション
(3) 未参照シンボル削除の最適化オプションoptimize=symbol_deleteの使用
によって、内部エラーが発生する、もしくは、誤ったオブジェクトコード
が生成されることがある問題を改修しました。
問題の発生条件:
以下の条件をすべて満たす場合に発生することがあります。
(a) リンカのバージョンが V.9.00.00 以降*である。
(b) コンパイル時に最適化オプションoptimize=1を使用している。
(c) コンパイル時にgoptimizeオプションを選択している。
(d) コンパイル後に、サイズが0byteになる関数が存在する。
(e) リンク時に、未参照シンボル削除の最適化オプション
optimize=symbol_deleteを使用している。
(f) (e)の最適化によって、(d)の関数が削除される。
補足:
削除された関数とそのサイズは、リンケージリストファイル(.map)から
確認できます。リンケージリストを生成するには、リンク時に、list
オプションshow=symbolを選択してください。
* バージョン確認方法
(a) 統合開発環境High-performance Embedded Workshopの
メニュー「ツール」->「アドミニストレーション」を選択する。
(b) 開いたツールアドミニストレーションダイアログボックスの
「登録済コンポーネント」リストの「Toolchains」フォルダの中から
使用中のコンパイラパッケージを選択し、プロパティボタンを
クリックする。
(c) 表示されたプロパティダイアログボックスの情報タブを選択すると
バージョンが表示される。
表示例: Optimizing Linkage Editor (V.9.02.00)
(4) 下記2つの機能を同時に使用した場合に、誤ってエラーL2330となること
がある問題を改修しました。
・コンパイラのmapオプション
・リンカの未参照シンボル削除の最適化オプション
optimize=symbol_delete
(5) リンカが生成するインテルHEX形式ファイルの内容について、下記3点を
変更しました。
・04レコードを出力する際に、これまで同時にベースアドレス0の02
レコードを出力してきましたが、02レコードを出力しないように
しました。
・スタートアドレスを表すレコード(03レコードと05レコード)の出力
位置を、エンドレコード(01レコード)の直前へと変更しました。
・03レコードでのスタートアドレス表現が、インテルHEX形式仕様に
準拠していなかった問題を改修しました。
補足:
インテルHEX形式ファイルの内容については、下記を参照してください。
SuperH RISC engine C/C++コンパイラ、アセンブラ、
最適化リンケージエディタユーザーズマニュアル
18.1.2 インテルHEXファイル形式
2. アップデートと購入方法
2.1 アップデート
無償でオンラインアップデートできます。
開発環境ホームページからダウンロードしてください(4月5日に公開予定)。
日本語版
英語版
2.2 新規購入
ご注文の際には、以下の情報を最寄りのルネサス販売または特約店まで
ご連絡ください。
価格については最寄りのルネサス営業または特約店にお問い合わせください。
製品名:R0C40700XSW09R
バージョン番号: V.9.01
リリース番号: Release 00
製品の使用環境: Windows XP、Windows 2000