付録B 注意事項
RI78V4を組み込んだシステムでは,以下のコンパイル・オプションを指定してください。
|
|
|
アセンブリ言語の16進数の基数表現形式としてPrefix表現形式(0xn..n)を指定。
|
RI78V4を組み込んだシステムは,基本的にレジスタ・バンク0で動作させてください。
レジスタ・バンクの変更が必要な場合,以下の仕様に基づいて変更してください。ルーチンによってレジスタ・バンクの変更を許可しているルーチン,禁止しているルーチンがあります。
- タスク
タスクでは,初期レジスタ・バンク番号は0固定です。
RI78V4では,タスク切り替え時に,レジスタ・バンク番号と1バンク分(タスク切り替え時のバンク)の汎用レジスタのみ退避/復帰されます。
残り3バンク分の汎用レジスタは退避/復帰されないため,タスク処理上で2つ以上のレジスタ・バンクを使用する場合には,レジスタ・バンク変更時に変更前のレジスタ・バンクの汎用レジスタを退避する必要があります。この退避を行わない場合,タスク切り替え先でレジスタ・バンクが破壊される可能性があります。
- OS管理外の割り込み処理
OS管理外の割り込み処理でレジスタ・バンク変更を行う場合,割り込み終了時には割り込み発生元のレジスタ・バンク番号へ戻してください。
- 割り込みハンドラ
割り込みハンドラでは,レジスタ・バンク番号は割り込み発生元の値を継承します。
- 周期ハンドラ
周期ハンドラでは,レジスタ・バンク番号はタイマ・ハンドラ用割り込み発生元の値を継承します。
- アイドル・ルーチン
アイドル・ルーチンでは,初期レジスタ・バンク番号は0固定です。
- 初期化ルーチン
初期化ルーチンでは,初期レジスタ・バンク番号は0固定です。OS初期化前(_kernel_start関数呼び出し前)に設定されたレジスタ・バンクに無関係にレジスタ・バンク0に上書きされます。