#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 初版