__ramfunc
このセクションの内容:
構文
オブジェクト属性の構文を参照してください。
説明
__ramfuncキーワードは、関数をRAMモードで実行します。2つのコードセクションが作成されます。ひとつはRAM 実行用(.textrw)で、もうひとつはROM の初期化用(.textrw_init)です。
__ramfuncにより宣言された関数がROMにアクセスしようとすると、コンパイラがエラーを発行します。この動作は、たとえば、フラッシュメモリの一部を再書込みするなど、アップグレードルーチンの作成を簡単にすることを目的としています。
__ramfunc により宣言した関数は、デフォルトでは.textrwという名前のセクションに格納されます。
__ramfuncにより宣言した関数は、リンカ構成ファイルのinitialize manuallyコマンドは、通常の自動的なinitialize by copyメカニズムを無効にし、代わりに__iar_init_ramfunc関数をコールします。
__ramfunc関数を初期化しない場合は、次のように__iar_init_ramfunc関数をダミー関数と置き換えます。
void * __iar_init_ramfunc(void * tab)
{
return tab;
}例
__ramfunc int FlashPage(char * data, char * page);
関連項目
ブレークポイントに関して__ramfunc宣言された関数の詳細については、__ramfunc 宣言関数のブレークポイントの設定を参照してください。