MI_CpuSend*

構文

#include <nitro/mi.h>

void MI_CpuSend32( const void* src, volatile void* dest, u32 size );
void MI_CpuSend16( const void* src, volatile void* dest, u32 size );
void MI_CpuSendFast( const void* src, volatile void* dest, u32 size );

引数

src 転送元アドレス
dest 転送先アドレス
size 転送サイズ

返り値

なし。

説明

CPUで同じアドレスにデータを送り込みます。
転送先アドレスを変えず、転送元アドレスだけをインクリメントし、連続領域のデータを次々と同じアドレスに送ります。

MI_CpuSend16() は 16ビット単位で転送します。転送元アドレス、転送先アドレスは2バイトアラインメントする必要があります。

MI_CpuSend32() は 32ビット単位で転送します。転送元アドレス、転送先アドレスは4バイトアラインメントする必要があります。

MI_CpuSendFast() は 32バイト単位で高速にコピーを行います。転送元アドレス、転送先アドレスは4バイトアラインメントする必要があります。転送サイズは4の整数倍バイトである必要があります。32の整数倍バイトである必要はありません。32バイト単位で転送した後の端数分はMI_CpuSend32() と同じ処理を行ないます。

内部動作

DMAコントローラは使用せず、CPUだけで処理します。システムコールは使用しません。

参照

MI_CpuCopy*, MI_CPUFill*, MI_CpuClear*, MI_CpuRecv*, MI_DmaSend*

履歴

2007/12/26 MI_CpuSendFast() 追加
2004/03/29 システムコールを使用しないと記述
2004/01/30 初版