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

DMACハンドル解放

Syntax
C++
int32_t AG903_DMACMgrReleaseHandle(AG903_DMACMgrHandle * handle);
引数 
説明 
AG903_DMACMgrHandle * handle 
[in] DMACハンドル 

エラーコード

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

DMACハンドラの解放

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

ディスクリプタリストはDMACMgrハンドラ間で排他的にアクセスして下さい。 

必要に応じアプリでAG903_INTMgrDisableIntによりDMACの割り込みを無効にして下さい。

1: int32_t AG903_DMACMgrReleaseHandle(AG903_DMACMgrHandle *handle) 2: { 3: uint32_t unit = ((AG903_DMACMgrHandleStat*)handle - handle_list); 4: uint8_t enable; 5: 6: 7: if(unit >= AG903_DMAC_UNIT_NUM || &handle_list[unit] != (AG903_DMACMgrHandleStat*)handle) 8: { 9: return -AG903_EINVAL; 10: } 11: 12: 13: enable = DMACMgr_CheckEnable(unit); 14: if(true == enable) { 15: return -AG903_EBUSY; 16: } 17: 18: remove_desc_entry(unit); 19: handle_used_flag[unit] = false; 20: 21: return AG903_ENONE; 22: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.