AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: int32_t AG903_DMACMgrSetSimpleTrnsDesc(AG903_DMACMgrHandle *handle, void *from, 2: uint32_t from_size, void *to) 3: { 4: uint32_t unit = ((AG903_DMACMgrHandleStat*)handle - handle_list); 5: AG903_DMACMgrDesc dmac_desc; 6: DMACPrmParamCFG cfg = {0}; 7: uint8_t enable; 8: 9: if(unit >= AG903_DMAC_UNIT_NUM || &handle_list[unit] != (AG903_DMACMgrHandleStat*)handle || 10: NULL == from || NULL == to || 0 == from_size || AG903_DMAC_1DTRANS_MAX < from_size) 11: { 12: return -AG903_EINVAL; 13: } 14: 15: 16: enable = DMACMgr_CheckEnable(unit); 17: if(true == enable) { 18: return -AG903_EBUSY; 19: } 20: 21: cfg.ChPri = 1; 22: AG903_DMACPrmSetCFG_REG(unit, &cfg); 23: 24: dmac_desc.SrcAddr = (uint32_t)from; 25: dmac_desc.DstAddr = (uint32_t)to; 26: dmac_desc.next = 0; 27: dmac_desc.Ctrl.val = 0; 28: dmac_desc.Trns.val = 0; 29: dmac_desc.Trns.d1.TCnt = from_size; 30: dmac_desc.Stride.val = 0; 31: 32: 33: write_desc(&dmac_desc, NULL, get_desc_reg_addr(unit), 1); 34: 35: return AG903_ENONE; 36: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.