3.13 CC-RLオプション-convert_ccとの変換仕様差分

CC-RLのオプション-convert_cc指定時と,CcnvCA78K0Rによる変換とで動作が異なる拡張機能について,差分を示します。

 

表 3.7

CC-RLオプション-convert_ccと異なる動作

CA78K0Rの拡張機能

オプション-convert_cc指定時の動作

CcnvCA78K0Rの変換

__boolean

-ansiオプション指定なしの場合は_Bool,-ansiオプション指定ありの場合はcharとして扱います。

常に_Boolに変換します。

CC-RLの-ansiオプション指定時は_Boolが使用できませんので,手動で型を変更してください。

__interrupt

__interrupt_brk

__rtos_interrupt

同名関数に対する#pragma指令が既に存在する場合は,キーワードを無視します。

関数宣言の前に#pragma指令を追加します。同名関数に対する#pragma指令が既に存在する場合は,変換後に#pragma 指令が重複してCC-RLではコンパイル・エラーとなります。その場合は,キーワードを変換した#pragma指令を削除してください。

__asm( )

通常の関数呼び出しと認識します。

手動でinline_asm関数に修正する必要があります。

各__asm( )に対して#pragma inline_asmと関数定義を出力します。

__asm( )呼び出しは,新しく生成した関数呼び出しに変換します。

#pragma sfr

CC-RLのオプション-preinclude でiodefine.hをインクルードしてください。

ファイルの先頭に#include “iodefine.h”を挿入します。

#asm 〜 #endasm

構文エラーとなります。

手動でinline_asm関数に修正する必要があります。

各#asm〜#endasmに対して#pragma inline_asmと関数定義を出力します。

#asm〜#endasmを,新しく生成した関数呼び出しに変換します。

#pragma interrupt

#pragma vect

#pragma rtos_interrupt

割り込み要求名がある場合,CC-RLのオプション-preinclude でiodefine.hをインクルードしてください。

割り込み要求名がある場合,ファイルの先頭に#include “iodefine.h”を挿入します。

マクロ__CA78K0R__

マクロが有効となります(10進定数1)。

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

マクロを有効にするには,CC-RLの-Dオプションで指定してください。