3.13 CC-RLオプション-convert_ccとの変換仕様差分
CC-RLには,コンパイル時にCA78K0のソースコードをコンパイルするオプションは存在しません。CC-RLにてCA78K0Rのソースコードをコンパイルためのオプション「-convert_cc=ca78k0r」指定時と,CcnvCA78K0による変換とで動作が異なる拡張機能について,差分を示します。
表 3.7 | CC-RLオプション-convert_cc=ca78k0rと異なる動作 |
|
|
|
__boolean
|
-ansiオプション指定なしの場合は_Bool,-ansiオプション指定ありの場合はcharとして扱います。
|
常に_Boolに変換します。
CC-RLの-ansiオプション指定時は_Boolが使用できませんので,手動で型を変更してください。
|
__callf
__leaf
__pascal
__flash
__flashf
__temp
__mxcall
|
コンパイル・エラーとなります。
|
削除します。
|
callf
noauto
norec
|
コンパイル・エラーとなります。
|
オプション-Aを指定しない場合に削除します。
|
__interrupt
__interrupt_brk
__rtos_interrupt
|
同名関数に対する#pragma指令が既に存在する場合は,キーワードを無視します。
|
関数宣言の前に#pragma指令を追加します。同名関数に対する#pragma指令が既に存在する場合は,変換後に#pragma 指令が重複してCC-RLではコンパイル・エラーとなります。その場合は,キーワードを変換した#pragma指令を削除してください。
|
__asm( )
|
通常の関数呼び出しと認識します。
手動でinline_asm関数に修正する必要があります。
デバイス変更によりアセンブラ記述は見直してください。
|
各__asm( )に対して#pragma inline_asmと関数定義を出力します。
__asm( )呼び出しは,新しく生成した関数呼び出しに変換します。
デバイス変更によりアセンブラ記述は見直してください。
|
va_start_banked
va_starttop_banked
|
通常の関数呼び出しと認識します。
|
va_startに変換します。
|
#pragma sfr
|
CC-RLのオプション-preinclude でiodefine.hをインクルードしてください。
デバイス変更によりSFRのアクセスは見直してください。
|
ファイルの先頭に#include “iodefine.h”を挿入します。
デバイス変更によりSFRのアクセスは見直してください。
|
#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”を挿入します。
デバイス変更により割り込み要求名は見直してください。
|