MI_SetNDmaArbitrament

構文

#include <twl/mi.h>

void MI_SetNDmaArbitrament( u32 mode, u32 cycle );

引数

mode 新規DMA の調停方式です。
cycle サイクル数(新規DMA の調停方法がラウンドロビン方式のときのみ有効)です。

返り値

なし。

説明

TWL の新規DMA の、DMA調停方式を指定します。

mode には、調停方式を指定します。

MI_NDMA_ARBITRAMENT_FIX 固定方式
MI_NDMA_ARBITRAMENT_ROUND ラウンドロビン(循環)形式          


cycle は、mode でラウンドロビン形式を指定した場合に意味を持ちます。 固定方式の場合はどんな値でも意味はありません。

MI_NDMA_RCYCLE_0 0 サイクル             
MI_NDMA_RCYCLE_1 1 サイクル
MI_NDMA_RCYCLE_2 2 サイクル
MI_NDMA_RCYCLE_4 4 サイクル
MI_NDMA_RCYCLE_8 8 サイクル
MI_NDMA_RCYCLE_16 16 サイクル
MI_NDMA_RCYCLE_32 32 サイクル
MI_NDMA_RCYCLE_64 64 サイクル
MI_NDMA_RCYCLE_128 128 サイクル
MI_NDMA_RCYCLE_256 256 サイクル
MI_NDMA_RCYCLE_512 512 サイクル
MI_NDMA_RCYCLE_1024 1024 サイクル
MI_NDMA_RCYCLE_2048 2048 サイクル
MI_NDMA_RCYCLE_4096 4096 サイクル
MI_NDMA_RCYCLE_8192 8192 サイクル
MI_NDMA_RCYCLE_16384 16384 サイクル


なお、cycle は、全てのDMAチャネルのDMA起動要求が存在しないタイミングに実際の設定に反映されます。

(例)

//---- 固定方式
MI_SetNDmaArbitrament(MI_NDMA_ARBITRAMENT_FIX, 0/*dummy*/);

//---- ラウンドロビン方式
MI_SetNDmaArbitrament(MI_NDMA_ARBITRAMENT_ROUND, MI_NDMA_RCYCLE_32);

内部動作

DMA_GCNT レジスタにアクセスしています。

参照

MI_GetNDmaArbitrament, MI_GetNDmaArbitramentRoundRobinCycle

履歴

2007/09/07 初版