# MI_NDmaClear*

## 構文

  `#include <twl/mi.h>`
  `void MI_NDmaClear( u32 ndmaNo,`
`void* dest, u32 size );`

  `void MI_NDmaClear_SetUp( u32 ndmaNo,`
`void* dest, u32 size );`

  `void MI_NDmaClearAsync( u32 dmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg );`

  `void MI_NDmaClearAsync_SetUp( u32 dmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg );`

  `void MI_NDmaClearEx( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaConfig *config );`

  `void MI_NDmaClearEx_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaConfig *config );`

  `void MI_NDmaClearExAsync( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
  `MINDmaConfig *config``);`

  `void MI_NDmaClearExAsync_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
  `MINDmaConfig *config``);`

  `void MI_NDmaClear_Dev( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaDevice dev );`

  `void MI_NDmaClear_Dev_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaDevice dev );`

  `void MI_NDmaClearAsync_Dev( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
`MINDmaDevice dev );`

  `void MI_NDmaClearAsync_Dev_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
`MINDmaDevice dev );`

  `void MI_NDmaClearEx_Dev( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaConfig *config,`
`MINDmaDevice dev );`

  `void MI_NDmaClearEx_Dev_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaConfig *config,`
`MINDmaDevice dev );`

  `void MI_NDmaClearExAsync_Dev( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
  `MINDmaConfig *config,`
`MINDmaDevice dev );`

  `void MI_NDmaClearExAsync_Dev_SetUp( u32 ndmaNo,`
`void* dest, u32 size,`
`MINDmaCallback callback, void* arg,`
  `MINDmaConfig *config,`
`MINDmaDevice dev );`

## 引数

ndmaNo | 使用DMAチャンネル (新規DMAの中で0〜3)
dest | 転送先アドレス
size | 転送サイズ
callback | DMA終了時のコールバック
arg | DMA終了時のコールバック引数
config | DMA 設定
dev | デバイス起動する場合のデバイス

## 返り値

なし。

## 説明

新規 DMA を用いて 0 フィルを行います。
(但し、`*_SetUp()` は設定のみを行います。)

`MI_NDmaClear*()` は TWL の新規DMAを用いてワード(4byte)単位でデータフィルを行います。転送先アドレスdest は4バイトアラインメントする必要があります。転送サイズ size も4の倍数である必要があります。

`MI_NDmaClear*()` は `MI_NDmaFill*()` の data 引数を 0 としてdefine したものになっています。詳細は `MI_NDmaFill*()` を参照してください。

## 内部動作

IOレジスタの新規DMAレジスタを使用します。

## 参照

`MI_NDmaFill*, MI_NDmaCopy*, MI_DmaClear*, MI_CpuClear*, MI_NDmaRestart
新規DMA(overview)`

## 履歴

2008/11/19 `MINDmaDevice` についての参照先を記述
2007/10/31 `_SetUp()` 追加
2007/09/06 初版