📄 csl_edmahal.h
字号:
#define _EDMA_QOPT_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QOPT_ADDR,EDMA,OPT,##FIELD,##SYM)
#define _EDMA_QSOPT_FGET(FIELD)\
_PER_FGET(_EDMA_QSOPT_ADDR,EDMA,OPT,##FIELD)
#define _EDMA_QSOPT_FSET(FIELD,field)\
_PER_FSET(_EDMA_QSOPT_ADDR,EDMA,OPT,##FIELD,field)
#define _EDMA_QSOPT_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QSOPT_ADDR,EDMA,OPT,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | S R C |
* | Q S R C |
* | Q S S R C |
* |___________________|
*
* SRC - source address parameter
* QSRC - QDMA source address register
* QSSRC - QDMA source address pseudo register
*
* FIELDS (msb -> lsb)
* (rw) SRC
*
\******************************************************************************/
#define _EDMA_SRC_OFFSET 1
#define _EDMA_QSRC_OFFSET 1
#define _EDMA_QSSRC_OFFSET 9
#define _EDMA_QSRC_ADDR 0x02000004u
#define _EDMA_QSSRC_ADDR 0x02000024u
#define EDMA_QSRC EDMA_REG(QSRC)
#define EDMA_QSSRC EDMA_REG(QSSRC)
#define _EDMA_SRC_SRC_MASK 0xFFFFFFFFu
#define _EDMA_SRC_SRC_SHIFT 0x00000000u
#define EDMA_SRC_SRC_DEFAULT 0x00000000u
#define EDMA_SRC_SRC_OF(x) _VALUEOF(x)
#define EDMA_SRC_OF(x) _VALUEOF(x)
#define EDMA_SRC_DEFAULT (Uint32)(\
_PER_FDEFAULT(EDMA,SRC,SRC)\
)
#define EDMA_SRC_RMK(src) (Uint32)(\
_PER_FMK(EDMA,SRC,SRC,src) \
)
#define _EDMA_QSRC_FGET(FIELD)\
_PER_FGET(_EDMA_QSRC_ADDR,EDMA,SRC,##FIELD)
#define _EDMA_QSRC_FSET(FIELD,field)\
_PER_FSET(_EDMA_QSRC_ADDR,EDMA,SRC,##FIELD,field)
#define _EDMA_QSRC_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QSRC_ADDR,EDMA,SRC,##FIELD,##SYM)
#define _EDMA_QSSRC_FGET(FIELD)\
_PER_FGET(_EDMA_QSSRC_ADDR,EDMA,SRC,##FIELD)
#define _EDMA_QSSRC_FSET(FIELD,field)\
_PER_FSET(_EDMA_QSSRC_ADDR,EDMA,SRC,##FIELD,field)
#define _EDMA_QSSRC_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QSSRC_ADDR,EDMA,SRC,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | C N T |
* | Q C N T |
* | Q S C N T |
* |___________________|
*
* CNT - transfer count parameter
* QCNT - QDMA transfer count register
* QSCNT - QDMA transfer count pseudo register
*
* FIELDS (msb -> lsb)
* (rw) FRMCNT
* (rw) ELECNT
*
\******************************************************************************/
#define _EDMA_CNT_OFFSET 2
#define _EDMA_QCNT_OFFSET 2
#define _EDMA_QSCNT_OFFSET 10
#define _EDMA_QCNT_ADDR 0x02000008u
#define _EDMA_QSCNT_ADDR 0x02000028u
#define EDMA_QCNT EDMA_REG(QCNT)
#define EDMA_QSCNT EDMA_REG(QSCNT)
#define _EDMA_CNT_FRMCNT_MASK 0xFFFF0000u
#define _EDMA_CNT_FRMCNT_SHIFT 0x00000010u
#define EDMA_CNT_FRMCNT_DEFAULT 0x00000000u
#define EDMA_CNT_FRMCNT_OF(x) _VALUEOF(x)
#define _EDMA_CNT_ELECNT_MASK 0x0000FFFFu
#define _EDMA_CNT_ELECNT_SHIFT 0x00000000u
#define EDMA_CNT_ELECNT_DEFAULT 0x00000000u
#define EDMA_CNT_ELECNT_OF(x) _VALUEOF(x)
#define EDMA_CNT_OF(x) _VALUEOF(x)
#define EDMA_CNT_DEFAULT (Uint32)(\
_PER_FDEFAULT(EDMA,CNT,FRMCNT)\
|_PER_FDEFAULT(EDMA,CNT,ELECNT)\
)
#define EDMA_CNT_RMK(frmcnt,elecnt) (Uint32)(\
_PER_FMK(EDMA,CNT,FRMCNT,frmcnt) \
|_PER_FMK(EDMA,CNT,ELECNT,elecnt) \
)
#define _EDMA_QCNT_FGET(FIELD)\
_PER_FGET(_EDMA_QCNT_ADDR,EDMA,CNT,##FIELD)
#define _EDMA_QCNT_FSET(FIELD,field)\
_PER_FSET(_EDMA_QCNT_ADDR,EDMA,CNT,##FIELD,field)
#define _EDMA_QCNT_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QCNT_ADDR,EDMA,CNT,##FIELD,##SYM)
#define _EDMA_QSCNT_FGET(FIELD)\
_PER_FGET(_EDMA_QSCNT_ADDR,EDMA,CNT,##FIELD)
#define _EDMA_QSCNT_FSET(FIELD,field)\
_PER_FSET(_EDMA_QSCNT_ADDR,EDMA,CNT,##FIELD,field)
#define _EDMA_QSCNT_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QSCNT_ADDR,EDMA,CNT,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | D S T |
* | Q D S T |
* | Q S D S T |
* |___________________|
*
* DST - destination address parameter
* QDST - QDMA destination address register
* QSDST - QDMA destination address pseudo register
*
* FIELDS (msb -> lsb)
* (rw) DST
*
\******************************************************************************/
#define _EDMA_DST_OFFSET 3
#define _EDMA_QDST_OFFSET 3
#define _EDMA_QSDST_OFFSET 11
#define _EDMA_QDST_ADDR 0x0200000Cu
#define _EDMA_QSDST_ADDR 0x0200002Cu
#define EDMA_QDST EDMA_REG(QDST)
#define EDMA_QSDST EDMA_REG(QSDST)
#define _EDMA_DST_DST_MASK 0xFFFFFFFFu
#define _EDMA_DST_DST_SHIFT 0x00000000u
#define EDMA_DST_DST_DEFAULT 0x00000000u
#define EDMA_DST_DST_OF(x) _VALUEOF(x)
#define EDMA_DST_OF(x) _VALUEOF(x)
#define EDMA_DST_DEFAULT (Uint32)(\
_PER_FDEFAULT(EDMA,DST,DST)\
)
#define EDMA_DST_RMK(dst) (Uint32)(\
_PER_FMK(EDMA,DST,DST,dst) \
)
#define _EDMA_QDST_FGET(FIELD)\
_PER_FGET(_EDMA_QDST_ADDR,EDMA,DST,##FIELD)
#define _EDMA_QDST_FSET(FIELD,field)\
_PER_FSET(_EDMA_QDST_ADDR,EDMA,DST,##FIELD,field)
#define _EDMA_QDST_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QDST_ADDR,EDMA,DST,##FIELD,##SYM)
#define _EDMA_QSDST_FGET(FIELD)\
_PER_FGET(_EDMA_QSDST_ADDR,EDMA,DST,##FIELD)
#define _EDMA_QSDST_FSET(FIELD,field)\
_PER_FSET(_EDMA_QSDST_ADDR,EDMA,DST,##FIELD,field)
#define _EDMA_QSDST_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QSDST_ADDR,EDMA,DST,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | I D X |
* | Q I D X |
* | Q S I D X |
* |___________________|
*
* IDX - index parameter
* QIDX - QDMA index register
* QSIDX - QDMA index pseudo register
*
* FIELDS (msb -> lsb)
* (rw) FRMIDX
* (rw) ELEIDX
*
\******************************************************************************/
#define _EDMA_IDX_OFFSET 4
#define _EDMA_QIDX_OFFSET 4
#define _EDMA_QSIDX_OFFSET 12
#define _EDMA_QIDX_ADDR 0x02000010u
#define _EDMA_QSIDX_ADDR 0x02000030u
#define EDMA_QIDX EDMA_REG(QIDX)
#define EDMA_QSIDX EDMA_REG(QSIDX)
#define _EDMA_IDX_FRMIDX_MASK 0xFFFF0000u
#define _EDMA_IDX_FRMIDX_SHIFT 0x00000010u
#define EDMA_IDX_FRMIDX_DEFAULT 0x00000000u
#define EDMA_IDX_FRMIDX_OF(x) _VALUEOF(x)
#define _EDMA_IDX_ELEIDX_MASK 0x0000FFFFu
#define _EDMA_IDX_ELEIDX_SHIFT 0x00000000u
#define EDMA_IDX_ELEIDX_DEFAULT 0x00000000u
#define EDMA_IDX_ELEIDX_OF(x) _VALUEOF(x)
#define EDMA_IDX_OF(x) _VALUEOF(x)
#define EDMA_IDX_DEFAULT (Uint32)(\
_PER_FDEFAULT(EDMA,IDX,FRMIDX)\
|_PER_FDEFAULT(EDMA,IDX,ELEIDX)\
)
#define EDMA_IDX_RMK(frmidx,eleidx) (Uint32)(\
_PER_FMK(EDMA,IDX,FRMIDX,frmidx) \
|_PER_FMK(EDMA,IDX,ELEIDX,eleidx) \
)
#define _EDMA_QIDX_FGET(FIELD)\
_PER_FGET(_EDMA_QIDX_ADDR,EDMA,IDX,##FIELD)
#define _EDMA_QIDX_FSET(FIELD,field)\
_PER_FSET(_EDMA_QIDX_ADDR,EDMA,IDX,##FIELD,field)
#define _EDMA_QIDX_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QIDX_ADDR,EDMA,IDX,##FIELD,##SYM)
#define _EDMA_QSIDX_FGET(FIELD)\
_PER_FGET(_EDMA_QSIDX_ADDR,EDMA,IDX,##FIELD)
#define _EDMA_QSIDX_FSET(FIELD,field)\
_PER_FSET(_EDMA_QSIDX_ADDR,EDMA,IDX,##FIELD,field)
#define _EDMA_QSIDX_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QSIDX_ADDR,EDMA,IDX,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | R L D |
* | Q R L D |
* | Q S R L D |
* |___________________|
*
* RLD - count reload/link parameter
*
* FIELDS (msb -> lsb)
* (rw) ELECNT
* (rw) LINK
*
\******************************************************************************/
#define _EDMA_RLD_OFFSET 5
#define _EDMA_QRLD_OFFSET 5
#define _EDMA_QSRLD_OFFSET 13
#define _EDMA_QRLD_ADDR 0x02000014u
#define _EDMA_QSRLD_ADDR 0x02000034u
#define EDMA_QRLD EDMA_REG(QRLD)
#define EDMA_QSRLD EDMA_REG(QSRLD)
#define _EDMA_RLD_ELERLD_MASK 0xFFFF0000u
#define _EDMA_RLD_ELERLD_SHIFT 0x00000010u
#define EDMA_RLD_ELERLD_DEFAULT 0x00000000u
#define EDMA_RLD_ELERLD_OF(x) _VALUEOF(x)
#define _EDMA_RLD_LINK_MASK 0x0000FFFFu
#define _EDMA_RLD_LINK_SHIFT 0x00000000u
#define EDMA_RLD_LINK_DEFAULT 0x00000000u
#define EDMA_RLD_LINK_OF(x) _VALUEOF(x)
#define EDMA_RLD_OF(x) _VALUEOF(x)
#define EDMA_RLD_DEFAULT (Uint32)(\
_PER_FDEFAULT(EDMA,RLD,ELERLD)\
|_PER_FDEFAULT(EDMA,RLD,LINK)\
)
#define EDMA_RLD_RMK(elerld,link) (Uint32)(\
_PER_FMK(EDMA,RLD,ELERLD,elerld) \
|_PER_FMK(EDMA,RLD,LINK,link) \
)
#define _EDMA_QRLD_FGET(FIELD)\
_PER_FGET(_EDMA_QRLD_ADDR,EDMA,RLD,##FIELD)
#define _EDMA_QRLD_FSET(FIELD,field)\
_PER_FSET(_EDMA_QRLD_ADDR,EDMA,RLD,##FIELD,field)
#define _EDMA_QRLD_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QRLD_ADDR,EDMA,RLD,##FIELD,##SYM)
#define _EDMA_QSRLD_FGET(FIELD)\
_PER_FGET(_EDMA_QSRLD_ADDR,EDMA,RLD,##FIELD)
#define _EDMA_QSRLD_FSET(FIELD,field)\
_PER_FSET(_EDMA_QSRLD_ADDR,EDMA,RLD,##FIELD,field)
#define _EDMA_QSRLD_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_QSRLD_ADDR,EDMA,RLD,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | P Q S R |
* |___________________|
*
* PQSR - priority queue status register
*
* FIELDS (msb -> lsb)
* (r) PQ
*
\******************************************************************************/
#define _EDMA_PQSR_ADDR 0x01A0FFE0u
#define EDMA_PQSR EDMA_REG(PQSR)
#if (C64_SUPPORT)
#define _EDMA_PQSR_PQ_MASK 0x0000000Fu
#define _EDMA_PQSR_PQ_SHIFT 0x00000000u
#define EDMA_PQSR_PQ_DEFAULT 0x0000000Fu
#define EDMA_PQSR_PQ_OF(x) _VALUEOF(x)
#else
#define _EDMA_PQSR_PQ_MASK 0x00000007u
#define _EDMA_PQSR_PQ_SHIFT 0x00000000u
#define EDMA_PQSR_PQ_DEFAULT 0x00000007u
#define EDMA_PQSR_PQ_OF(x) _VALUEOF(x)
#endif
#define EDMA_PQSR_OF(x) _VALUEOF(x)
#define EDMA_PQSR_DEFAULT (Uint32)(\
_PER_FDEFAULT(EDMA,PQSR,PQ)\
)
#define EDMA_PQSR_RMK(pq) (Uint32)(\
_PER_FMK(EDMA,PQSR,PQ,pq)\
)
#define _EDMA_PQSR_FGET(FIELD)\
_PER_FGET(_EDMA_PQSR_ADDR,EDMA,PQSR,##FIELD)
#define _EDMA_PQSR_FSET(FIELD,field)\
_PER_FSET(_EDMA_PQSR_ADDR,EDMA,PQSR,##FIELD,field)
#define _EDMA_PQSR_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_PQSR_ADDR,EDMA,PQSR,##FIELD,##SYM)
/******************************************************************************\
* _____________________
* | |
* | P Q A R 0 |
* |___________________|
*
* PQAR0 - priority queue allocation register 0
*
* FIELDS (msb -> lsb)
* (r) PQA
*
\******************************************************************************/
#if (C64_SUPPORT)
#define _EDMA_PQAR0_ADDR 0x01A0FFC0u
#define EDMA_PQAR0 EDMA_REG(PQAR0)
#define _EDMA_PQAR0_PQA_MASK 0x00000007u
#define _EDMA_PQAR0_PQA_SHIFT 0x00000000u
#define EDMA_PQAR0_PQA_DEFAULT 0x00000002u
#define EDMA_PQAR0_PQA_OF(x) _VALUEOF(x)
#define EDMA_PQAR0_OF(x) _VALUEOF(x)
#define EDMA_PQAR0_DEFAULT (Uint32)(\
_PER_FDEFAULT(EDMA,PQAR0,PQA)\
)
#define EDMA_PQAR0_RMK(pqa) (Uint32)(\
_PER_FMK(EDMA,PQAR0,PQA,pqa)\
)
#define _EDMA_PQAR0_FGET(FIELD)\
_PER_FGET(_EDMA_PQAR0_ADDR,EDMA,PQAR0,FIELD)
#define _EDMA_PQAR0_FSET(FIELD,field)\
_PER_FSET(_EDMA_PQAR0_ADDR,EDMA,PQAR0,FIELD,field)
#define _EDMA_PQAR0_FSETS(FIELD,SYM)\
_PER_FSETS(_EDMA_PQAR0_ADDR,EDMA,PQAR0,FIELD,##SYM)
#endif
/******************************************************************************\
* _____________________
* | |
* | P Q A R 1 |
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -