AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_DMACMgrSetRemoteDescAddr 関数

リモードディスクリプタ領域アドレス指定

Syntax
C++
int32_t AG903_DMACMgrSetRemoteDescAddr(void * addr);
引数 
説明 
void * addr 
[in] リモードディスクリプタ領域アドレス 

エラーコード

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
パラメータ異常 
-AG903_EBUSY 
実行中 
-AG903_EPERM 
設定済 

リモードディスクリプタ領域アドレス指定

この設定はすべてのDMACチャンネルに共通です。 

ディスクリプタリストを使った転送を開始する前に設定して下さい。 

リモートディスクリプタ領域は AG903_DMAC_LDD_ENTRY_NUM × 20バイト必要です。 

リモートディスクリプタ領域のメモリ属性はキャッシュ不可にして下さい。 

この関数はディスクリプタリストを使った転送が行われているとき実行禁止です。

1: int32_t AG903_DMACMgrSetRemoteDescAddr(void *addr) 2: { 3: int32_t retval = AG903_ENONE; 4: uint32_t loop; 5: uint8_t enable; 6: 7: if(NULL == addr) 8: { 9: return -AG903_EINVAL; 10: } 11: if(NULL != rdd_data) 12: { 13: return -AG903_EPERM; 14: } 15: 16: for(loop=0; loop<AG903_DMAC_UNIT_NUM; loop++) 17: { 18: enable = DMACMgr_CheckEnable(loop); 19: if(true == enable) { 20: retval = -AG903_EBUSY; 21: break; 22: } 23: } 24: if(AG903_ENONE == retval) 25: { 26: rdd_data = (uint8_t*)addr; 27: } 28: 29: return retval; 30: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.