AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
dmacprm.h

DMAC Primitive Header

DMAC Primitive提供ヘッダ。 

DMAC Primitive使用時にincludeして下さい。 

none

AXELL CORPORATION

2017_02_22 初版 

2017_10_26 Ver2.0 

2019_12_27 [SDK3.0] AG903仕様書AX51903_DS06.pdfの修正を反映 (#2633)

1: 10: 11: 15: 16: #ifndef _DMACPRM_H_ 17: #define _DMACPRM_H_ 18: 19: 20: #ifdef __cplusplus 21: extern "C" { 22: #endif 23: 24: 25: #define AG903_DMAC_UNIT_NUM (8) 26: 27: 28: #define AG903_DMAC_PORT_NUM (16) 29: 30: 31: #define AG903_DMAC_EVENT_NUM (8) 32: 33: 34: #define AG903_DMAC_1DTRANS_MAX (0x3FFFFF) 35: 36: 37: 38: 39: typedef struct _DMACPrmParamFEATURE { 40: uint32_t ChNum; 41: uint32_t UnalignMode; 42: uint32_t DWidth; 43: uint32_t SLVDWidth; 44: uint32_t DFDepth; 45: uint32_t PriOn; 46: uint32_t PriNum; 47: uint32_t LdmOn; 48: uint32_t LdmDepth; 49: uint32_t CmdDepth; 50: }DMACPrmParamFEATURE; 51: 52: void AG903_DMACPrmGetINT(uint32_t *stat); 53: void AG903_DMACPrmGetTIMECOUNT_INT(uint32_t *stat); 54: void AG903_DMACPrmSetTIMECOUNT_INT_CLEAR(uint32_t clear); 55: void AG903_DMACPrmGetERR_ABORT_INT(uint32_t *err, uint32_t *wdt, uint32_t *abt); 56: void AG903_DMACPrmSetERR_ABORT_INT_CLEAR(uint32_t err, uint32_t wdt, uint32_t abt); 57: void AG903_DMACPrmGetTIMECOUNT_STATUS(uint32_t *stat); 58: void AG903_DMACPrmGetERR_ABORT_STATUS(uint32_t *err, uint32_t *wdt, uint32_t *abt); 59: void AG903_DMACPrmGetCHANNEL_ENABLE(uint32_t *enable); 60: void AG903_DMACPrmSetCHANNEL_ENABLE(uint32_t enable); 61: void AG903_DMACPrmGetSYNC_PERI_IF(uint32_t *enable); 62: void AG903_DMACPrmSetSYNC_PERI_IF(uint32_t enable); 63: void AG903_DMACPrmGetLOCAL_DESC_MEM_BASE(uint32_t *base); 64: void AG903_DMACPrmSetLOCAL_DESC_MEM_BASE(uint32_t base); 65: void AG903_DMACPrmGetWATCHDOG_TIMER(uint32_t *wdt); 66: void AG903_DMACPrmSetWATCHDOG_TIMER(uint32_t wdt); 67: void AG903_DMACPrmGetGLOBAL_EVENT(uint32_t *event); 68: void AG903_DMACPrmSetGLOBAL_EVENT(uint32_t set, uint32_t clear); 69: void AG903_DMACPrmGetPSLVERR_ENABLE(uint32_t *enable); 70: void AG903_DMACPrmSetPSLVERR_ENABLE(uint32_t enable); 71: void AG903_DMACPrmGetREVISION_NUMBER(uint32_t *rev); 72: void AG903_DMACPrmGetHW_FEATURE(DMACPrmParamFEATURE *feature); 73: void AG903_DMACPrmGetLOCAL_DESC_MEM_FREE_FLAG_SET_0(uint32_t *flag); 74: void AG903_DMACPrmSetLOCAL_DESC_MEM_FREE_FLAG_SET_0(uint32_t flag); 75: void AG903_DMACPrmGetLOCAL_DESC_MEM_FREE_FLAG_SET_1(uint32_t *flag); 76: void AG903_DMACPrmSetLOCAL_DESC_MEM_FREE_FLAG_SET_1(uint32_t flag); 77: void AG903_DMACPrmGetLOCAL_DESC_MEM_FREE_FLAG_SET_2(uint32_t *flag); 78: void AG903_DMACPrmSetLOCAL_DESC_MEM_FREE_FLAG_SET_2(uint32_t flag); 79: void AG903_DMACPrmGetLOCAL_DESC_MEM_FREE_FLAG_SET_3(uint32_t *flag); 80: void AG903_DMACPrmSetLOCAL_DESC_MEM_FREE_FLAG_SET_3(uint32_t flag); 81: void AG903_DMACPrmGetENDIAN_CONVERSION(uint32_t *ec, uint32_t *lmec); 82: void AG903_DMACPrmSetENDIAN_CONVERSION(uint32_t ec, uint32_t lmec); 83: void AG903_DMACPrmGetCONSTANT_VALUE_WRITE_ONLY(uint32_t *value); 84: void AG903_DMACPrmSetCONSTANT_VALUE_WRITE_ONLY(uint32_t value); 85: 86: 87: 88: 89: typedef struct _DMACPrmParamCTRL { 90: uint32_t ChWEvent; 91: uint32_t WSync; 92: uint32_t ChSEvent; 93: uint32_t SEventEn; 94: uint32_t WEventEn; 95: uint32_t DEn; 96: uint32_t ExpEn; 97: uint32_t ChEn; 98: uint32_t WDTEn; 99: uint32_t DstCtrl; 100: uint32_t SrcCtrl; 101: uint32_t DstWidth; 102: uint32_t SrcWidth; 103: uint32_t TCMsk; 104: uint32_t SrcTcnt; 105: }DMACPrmParamCTRL; 106: 107: 108: typedef struct _DMACPrmParamCFG { 109: uint32_t TCIntMsk; 110: uint32_t ErrIntMsk; 111: uint32_t AbtIntMsk; 112: uint32_t SrcRS; 113: uint32_t SrcHEn; 114: uint32_t DstRS; 115: uint32_t DstHEn; 116: uint32_t LLPCnt; 117: uint32_t ChGntWin; 118: uint32_t ChPri; 119: uint32_t WOMode; 120: uint32_t UnalignMode; 121: }DMACPrmParamCFG; 122: 123: void AG903_DMACPrmGetCTRL_REG(uint8_t unit, DMACPrmParamCTRL *ctrl); 124: void AG903_DMACPrmSetCTRL_REG(uint8_t unit, DMACPrmParamCTRL *ctrl); 125: void AG903_DMACPrmGetCFG_REG(uint8_t unit, DMACPrmParamCFG *cfg); 126: void AG903_DMACPrmSetCFG_REG(uint8_t unit, DMACPrmParamCFG *cfg); 127: void AG903_DMACPrmGetSRC_ADDR(uint8_t unit, uint32_t *addr); 128: void AG903_DMACPrmSetSRC_ADDR(uint8_t unit, uint32_t addr); 129: void AG903_DMACPrmGetDST_ADDR(uint8_t unit, uint32_t *addr); 130: void AG903_DMACPrmSetDST_ADDR(uint8_t unit, uint32_t addr); 131: void AG903_DMACPrmGetLINK_LIST_POINTER(uint8_t unit, uint32_t *addr); 132: void AG903_DMACPrmSetLINK_LIST_POINTER(uint8_t unit, uint32_t addr); 133: void AG903_DMACPrmGetTRNS_SIZE_1D(uint8_t unit, uint32_t *cnt); 134: void AG903_DMACPrmSetTRNS_SIZE_1D(uint8_t unit, uint32_t cnt); 135: void AG903_DMACPrmGetTRNS_SIZE_2D(uint8_t unit, uint32_t *x_cnt, uint32_t *y_cnt); 136: void AG903_DMACPrmSetTRNS_SIZE_2D(uint8_t unit, uint32_t x_cnt, uint32_t y_cnt); 137: void AG903_DMACPrmGetSTRIDE_SRC_DST_ADDR(uint8_t unit, uint32_t *src, uint32_t *dst); 138: void AG903_DMACPrmSetSTRIDE_SRC_DST_ADDR(uint8_t unit, uint32_t src, uint32_t dst); 139: 140: 141: #define AG903_DMACPrmGetTERMCOUNT_INT AG903_DMACPrmGetTIMECOUNT_INT 142: #define AG903_DMACPrmSetTERMCOUNT_INT_CLEAR AG903_DMACPrmSetTIMECOUNT_INT_CLEAR 143: #define AG903_DMACPrmGetTERMCOUNT_STATUS AG903_DMACPrmGetTIMECOUNT_STATUS 144: 145: #ifdef __cplusplus 146: } 147: #endif 148: #endif
名前 
説明 
1D転送時の最大転送サイズ 
DMACイベント数 
DMACハンドシェークポート数 dma_req[n]/dma_ack[n] 
DMACチャンネル数 
AX51903_DS06.pdfによるレジスタ名の変更への対応 
This is macro AG903_DMACPrmGetTERMCOUNT_STATUS. 
This is macro AG903_DMACPrmSetTERMCOUNT_INT_CLEAR. 
 
名前 
説明 
 
DMACnCFG_REG レジスタの値保持用構造体 
 
DMACnCTRL_REG レジスタの値保持用構造体 
 
DMACHW_FEATURE レジスタの値保持用構造体 
 
DMACnCFG_REG レジスタの値保持用構造体 
 
DMACnCTRL_REG レジスタの値保持用構造体 
 
DMACHW_FEATURE レジスタの値保持用構造体 
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.