CC-RHの変更履歴
ルネサス統合開発環境「CubeSuite+」は、2014年10月1日リリースのV3.00.00より、製品名を「CS+」に変更いたしました。
V2.06.01 → V2.06.02 への変更点 (2024/8/5)
1. 注意事項の改修
以下の注意事項を改修しました。
- Linux用コンパイラの使用に関する注意事項 (No.39)
V2.06.00 → V2.06.01 への変更点 (2024/4/22)
1. Linux OSサポート
動作環境にLinux OSを追加しました。
動作確認環境:
Ubuntu 20.04 LTS – 64bit
V2.05.00 → V2.06.00 への変更点 (2024/1/22)
1. -Pオプションの改善
-Pオプション指定時にCソース・ファイル以外を入力したとき、プリプロセス処理でエラーが発生する場合がありました。
これを、入力ファイルの拡張子をチェックしてCソース・ファイルのみプリプロセス処理の対象にするよう改善しました。
2. -ALLOW_OPTIMIZE_ENTRY_BLOCKオプションの追加
リンカに、実行プログラムのエントリ・アドレスを最適化対象に含める -ALLOW_OPTIMIZE_ENTRY_BLOCKオプションを追加しました。
本オプションを使用することにより、リンク時最適化の適用範囲が拡大される場合があります。
3. -ROMオプションの仕様変更
リンカの-ROMオプションにワイルドカードを指定できるように仕様変更しました。
V2.04.01 → V2.05.00 への変更点 (2023/1/20)
1. -crcオプションの複数指定
-crcオプションを複数同時に指定できるようになりました。複数の領域のCRC計算を1度に行うことが可能です。
2. va_startマクロ使用時のメッセージの抑止
va_startマクロ使用時に本来不要な警告(W0520549)を出力する場合がありましたが、これを抑止しました。
V2.04.00 → V2.04.01 への変更点 (2022/9/20)
1. -Xpatch=br_jrオプションの追加
コンパイル・オプション-Xpatchにパラメータ"br_jr"を追加しました。
本パラメータを指定した場合、br disp9命令、jr disp22命令、およびjr disp32命令の生成を抑止します。
-Xcpu=g3kh指定時以外は無視されます。
2. -RESERVE_PREFETCH_AREAオプションの追加
リンク・オプションに-RESERVE_PREFETCH_AREAオプションを追加しました。
本オプションを指定した場合、指定したセクションの末尾から16バイトの領域をゼロで埋めます。
3. その他の変更・改善
ライブラリ使用時に発生するE0562436エラーを修正しました。
V2.03.00 → V2.04.00 への変更点 (2022/1/20)
1. -misalignオプションの追加
ハードウェアのミスアライン・アクセス機能を利用するコードを生成するための -misalignオプションを追加しました。
2. -Xpatch=brオプションの追加
オプション-Xpatchにパラメータ"br"を追加しました。
本オプションを指定しない場合、特定の条件を満たすbr disp9命令の生成を抑止します。
3. .dbl_size疑似命令の追加
コンパイラの-Xdbl_sizeオプションの情報をオブジェクトに埋め込む .dbl_size疑似命令を追加しました。
本疑似命令を使用すると、-Xdbl_sizeオプションの指定が異なるモジュールをリンクしようとしたときにエラーが発生します。
4. シンボル名に指定できる文字の追加
シンボル名に'$'を含めることが可能になりました。ただし、シンボル名の先頭には使用できません。
5. 出力メッセージの改善
コンパイラライセンスに関するメッセージに、対象のライセンスや対処方法を追加しました。
6. 変数の記憶域期間の変更
記憶域クラス指定子staticを使って定義した変数の参照を効率化する機能を強化しました。
7. 注意事項の改修
以下の5件の注意事項を改修しました。
- 構造体型または共用体型の引数の使用に関する注意事項(No.34)
- ポインタ型のキャストの使用に関する注意事項(No.35)
- 無名共用体または無名構造体の使用に関する注意事項(No.36)
- アドレスを記憶領域に書き込んだ後で、読み出して参照する場合の注意事項(No.37)
- 静的変数の参照方法に関する注意事項(No.38)
V2.02.00 → V2.03.00 への変更点 (2021/1/20)
1. -stuffオプションの追加
変数をアライメント数に応じたセクションに分けて配置する-stuffオプションを追加しました。
2. -Oalignオプションの追加
変数の整列条件の変更を伴う最適化を行う-Oalignオプションを追加しました。
3. #pragma sectionの機能拡張
以下の配置先セクション指定を、互いの指定の影響を受けずに個別に行うことが可能になりました。
- const型変数および文字列リテラル
- 非const型変数
4. -VERBOSEオプションの追加
リンク時の詳細情報を表示する-VERBOSEオプションを追加しました。CRC演算の結果および出力位置アドレスを表示できるようになりました。
5. 最適化の強化
組込関数や集成体のコピーをまたいでメモリアクセス命令を移動することで最適化を適用しやすくなるよう改善しました。
6. 注意事項の改修
以下5件の注意事項を改修しました。
- 2バイトの領域へ定数値ゼロを書き込む場合の注意事項(No.29)
- 末尾呼び出し最適化に関する注意事項(No.30)
- -Xintermoduleオプションの使用に関する注意事項(No.31)
- -picオプションの使用に関する注意事項(No.32)
- switch文に関する注意事項(No.33)
V2.01.00 → V2.02.00 への変更点 (2020/1/20)
1. MISRA-C:2012ルールによるチェック機能の拡充 【professional】
MISRA-C:2012ルールによりソース・チェックを行う-Xmisra2012オプションの引数にルール8.13、ルール14.2、ルール14.3を指定できるようにしました。
2. 関数内での#pragma section記述の対応
関数内で#pragma sectionを記述できるようにしました。
3. 近似計算コードの生成
浮動小数点演算に対して近似計算コードを生成するオプションを追加しました。
4. 生成コードの改善
ループ処理、及び三項式に対する生成コードを改善しました。
5. ライブラリ作成時の重複モジュール名の許可
ライブラリ作成時に重複するモジュール名の指定を許可するオプションを追加しました。
6. 注意事項の改修
以下4件の注意事項を改修しました。
- ループ内の比較式に関する注意事項 (No.25)
- 数学ライブラリ関数atanの注意事項 (No.26)
- #pragma block_interrupt指令の注意事項 (No.27)
- -Xalias=ansiオプションの使用に関する注意事項 (No.28)
V2.00.00 → V2.01.00 への変更点 (2019/1/21)
1. 複数ファイルにまたがるMISRA-C:2012チェックの追加 【professional】
複数ファイルにまたがるMISRA-C:2012ルールのソース・チェックを行うオプションを追加しました。
2. MISRA-C:2012ルールによるチェック機能の拡充 【professional】
MISRA-C:2012ルールによりソース・チェックを行う-Xmisra2012オプションの引数にルール8.5とルール8.6を指定できるようにしました。
3. リンク時最適化
リンク時に未使用の関数や変数を削除するリンク時最適化を追加しました。
4. ライブラリ・ファイル入力時のセクション名の変更機能
リンク時に入力するライブラリ・ファイル内の、セクション名やシンボル名を変更できるリンク・オプションを追加しました。
5. C99標準ライブラリ関数
一部のC99用標準ライブラリ関数に対応しました。
6. 注意事項の改修
以下2件の注意事項を改修しました。
- 浮動小数点型から64bit 整数型への型変換を含んだ定数式に関する注意事項 (No.23)
- -Xmisra2012 オプション指定時の注意事項 (No.24)
V1.07.00 → V1.07.01 への変更点 (2019/1/21)
1. 注意事項の改修
以下6件の注意事項を改修しました。
- 初期化子の指定がある配列型、構造体型、または共用体型のstatic 変数宣言に関する注意事 (No.19)
- 予約シンボルを使用した場合のアセンブラの注意事項 (No.20)
- -Xmulti_level オプション指定時に自動変数の初期化子が配置されるセクションに関する注意事項 (No.21)
- -store_reg オプションに関する注意事項 (No.22)
- 浮動小数点型から64bit 整数型への型変換を含んだ定数式に関する注意事項 (No.23)
- -Xmisra2012 オプション指定時の注意事項 (No.24)
V1.07.00 → V2.00.00 への変更点 (2018/7/20)
1. G4MHコアの命令セット
G4MHコアの命令セットをサポートしました。
2. 拡張浮動小数点演算命令
割り込み関数内で、
拡張浮動小数点システム・レジスタの退避・復帰コードを出力するコンパイル・オプションを追加しました。
3. レジスタ・バンク機能
レジスタ・バンク機能を使用する割り込み関数内で、
退避モードに応じたレジスタの退避・復帰コードを出力するコンパイル・オプションを追加しました。
4. G4MHコアの割り込み/例外処理
#pragma interrupt 指令で指定する割り込み仕様にG4MHコアの割り込み/例外を追加しました。
5. G4MHコアの組み込み関数
G4MHコアの命令セットを使用した組込み関数を追加しました。
6. デバッグ命令の組み込み関数
デバッグ命令用の組込み関数を追加しました。
7. C99標準ライブラリ関数
一部のC99用標準ライブラリ関数に対応しました。
8. 標準ライブラリ関数のインライン展開
一部の標準ライブラリ関数を呼び出すコードを生成する際、
関数呼び出しにするかインライン展開するかを制御するコンパイル・オプションを追加しました。
9. 浮動小数点演算に対する実行効率を重視したコード生成
浮動小数点演算に対して実行効率のよい演算コードを生成するコンパイル・オプションを追加しました。
10. 浮動小数点数の逆数演算に対するコード生成
浮動小数点数の逆数演算に対してrecipf命令を生成するコンパイル・オプションを追加しました。
11. 不正な間接関数呼び出し検出機能の拡充【professional】
不正な間接関数呼び出し検出で用いる関数リストからライブラリファイル(*.lib)を除外できるようにしました。
12. バイナリ・ファイルに対するCRC演算結果出力
バイナリ・ファイルにCRC演算結果を出力できるようにしました。
13. ヘキサ・ファイルの先頭ロード・アドレス変更
インテル拡張ヘキサ・ファイルまたはモトローラ・S タイプ・ファイルを出力する際に、
ファイル上の先頭ロード・アドレスを変更する機能を追加しました。
14. 注意事項の改修
以下4件の注意事項を改修しました。
- 初期化子の指定がある配列型、構造体型、または共用体型のstatic変数宣言に関する注意事項 (No.19)
- 予約シンボルを使用した場合のアセンブラの注意事項 (No.20)
- -Xmulti_levelオプション指定時に自動変数の初期化子が配置されるセクションに関する注意事項(No.21)
- -store_regオプションに関する注意事項 (No.22)
V1.06.00 → V1.07.00 への変更点 (2018/1/22)
1. C99規格
言語仕様としてC99規格をサポートしました。
2. MISRA-C:2012ルールによるソース・チェック機能の拡充 【professional】
ソース・チェック可能なMISRA-C:2012ルール数を111から119に拡充しました。
3. 不正な間接関数呼び出し検出機能【professional】
不正なアドレスへの間接関数呼び出しを検出する機能をサポートしました。
4. PIC/PID機能
関数・定数・変数をリンク時とは異なる任意のアドレスに配置できるPIC/PID機能をサポートしました。
5. 最適化強化
最適化を強化し、生成コードの性能を改善しました。
6. メモリ使用量の上限拡張
CC-RHが使用できるホストPC上のメモリ量を拡張しました。
- 32bit/64bit OS とも2G byte 【V1.06.00 以前】
- 32bit OS の場合は3G byte、64bit OS の場合は4G byte 【V1.07.00 以降】
7. 即値を用いた自動変数の初期化
構造体型や配列型の自動変数の初期化を即値で行うコンパイル・オプションをサポートしました。
8. メッセージ制御機能
警告メッセージをエラーメッセージに変更するためのコンパイル・オプションを追加しました。
9. ヘキサ・ファイルのレコード長固定機能
インテル拡張ヘキサ・ファイル(.hex)とモトローラ・Sタイプ・ファイル(.mot)の出力アドレスを、
指定したアライメントで整合し、固定レコード長で出力するリンク・オプションを追加しました。
10. 注意事項の改修
以下4件の注意事項を改修しました。
- pow関数の戻り値が不正となる注意事項(No.9)
- switch文中のラベルへのgoto文を使用している場合の注意事項(No.16)
- FPU命令を含む数学ライブラリ関数に関する注意事項(No.17)
- ループ制御変数の終了条件が定数のループ文に関する注意事項(No.18)
V1.05.00 → V1.06.00 への変更点 (2017/7/20)
1. MISRA-C:2012ルールによるソース・チェック機能の拡充 【professional】
ソース・チェック可能なMISRA-C:2012ルール数を103から111に拡充しました。
2. 制御レジスタ更新時の同期化機能 【professional】
RH850の制御レジスタの更新箇所の検出、及び、複数の制御レジスタを連続して更新する箇所に同期化処理を挿入する機能をサポートしました。
3. 最適化強化
生成コードの性能を改善しました。
4. CAN通信時間計測ソリューション対応
CS+でE2 エミュレータを使用したCAN 通信時間計測ソリューション機能を使用するため、
-insert_dbtag_with_label オプションを追加しました。
本オプションはCAN 通信時間計測ソリューション機能を使用する際にCS+が使用するオプションであり、
ユーザーがビルド時に指定するものでありません。
5. 配列初期値データの出力方法変更
配列型の初期値データをアセンブリ・ソース上で出力する際、1 行にまとめて出力するように変更しました。
この変更により、ビルド時の解析処理が削減され、ビルド時間を短縮することができます。
6. 特殊シンボルの追加
セクションの先頭、及び、セクションの終端にリンカが生成する特殊シンボルに、C ソースで参照できる形式を追加しました。
7. リンク・マップ・ファイルの仕様変更
リンク・マップ・ファイルの ”Mapping List” に再配置属性のATTRIBUTE 欄を追加しました。
8. モトローラ・Sタイプ・ファイルのエンドレコード指定
モトローラ・S タイプ・ファイルのエンドレコードを指定するリンカ・オプション -end_record を追加しました。
9. 無償評価版使用時メッセージの番号追加
無償評価版を使用してビルドする際に出力していたメッセージに対し、番号W0561016, W0561017 を付与しました。
10.リンク・エラーのメッセージ変更
リンク・エラー ”F0563102” のメッセージに、ファイル名を出力するようにしました。
11. ライセンスの認証方式の改善
ライセンスの認証方式を改善し、ビルド時間を短縮しました。
12. 注意事項の改修
以下1件の注意事項を改修しました。
- #pragma pmodule 拡張言語の注意事項(No.15)
V1.04.00 → V1.05.00 への変更点 (2017/1/20)
1. 半精度浮動小数点数のサポート【professional】
半精度浮動小数点数をサポートしました。
浮動小数点数データが大量に存在するアプリケーションに対してデータサイズの削減が可能となります。
2. MISRA-C:2012ルールによるソース・チェック機能の拡充 【professional】
ソース・チェック可能なMISRA-C:2012ルール数を82から103に拡充しました。
3. 最適化強化
生成コードの性能を改善しました。
4. コンパイル・オプション -g_line の追加
最適化を適用した際に、ソース・デバッグ用情報の正確度を向上するコンパイル・オプション-g_lineを追加しました。
5. #pragma inline_asm 指令の拡張
#pragma inline_asm指令で指定した関数内に.public疑似命令を記述できるようにしました。
6. 組み込み関数__stcw の仕様変更
組み込み関数__stcwの返却型をvoid型からlong型に変更しました。
7. リンク・オプション-subcommand の仕様変更
サブコマンド・ファイル内で-subcommandオプションを指定できるようにしました。
8. リンク・オプション-map/-list の仕様変更
-mapオプションと-listオプションの仕様を変更し、外部変数アクセス最適化の適用範囲を拡大しました。
9. ライセンスの認証方式
ライセンスの認証方式を変更しました。
V1.05.00以降を使用する場合は、ライセンス・マネージャV2.00.00以降をインストールしてください。
10. 注意事項の改修
以下4件の注意事項を改修しました。
- 組み込み関数“__stcw( )”の注意事項(No.10)
- 2回以上のループを含むプログラムに関する注意事項(No.12)
- 配列要素、構造体メンバまたは共用体メンバへの値の更新が反映されない注意事項(No.13)
- 値が1ずつ減少する演算式を含むループの注意事項(No.14)
V1.03.00 → V1.04.00 への変更点 (2016/7/21)
1. 最適化強化
生成コードの性能を改善しました。
2. MISRA-C:2012ルールによるソース・チェック機能の拡充 【professional】
ソース・チェック可能なMISRA-C:2012ルール数を41から82に拡充しました。
3. 動的メモリ管理関数のセキュリティ強化 【professional】
ヒープ領域の解放時に、不正操作を検出する機能を追加しました。
4. 排他制御チェック機能の追加
CS+で排他制御チェック機能を使用するための機能を追加しました。
5. 注意事項の改修
以下3件の注意事項を改修しました。
- 条件アセンブル制御命令後に外部ラベルを定義した場合の注意事項 (No.7)
- パッキングした構造体または共用体のメンバを初期化子に指定した場合の注意事項 (No.8)
- 最適化の適用範囲に関する注意事項 (No.11)
V1.02.00 → V1.03.00 への変更点 (2015/10/20)
1. standard/professional版への移行
CC-RHを以下の2つのグレードに分けました。
- standard版
- professional版
2. G3KHコア対応
-Xcpuオプションの引数にg3khを指定出来るようにしました。
3. -Xalign4オプションの拡張
-Xalign4オプションを拡張し、ループの先頭アドレス等もアライメントを4に指定できるようにしました。
4. CRC演算機能
CRC演算を行い、演算結果を特定アドレスに出力する-CRCオプションを追加しました。
5. -Xpatchオプションの拡張
G3Mコアを搭載したマイコン向けに-Xpatchオプションを拡張しました
6. 注意事項の改修
以下5件の注意事項を改修しました。
- アセンブリ命令のオペランドに即値を指定した場合の注意事項 (No.2)
- ラベルの定義と参照が同一アセンブル単位にある場合の注意事項 (No.3)
- アセンブリ命令のベースレジスタ省略時の注意事項 (No.4)
- 仕様外のアセンブリ記述時の注意事項 (No.5)
- 外部変数アクセス最適化で4M バイト以上離れた変数を参照する場合の注意事項 (No.6)
7. MISRA-C:2004ルールによるソース・チェック機能
MISRA-C:2004ルールによるソース・チェック機能はprofessional版のライセンス登録時のみ使用できるようにしました。
8. MISRA-C:2012ルールによるソース・チェック機能
MISRA-C:2012ルールによりソース・チェック機能を追加しました。
本機能はprofessional版のライセンス登録時に使用できます。
9. スタック破壊検出機能
スタック破壊を検出する機能を追加しました。本機能はprofessional版のライセンス登録時に使用できます。
V1.01.00 → V1.02.00 への変更点 (2015/03/05)
1. G3MHコア対応
-Xcpuオプションの引数にg3mhを指定出来るようにしました。
2. double型変数の精度を指定するオプション追加
double型およびlong double型変数の精度を指定する-Xdbl_sizeオプションを追加しました。
3. 浮動小数点数の丸めモードを選択するオプション追加
浮動小数点定数の丸めモードの指定を行う-Xroundオプションを追加しました。
4. デフォルト配置セクションを変更するオプション追加
デフォルト配置セクションを変更する-Xsectionオプションを追加しました。
5. 関数の先頭アドレスをアライメント4に指定するオプション追加
関数の先頭アドレスのアライメントを4 に指定する-Xalign4オプションを追加しました。
6. リンク・マップ・ファイルへの構造体メンバのアドレス出力
リンカの-showオプションの引数にstructを追加しました。
7. 既定義マクロの追加
コンパイル時およびアセンブル時に使用可能な既定義マクロを新たに追加しました。
8. 制限事項の改修
以下、1件の制限事項を改修しました。
- 変数に一致と大小比較判定を両方行う場合の注意事項 (No.1)
9. その他の仕様変更
-Xasm_option=-Xasm_far_jumpオプション の仕様を変更しました。
また、jmp命令のオペランドに相対ラベルを指定した場合の仕様を変更しました。
V1.00.01 → V1.01.00 への変更点 (2014/07/16)
1. パイプライン最適化の強化
パイプライン最適化を強化しました。パイプライン最適化を有効にしている場合に実行速度が向上する可能性があります。
2. 構造体のコピー処理の改善
1バイト単位でコピーしていた構造体のコピー処理を、アライメントに応じたサイズでコピーするように変更しました。
これにより構造体コピーの実行速度が向上します。
3. 数学関数の高速化
以下の数学関数を高速化しました。
- sinf()
- cosf()
- tanf()
- asinf()
- atanf()
- acosf()
4. ランタイム関数の高速化
long long 型の除算および剰余算のランタイム関数を高速化しました。
5. 組み込み関数の仕様変更
以下の組み込み関数でselID に指定できる値の範囲を0~7 から0~31 に拡大しました。
- __ldsr_rh
- __stsr_rh
6. -paddingオプションの仕様拡張
セクションの終端にパディング・データを埋め込むリンカオプション”-padding”の仕様を拡張しました。
V1.00.01 ではテキストデータ、const 変数、および初期値がある変数のセクションのみを対象としてパディング・データを
埋め込んでいましたが、V1.01.00 では初期値がない変数のセクションも対象とします。