# CARD_SetCacheFlushThreshold

## 構文

  `#include <nitro/card.h>`
  `void CARD_SetCacheFlushThreshold(u32 icache, u32 dcache);`

## 引数

icache | 命令キャッシュの無効化閾値
dcache | データキャッシュの無効化閾値

## 返り値

なし。

## 説明

ライブラリ内部でDMA転送が必要とされる場合に行うキャッシュ無効化処理の方式を切り替える閾値を設定します。

キャッシュの無効化については、その範囲が小さなものであればIC_InvalidateRange( )やDC_FlushRange( )などで部分的に処理すべきですが、 ある程度の規模より大きなバッファに対してはあまりにも時間がかかりすぎるためIC_InvalidateAll( )やDC_FlushAll( )などで キャッシュ全体を無効化するほうが効率が良くなります。 この関数は、そのようなキャッシュ無効化処理の方式を切り替えるべきサイズの閾値を変更することが出来ます。

CARDライブラリがDMA転送を行う際、ここで設定した閾値より小さなサイズであれば キャッシュを部分的に無効化し、そうでなければキャッシュ全体を無効化します。
デフォルト設定では、この値はicacheが0x400(1kB)、dcacheが0x2400(9kB)になっています。 これは多くの一般的なプログラムで良好と考えられる経験的な設定値であり、 各々のプログラムの構成や場面に応じてさらに適切な値があれば自由に変更してかまいません。

## 参照

`CARD_GetCacheFlushThreshold`

## 履歴

2008/12/05 デフォルト値を変更。
2007/05/16 初版