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

BMUのバッファ関連の設定を行う

Syntax
C++
int32_t AG903_BMUMgrSetBufferConfig(AG903_BMUMgrHandle * handle, void * buffer, uint32_t stride, uint32_t buf_num);
引数 
説明 
AG903_BMUMgrHandle * handle 
[in] BMUManagerのハンドル 
void * buffer 
[in] バッファのポインタ 
uint32_t stride 
[in] 1つのバッファのサイズ(バイト単位) 
uint32_t buf_num 
[in] バッファの数(0~8 ただし0は8とみなす) 

エラーコード

返値の詳細 
説明 
正常 
-AG903_EINVAL 
無効なハンドル、パラメータが渡された 
-AG903_EBUSY 
BMU有効中に設定を変更した場合 

ハンドラに割り当てられたチャンネルのバッファ関連の設定を変更します.

bufferアドレスとstrideサイズは4096の倍数を推奨します. 

strideは128バイトの倍数のみ指定可能です. 

バッファのメモリ属性はキャッシュ不可として下さい.

1: int32_t AG903_BMUMgrSetBufferConfig(AG903_BMUMgrHandle *handle, void *buffer, uint32_t stride, uint32_t buf_num) 2: { 3: uint32_t unit = (handle - handle_list); 4: 5: 6: if(unit >= AG903_BMU_UNIT_NUM || &handle_list[unit] != handle) 7: { 8: return -AG903_EINVAL; 9: } 10: 11: 12: if(handle->is_exec) 13: { 14: return -AG903_EBUSY; 15: } 16: 17: 19: 20: if(stride >= (1<<(24+1)) || (stride & 0x7f)) 21: { 22: return -AG903_EINVAL; 23: } 24: 25: if(buf_num > AG903_BMU_BUF_NUM_MAX) 26: { 27: return -AG903_EINVAL; 28: } 29: 30: if (8 < buf_num) 31: { 32: return -AG903_EINVAL; 33: } 34: 35: if(buf_num == 8) 36: { 37: buf_num = 0; 38: } 39: 40: AG903_BMUPrmSetBASEADR(unit, ((uint32_t)buffer) & AG903_BMUn_BASEADR_ADR_MSK); 41: AG903_BMUPrmSetSTRIDE (unit, stride & AG903_BMUn_STRIDE_STRIDE_MSK); 42: AG903_BMUPrmSetBUFNUM (unit, buf_num); 43: 44: return AG903_ENONE; 45: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.