プログラム中の特定のルーチンをRAM上で実行したい場合,最適化リンカの-romオプションを使用して,次の手順で実現できます。
(1) | 対象ルーチンのROM上の配置位置と,RAM上の実行位置を決めて,それぞれにセクションを割り当てる。 |
(2) | 次のような転送用ルーチンを用意し,プログラムに組み込む。 |
(2-1) 対象ルーチンを,ROM上のセクションからRAM上のセクションへコピーする。
(2-2) コピー後,RAM上の対象ルーチンを呼び出す。
(3) | プログラムのビルド時に,次のように指定して最適化リンカを実行する。 |
(3-1) 対象ルーチンのROM上の配置先のセクション名を,-romオプションのROM側に指定する。
(3-2) 対象ルーチンを実行するRAM上のセクション名を,-romオプションのRAM側に指定する。