DMACW_CFG ( Memory DMA Channel Write Configuration )はメモリーDMAのDMA書き込みチャンネルの設定を行います。
このレジスタは図1のような構造をもっています。初期値は0です。
図1 レジスタの構造
各ビットの意味は以下のとおりです。
DMAを有効にします。
転送方向を決めます。このビットはデスクリプタからのロードでだけ設定できます。
ブロック転送後の割り込みの有無を決めます。このビットはデスクリプタからのロードでだけ設定できます。
転送データサイズを決めます。このビットはデスクリプタからのロードでだけ設定できます。
直前のDMA転送が失敗に終ったとき、バッファをクリアするために使います。
ブロック転送時のエラーによる割り込みの有無を決めます。このビットはデスクリプタからのロードでだけ設定できます。
FIFOの状態をあらわします。
DMAの終了ステータスです。
DMAデスクリプタのオーナーをあらわします。このステータスはメモリー上のデスクリプタにも反映されます。
C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hとdef2191.hで行われています。DMACW_CFGにアクセスする前には必ずIOPGにMemory_DMA_Controller_Pageを設定してください。
// #include <sysreg.h> // #include <def2191.h> sysreg_write(sysreg_IOPG, Memory_DMA_Controller_Page) // メモリーDMAページに設定 io_space_write(DMACW_CFG, 値) // DMACW_CFGに値を設定。 変数 = io_space_read(DMACW_CFG) // DMACW_CFGの値を取得。
アナログデバイセズが配布しているmcmの中のビット定義ファイルdef2191bit.hから関連するビット定義部分をここに引用します。
// Definition for DMA_CFG of commond operation
// HISTORY of CHNGE FS_xxx is fixed
#define DOWN BIT_15
#define DS BIT_14
#define FS_OFST 12
#define FS_MASK ( 3 << FS_OFST )
#define FS_EMPTY ( 0 << FS_OFST )
#define FS_ONE_WORD ( 1 << FS_OFST )
#define FS_TWO_WORD ( 2 << FS_OFST )
#define FS_THREE_WORD ( 3 << FS_OFST )
#define DERE BIT_8
#define FLSH BIT_7
#define DAUTO BIT_4
#define DTYPE BIT_3
#define DCOME BIT_2
#define TRAN BIT_1
#define DEN BIT_0
| 項目 | マニュアルのページ等 |
|---|---|
| 説明 | HR B-24 |
| DMAの解説 | HR 6-1 |
| DMA開始手続き | HR 6-6 |