DMAによるデータ送受信 (SPIモード用)
引数 |
説明 |
AG903_SSPMgrHandle* handle |
[in] SSPハンドル |
const void* tx_buf |
[in] データ送信先頭アドレス |
uint32_t tx_num |
[in] 送信サイズ(単位[Word] 下記参照) |
void * rx_buf |
[in] データ受信先頭アドレス |
uint32_t rx_num |
[in] 受信サイズ(単位[Word] 下記参照) |
送信結果
返値の詳細 |
説明 |
正常終了 | |
-AG903_EINVAL |
引数異常 |
-AG903_EPERM |
状態異常 (SPIモードではない等) |
SPIモードのときDMAによりデータを全二重で送受信します。
DMAによる転送は AG903_SSPMgrAttachTxDma または AG903_SSPMgrAttachRxDma でDMAが取り付けられている転送方向に対してのみ有効です。
DMAが取り付けられていない転送方向に対してはCPU転送になります。
この関数のDMAはライブラリ内部から制御されユーザーが外部から制御することはできません。
送信と受信の両方にDMAが取り付けられている場合は転送開始後直ちに戻ります。 少なくともどちらか片方にDMAが取り付けられていない場合は完全に転送が完了するまで戻りません。
転送完了時に AG903_SSPMgrSetCallback によりコールバックされるとき DMAが取り付けられていない転送方向に対してはRTOSのタスクモードで呼ばれます。
その他の仕様は AG903_SSPMgrSpiSendReceive と同様です。