English
PROGRAMMER'S GUIDEDMAライブラリ
戻る|   ■
DMAライブラリ/2.リファレンス

2.4 関数仕様

[高水準 SCU]




Title

関数仕様

Function

SCU DMA初期化

Function name

DMA_ScuInit

No

1

 書 式
void DMA_ScuMemCopy(void *dst, void *src, Uint32 cnt)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
SCU DMAの初期化をします。
DMA_ScuCopyMem(),DMA_ScuResult()を実行する前に必ず行ってください。

注 意
SCU DMAでは、DMAモード0の転送終了割り込み処理を使用しています。よって、DMAモード0の転送終了割り込みの割り込みマスクレジスタは、変更しないでください。



Title

関数仕様

Function

DMAデータ転送

Function name

DMA_ScuMemCopy

No

2

 書 式
void DMA_ScuMemCopy(void *dst, void *src, Uint32 cnt)
 入 力
*dst
:ディスティネーションアドレス
*src
:ソースアドレス
cnt 
:転送バイト数
 出 力
なし
 関数値
なし
 機 能
SCUのDMAモード0の直接モードによるDMA転送をします。詳しくはSCUユーザーズマニュアルを参照してください。ディスティネーションアドレスがワークRAMのときとワークRAM以外のときとで動作が違います。以下にそれぞれの動作を示します。

  • ワークRAM
    キャッシュとの不整合をなくすため、転送後にディスティネーションエリアのパージを行います。また、CPU_Busを使用するためDMA実行が終了するまでCPUに制御は戻りません。

  • ワークRAM以外
    CPU_Busを使用していないため転送開始後、すぐにCPUに制御が戻ります。この場合はDMA_ScuResult()にて終了チェックを行ってください。

転送単位は基本的にはロングワード単位ですが、ソース、ディスティネーションアドレスはバイト単位で指定できます。ただし、デバイスがワードバウンダリなどを要求しているときはそれに従ってください。詳しくはSCUユーザーズマニュアルをご覧ください。



Title

関数仕様

Function

データ転送終了チェック

Function name

DMA_ScuResult

No

3

 書 式
Uint32 DMA_ScuResult(void)
 入 力
なし
 出 力
なし
 関数値
DMA_ScuMemCopy()の結果
 機 能
DMA_ScuMemCopy()の終了チェックを行います。返す値として以下のものがあります。
実行結果定数名
定数名
説明
DMA_SCU_END
正常終了
DMA_SCU_FAIL
異常終了
DMA_SCU_BUSY
実行中

 備 考
DMA_ScuMemCopy()でソースまたは、ディスティネーションにCPU_Busが指定された場合、DMAの実行中はCPUは動作できません。したがって、このときの実行結果が実行中(DMA_SCU_BUSY)になることはありません。

[高水準 CPU]




Title

関数仕様

Function

データ転送(バイト単位)

Function name

DMA_CpuMemCopy1

No

4

 書 式
void DMA_CpuMemCopy1(void *dst, void *src, Uint32 cnt)
 入 力
*dst
;ディスティネーションアドレス
*src
;ソースアドレス
cnt 
;転送回数(0-16777215)
 0x00000001  1回
 0x00ffffff  16777215回
 0x00000000  16777216回
 出 力
なし
 関数値
なし
 機 能
srcアドレスからdstアドレスへバイトデータをcnt回数分転送します。転送量はcntバイトです。チャネル0、サイクルスチールモード、終了割り込みなしで転送しています。ディスティネーションアドレスがワークRAMのときは、キャッシュとの不整合をなくすため、転送後にディスティネーションエリアのパージを行います。アドレスに対する制限はありません。



Title

関数仕様

Function

データ転送(ワード単位)

Function name

DMA_CpuMemCopy2

No

5

 書 式
void DMA_CpuMemCopy2(void *dst, void *src, Uint32 cnt)
 入 力
*dst
;ディスティネーションアドレス
*src
;ソースアドレス
cnt 
;転送回数(0-16777215)
 0x00000001 1回
 0x00ffffff 16777215回
 0x00000000 16777216回
 出 力
なし
 関数値
なし
 機 能
srcアドレスからdstアドレスへワードデータをcnt回数分転送します。転送量はcnt*2バイトです。チャネル0、サイクルスチールモード、終了割り込みなしで転送しています。ディスティネーションアドレスがワークRAMのときは、キャッシュとの不整合をなくすため、転送後にディスティネーションエリアのパージを行います。アドレスはワードバウンダリでなければなりません。



Title

関数仕様

Function

データ転送(ロングワード単位)

Function name

DMA_CpuMemCopy4

No

6

 書 式
void DMA_CpuMemCopy4(void *dst, void *src, Uint32 cnt)
 入 力
*dst
;ディスティネーションアドレス
*src
;ソースアドレス
cnt 
;転送回数(0-16777215)
 0x00000001 1回
 0x00ffffff 16777215回
 0x00000000 16777216回
 出 力
なし
 関数値
なし
 機 能
srcアドレスからdstアドレスへロングワードデータをcnt回数分転送します。転送量はcnt*4バイトです。チャネル0、サイクルスチールモード、終了割り込みなしで転送しています。ディスティネーションアドレスがワークRAMのときは、キャッシュとの不整合をなくすため、転送後にディスティネーションエリアのパージを行います。アドレスはロングワードバウンダリでなければなりません。



Title

関数仕様

Function

データ転送(16バイト単位)

Function name

DMA_CpuMemCopy16

No

7

 書 式
void DMA_CpuMemCopy16(void *dst, void *src, Uint32 cnt)
 入 力
