#include <iris/os.h>
void OS_InitArena( void );
なし。
なし。
6つのアリーナの下位境界、上位境界を設定します。
この関数は、Alloc関数や他のArena関数よりも先に一度だけ呼んでください。但し、OS_Init()
を呼ぶ場合、その内部から呼ばれていますのでそれ以降の呼び出しは意味がありません。
この関数の二度目以降の呼び出しは無視されます。OS_InitArena() を呼び出した後、アリーナの境界を変更することも可能です。
IRIS SDK では、メインメモリ、ITCM、DTCM、共有メモリ、ワークRAM、メインメモリ拡張部分 の6つのアリーナ領域を設定することが出来ます。それぞれの領域にはIDが振られており、OSArenaId 列挙型で
| OS_ARENA_MAIN | メインメモリ上のアリーナ |
| OS_ARENA_ITCM | ICTM上のアリーナ |
| OS_ARENA_DTCM | DTCM上のアリーナ |
| OS_ARENA_SHARED | 共有メモリ上のアリーナ |
| OS_ARENA_WRAM | ワークRAM上のアリーナ |
| OS_ARENA_MAINEX | メインメモリ拡張部分のアリーナ |
と定義されています。
OS_InitArena() を呼ぶことで、各アリーナの上位境界・下位境界は以下のようになります。
| アリーナ | 下位 | 上位 |
| メインメモリ上のアリーナ | SDK_MAIN_ARENA_LO | サブプロセッサ専用領域の前 |
| ITCM上のアリーナ | ITCM最上位 | ITCM最下位 |
| DTCM上のアリーナ | DTCM最上位 | システムモード用スタックの前 |
| 共有メモリ上のアリーナ | 共有メモリ最上位 | 共有メモリ最下位 |
| ワークRAM上のアリーナ | ワークRAM最上位 | ワークRAM最下位 |
| メインメモリ拡張部分のアリーナ | 拡張部分最上位 | デバッガ領域の前 |
製品版IRISでは、メインメモリ拡張部分はありませんので、メインメモリ拡張部分のアリーナはありません。
OS_SetArenaHi,
OS_SetArenaLo,
OS_GetArenaHi,
OS_GetArenaLo,
2004/01/16 MainEx について追加
2004/01/06 初版