IC_LockdownRange

構文

#include <nitro/os.h>
void IC_LockdownRange( const void* startAddr, u32 nBytes );

引数

startAddr ロックダウンする範囲の最下位アドレス
nBytes ロックダウンする範囲のバイト数(最大2KB)

返り値

なし。

説明

指定領域にヒットしている命令キャッシュの内容をロックして破棄されないようにします。

ただし、2KBのロックダウンブロック単位でロックされますので、この関数を一度呼び出す度に、キャッシュとして使用できる領域が2KBずつロックされることになり、ミス率が上昇します。最大で3ブロック分の命令キャッシュをロックダウンすることができます。

startAddr は32バイト単位で下位方向に丸められます。startAddr + nBytes は32バイト単位で上位方向に丸められます。

内部処理

この関数は、システム制御コプロセッサのレジスタ 7, 9 を操作しています。

指定されたデータをキャッシュにロードする期間、内部で割り込みが禁止されます。

この関数を使用するとITCMに配置されます。

参照

IC_PrefetchRange, IC_Unlockdown, IC_UnlockdownAll

履歴

2005/11/14 startAddrの型をconst void*に変更
2005/01/21 ロックダウンブロックに関する記述を追加
2003/12/22 初版