*dst
; ディスティネーションアドレス
*src
; ソースアドレス
cnt
;  転送回数(0-16777215)(ロングワード単位)
 0x00000001 1回
 0x00ffffff 16777215回
 0x00000000 16777216回
 出 力
なし
 関数値
なし
 機 能
srcアドレスからdstアドレスへロングワードデータをcnt回数分転送します。転送量はcnt×4バイトです。チャネル0、サイクルスチールモード、終了割り込みなしで転送しています。ディスティネーションアドレスがワークRAMのときは、キャッシュとの不整合をなくすため、転送後にディスティネーションエリアのパージを行います。アドレスはロングワードバウンダリでなければなりません。



Title

関数仕様

Function

データ転送終了チェック

Function name

DMA_CpuResult

No

8

 書 式
Uint32 DMA_CpuResult(void)
 入 力
なし
 出 力
なし
 関数値
DMA_CpuMemCopy1,2,4,16()の結果
 機 能
DMA_CpuMemCopy1,2,4,16()の終了チェックを行います。返す値として以下のものがあります。
実行結果定数名
定数名
説明
DMA_CPU_END
正常終了
DMA_CPU_BUSY
実行中


[低水準 SCU]




Title

関数仕様

Function

DMA転送パラメータ設定

Function name

DMA_ScuSetPrm

No

9

 書 式
void DMA_ScuSetPrm(DmaScuPrm *prm, Uint32 ch)
 入 力
prm
:転送パラメータ
ch 
:DMAチャネル
 出 力
なし
 関数値
なし
 機 能
指定されたDMAチャネルへ転送パラメータの値を設定します。



Title

関数仕様

Function

DMA転送開始

Function name

DMA_ScuStart

No

10

 書 式
void DMA_ScuStart(Uint32 ch)
 入 力
ch:DMAチャネル
 出 力
なし
 関数値
なし
 機 能
指定されたDMAチャネルのDMA転送を開始します。



Title

関数仕様

Function

DMAステータス取得

Function name

DMA_ScuGetStatus

No

11

 書 式
void DMA_ScuGetStatus(DmaScuStatus *status,Uint32 ch)
 入 力
ch :入力チャネル
 出 力
status :ステータスポインタ
 関数値
なし
 機 能
指定されたDMAチャネルのステータスを取得します。
!!注意!!
DmaScuStatus構造体のメンバ、dxbk(DMA中断中フラグ)・dxwt(DMA待機中フラグ)を削除しました。

[低水準 CPU]




Title

関数仕様

Function

DMA共通転送パラメータ設定

Function name

DMA_CpuSetComPrm

No

12

 書 式
void DMA_CpuSetComPrm(DmaCpuComPrm *com_prm)
 入 力
com_prm:共通転送パラメータ
 出 力
なし
 関数値
なし
 機 能
指定された共通転送パラメータを設定します。ただしDmaCpuComPrm.mskによってマスクされたパラメータは設定しません。
 備 考
DmaCpuComPrm.mskでDMA_CPU_M_AEをマスクしなかった場合、アドレスエラーフラグをクリアします。DMA_CPU_M_NMIFをマスクしなかった場合、NMIフラグをクリアします。



Title

関数仕様

Function

DMA転送パラメータ設定

Function name

DMA_CpuSetPrm

No

13

 書 式
void DMA_CpuSetPrm(DmaCpuPrm *prm Uint32 ch)
 入 力
prm
:転送パラメータ
ch 
:DMAチャネル
 出 力
なし
 関数値
なし
 機 能
指定されたDMAチャネルへ転送パラメータを設定します。ただしDmaCpuPrm.mskによってマスクされたパラメータは設定しません。
 備 考
DmaCpuPrm.mskでDMA_CPU_TEをマスクしないかった場合は、トランスファエンドフラグビットをクリアします。



Title

関数仕様

Function

DMA転送開始

Function name

DMA_CpuStart

No

14

 書 式
Uint32 DMA_CpuStart(Uint32 ch)
 入 力
ch:DMAチャネル
 出 力
なし
 関数値
なし
 機 能
指定されたDMAチャネルのDMA転送を開始します。



Title

関数仕様

Function

DMA転送中止

Function name

DMA_CpuStop

No

15

 書 式
void DMA_CpuStop(Uint32 ch)
 入 力
ch:DMAチャネル
 出 力
なし
 関数値
なし
 機 能
指定されたDMAチャネルのDMA転送を終了します。



Title

関数仕様

Function

DMA全チャネル転送中止

Function name

DMA_CpuAllStop

No

16

 書 式
void DMA_CpuAllStop(void)
 入 力
なし
 出 力
なし
 関数値
なし
 機 能
すべてのDMAチャネルのDMA転送を中止します。



Title

関数仕様

Function

DMA共通ステータス取得

Function name

DMA_CpuGetComStatus

No

17

 書 式
void DMA_CpuGetComStatus(DmaCpuComStatus *status)
 入 力
なし
 出 力
status:ステータスポインタ
 関数値
なし
 機 能
指定された共通ステータスを取得します。



Title

関数仕様

Function

DMAステータス取得

Function name

DMA_CpuGetStatus

No

18

 書 式
void DMA_CpuGetStatus(DmaCpuStatus *status, Uint32 ch)
 入 力
ch :DMAチャネル
 出 力
status:ステータスポインタ
 関数値
なし
 機 能
指定されたDMAチャネルのステータスを取得します。

戻る|   ■
PROGRAMMER'S GUIDEDMAライブラリ
Copyright SEGA ENTERPRISES, LTD., 1997