Everything
5. 注意事項

下記の項目に該当する場合,変換後のCソースはCC-RLで正しくコンパイルできないことがあります。

表 5.1

注意事項

項番

項目

CcnvCA78K0Rの動作

変換結果に対する

CC-RLの動作

参照先

1

ネスト構造のコメント文がある場合

正常に変換できない場合があります。

コメントの範囲が不正となります。

3.

2

##演算子等の使用により,キーワードを検出できない場合

メッセージを出力せず,変換しません。

エラーE0520065等になります。

3.

3

CA78K0R用のCソースが,ラージ・モデル用である場合

通常のCソースとして変換します。標準ライブラリの変換が不正となります。

CC-RLにラージ・モデルが無いため,__near, __farキーワードを省略したポインタの型が不正となります。

3.

3.12

4

#pragma sectionで,セクション名に「?」が含まれる場合

メッセージを出力せず,変換しません。

エラーE0520014になります。

3.4

5

#pragma sectionのセクション名に,CC-RLには存在しないセクション名を指定している場合

メッセージを出力せず,変換しません。

ワーニングW0523037を出力し,#pragma指令を無視します。セクションの配置に失敗し,期待した動作とならない可能性があります。

3.4

6

__asm("文字列")中の文字列に\nや\tを使用している場合

制御文字をそのまま出力します。

エラーE0550249になります。

3.5

7

#asm~#endasm内のアセンブリ記述のコメント(“;”以降の記述)内に「/*」が含まれている場合

アセンブリ記述のコメントをそのまま出力します。

アセンブリ記述のコメント(“;”)よりもC記述のコメント(“/*”)を優先し,コメントの範囲が不正となります。

3.5

8

__asm( )または#asm~#endasmのアセンブリ記述にラベルが含まれる場合

メッセージを出力します。

エラーE0550213になります。

3.5

CC-RLユーザーズ・マニュアル #pragma inline_asm の[制限]

9

ファイル内に,同一関数に対する#pragma interruptとキーワード__interruptの記述がある場合

それぞれ,#pragma interruptに変換します。

#pragma指令が重複し,エラーE0523006になります。

3.6

10

__interrupt, __interrupt_brk, __rtos_interruptの関数宣言の引数を省略した場合

#pragma指令を出力し,関数宣言はそのまま出力します。

void型の指定がないため,エラーE0523008になります。

3.6

3.7

11

型名,関数名,変数名等を取得する箇所において,マクロやtypedefなどを使用していた場合

メッセージを出力し,変換せずに出力します。

エラーE0520020, E0520065等になります。

3.6

3.7

3.9

12

ファイル内に,同一関数に対する#pragma rtos_interruptとキーワード__rtos_interruptの記述がある場合

それぞれ,#pragma rtos_interruptに変換します。

#pragma指令が重複し,エラーE0523006になります。

3.7

13

__directmapで,異なる変数に対して同一アドレスを指定している場合

メッセージを出力しません。

エラーE0541854になります。

3.9

CC-RLユーザーズ・マニュアル #pragma address の[制限]