⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csl_dmahal.h

📁 Ti C6416 上对FLASH操作得范例程序
💻 H
📖 第 1 页 / 共 3 页
字号:
  #define  DMA_PRICTL_OF(x)             _VALUEOF(x)

  #define DMA_PRICTL_DEFAULT (Uint32)( \
     _PER_FDEFAULT(DMA,PRICTL,DSTRLD)\
    |_PER_FDEFAULT(DMA,PRICTL,SRCRLD)\
    |_PER_FDEFAULT(DMA,PRICTL,EMOD)\
    |_PER_FDEFAULT(DMA,PRICTL,FS)\
    |_PER_FDEFAULT(DMA,PRICTL,TCINT)\
    |_PER_FDEFAULT(DMA,PRICTL,PRI)\
    |_PER_FDEFAULT(DMA,PRICTL,WSYNC)\
    |_PER_FDEFAULT(DMA,PRICTL,RSYNC)\
    |_PER_FDEFAULT(DMA,PRICTL,INDEX)\
    |_PER_FDEFAULT(DMA,PRICTL,CNTRLD)\
    |_PER_FDEFAULT(DMA,PRICTL,SPLIT)\
    |_PER_FDEFAULT(DMA,PRICTL,ESIZE)\
    |_PER_FDEFAULT(DMA,PRICTL,DSTDIR)\
    |_PER_FDEFAULT(DMA,PRICTL,SRCDIR)\
    |_PER_FDEFAULT(DMA,PRICTL,STATUS)\
    |_PER_FDEFAULT(DMA,PRICTL,START)\
  )

  #define DMA_PRICTL_RMK(dstrld,srcrld,emod,fs,tcint,pri,wsync,rsync,index,\
    cntrld,split,esize,dstdir,srcdir,start) (Uint32)( \
     _PER_FMK(DMA,PRICTL,DSTRLD,dstrld)\
    |_PER_FMK(DMA,PRICTL,SRCRLD,srcrld)\
    |_PER_FMK(DMA,PRICTL,EMOD,emod)\
    |_PER_FMK(DMA,PRICTL,FS,fs)\
    |_PER_FMK(DMA,PRICTL,TCINT,tcint)\
    |_PER_FMK(DMA,PRICTL,PRI,pri)\
    |_PER_FMK(DMA,PRICTL,WSYNC,wsync)\
    |_PER_FMK(DMA,PRICTL,RSYNC,rsync)\
    |_PER_FMK(DMA,PRICTL,INDEX,index)\
    |_PER_FMK(DMA,PRICTL,CNTRLD,cntrld)\
    |_PER_FMK(DMA,PRICTL,SPLIT,split)\
    |_PER_FMK(DMA,PRICTL,ESIZE,esize)\
    |_PER_FMK(DMA,PRICTL,DSTDIR,dstdir)\
    |_PER_FMK(DMA,PRICTL,SRCDIR,srcdir)\
    |_PER_FMK(DMA,PRICTL,START,start)\
  )

  #define _DMA_PRICTL_FGET(N,FIELD)\
    _PER_FGET(_DMA_PRICTL##N##_ADDR,DMA,PRICTL,##FIELD)

  #define _DMA_PRICTL_FSET(N,FIELD,field)\
    _PER_FSET(_DMA_PRICTL##N##_ADDR,DMA,PRICTL,##FIELD,field)

  #define _DMA_PRICTL_FSETS(N,FIELD,SYM)\
    _PER_FSETS(_DMA_PRICTL##N##_ADDR,DMA,PRICTL,##FIELD,##SYM)

  #define _DMA_PRICTL0_FGET(FIELD) _DMA_PRICTL_FGET(0,##FIELD)
  #define _DMA_PRICTL1_FGET(FIELD) _DMA_PRICTL_FGET(1,##FIELD)
  #define _DMA_PRICTL2_FGET(FIELD) _DMA_PRICTL_FGET(2,##FIELD)
  #define _DMA_PRICTL3_FGET(FIELD) _DMA_PRICTL_FGET(3,##FIELD)

  #define _DMA_PRICTL0_FSET(FIELD,f) _DMA_PRICTL_FSET(0,##FIELD,f)
  #define _DMA_PRICTL1_FSET(FIELD,f) _DMA_PRICTL_FSET(1,##FIELD,f)
  #define _DMA_PRICTL2_FSET(FIELD,f) _DMA_PRICTL_FSET(2,##FIELD,f)
  #define _DMA_PRICTL3_FSET(FIELD,f) _DMA_PRICTL_FSET(3,##FIELD,f)

  #define _DMA_PRICTL0_FSETS(FIELD,SYM) _DMA_PRICTL_FSETS(0,##FIELD,##SYM)
  #define _DMA_PRICTL1_FSETS(FIELD,SYM) _DMA_PRICTL_FSETS(1,##FIELD,##SYM)
  #define _DMA_PRICTL2_FSETS(FIELD,SYM) _DMA_PRICTL_FSETS(2,##FIELD,##SYM)
  #define _DMA_PRICTL3_FSETS(FIELD,SYM) _DMA_PRICTL_FSETS(3,##FIELD,##SYM)


/******************************************************************************\
* _____________________
* |                   |
* |  S E C C T L      |
* |___________________|
*
* SECCTL0  - channel seccondary control register 0
* SECCTL1  - channel seccondary control register 1
* SECCTL2  - channel seccondary control register 2
* SECCTL3  - channel seccondary control register 3
*
* FIELDS (msb -> lsb)
* (rw) WSPOL (1)
* (rw) RSPOL (1)
* (rw) FSIG  (1)
* (rw) DMACEN
* (rw) WSYNCCLR
* (rw) WSYNCSTAT
* (rw) RSYNCCLR
* (rw) RSYNCSTAT
* (rw) WDROPIE
* (rw) WDROPCOND
* (rw) RDROPIE
* (rw) RDROPCOND
* (rw) BLOCKIE
* (rw) BLOCKCOND
* (rw) LASTIE
* (rw) LASTCOND
* (rw) FRAMEIE
* (rw) FRAMECOND
* (rw) SXIE
* (rw) SXCOND
*
* (1) only on 6202 / 6203 /6204 /6205 devices
*
\******************************************************************************/
  #define _DMA_SECCTL_OFFSET            2

  #define _DMA_SECCTL0_ADDR             0x01840008u
  #define _DMA_SECCTL1_ADDR             0x01840048u
  #define _DMA_SECCTL2_ADDR             0x0184000Cu
  #define _DMA_SECCTL3_ADDR             0x0184004Cu

#if (_DMA_COND1)
  #define _DMA_SECCTL_WSPOL_MASK        0x00200000u
  #define _DMA_SECCTL_WSPOL_SHIFT       0x00000015u
  #define  DMA_SECCTL_WSPOL_DEFAULT     0x00000000u
  #define  DMA_SECCTL_WSPOL_OF(x)       _VALUEOF(x)
  #define  DMA_SECCTL_WSPOL_NA          0x00000000u
  #define  DMA_SECCTL_WSPOL_ACTIVEHIGH  0x00000000u
  #define  DMA_SECCTL_WSPOL_ACTIVELOW   0x00000001u

  #define _DMA_SECCTL_RSPOL_MASK        0x00100000u
  #define _DMA_SECCTL_RSPOL_SHIFT       0x00000014u
  #define  DMA_SECCTL_RSPOL_DEFAULT     0x00000000u
  #define  DMA_SECCTL_RSPOL_OF(x)       _VALUEOF(x)
  #define  DMA_SECCTL_RSPOL_NA          0x00000000u
  #define  DMA_SECCTL_RSPOL_ACTIVEHIGH  0x00000000u
  #define  DMA_SECCTL_RSPOL_ACTIVELOW   0x00000001u

  #define _DMA_SECCTL_FSIG_MASK         0x00080000u
  #define _DMA_SECCTL_FSIG_SHIFT        0x00000013u
  #define  DMA_SECCTL_FSIG_DEFAULT      0x00000000u
  #define  DMA_SECCTL_FSIG_OF(x)        _VALUEOF(x)
  #define  DMA_SECCTL_FSIG_NA           0x00000000u
  #define  DMA_SECCTL_FSIG_NORMAL       0x00000000u
  #define  DMA_SECCTL_FSIG_IGNORE       0x00000001u
#endif

  #define _DMA_SECCTL_DMACEN_MASK       0x00070000u
  #define _DMA_SECCTL_DMACEN_SHIFT      0x00000010u
  #define  DMA_SECCTL_DMACEN_DEFAULT    0x00000000u
  #define  DMA_SECCTL_DMACEN_OF(x)      _VALUEOF(x)
  #define  DMA_SECCTL_DMACEN_LOW        0x00000000u
  #define  DMA_SECCTL_DMACEN_HIGH       0x00000001u
  #define  DMA_SECCTL_DMACEN_RSYNCSTAT  0x00000002u
  #define  DMA_SECCTL_DMACEN_WSYNCSTAT  0x00000003u
  #define  DMA_SECCTL_DMACEN_FRAMECOND  0x00000004u
  #define  DMA_SECCTL_DMACEN_BLOCKCOND  0x00000005u

  #define _DMA_SECCTL_WSYNCCLR_MASK     0x00008000u
  #define _DMA_SECCTL_WSYNCCLR_SHIFT    0x0000000Fu
  #define  DMA_SECCTL_WSYNCCLR_DEFAULT  0x00000000u
  #define  DMA_SECCTL_WSYNCCLR_OF(x)    _VALUEOF(x)
  #define  DMA_SECCTL_WSYNCCLR_NOTHING  0x00000000u
  #define  DMA_SECCTL_WSYNCCLR_CLEAR    0x00000001u

  #define _DMA_SECCTL_WSYNCSTAT_MASK    0x00004000u
  #define _DMA_SECCTL_WSYNCSTAT_SHIFT   0x0000000Eu
  #define  DMA_SECCTL_WSYNCSTAT_DEFAULT 0x00000000u
  #define  DMA_SECCTL_WSYNCSTAT_OF(x)   _VALUEOF(x)
  #define  DMA_SECCTL_WSYNCSTAT_CLEAR   0x00000000u
  #define  DMA_SECCTL_WSYNCSTAT_SET     0x00000001u

  #define _DMA_SECCTL_RSYNCCLR_MASK     0x00002000u
  #define _DMA_SECCTL_RSYNCCLR_SHIFT    0x0000000Du
  #define  DMA_SECCTL_RSYNCCLR_DEFAULT  0x00000000u
  #define  DMA_SECCTL_RSYNCCLR_OF(x)    _VALUEOF(x)
  #define  DMA_SECCTL_RSYNCCLR_NOTHING  0x00000000u
  #define  DMA_SECCTL_RSYNCCLR_CLEAR    0x00000001u

  #define _DMA_SECCTL_RSYNCSTAT_MASK    0x00001000u
  #define _DMA_SECCTL_RSYNCSTAT_SHIFT   0x0000000Cu
  #define  DMA_SECCTL_RSYNCSTAT_DEFAULT 0x00000000u
  #define  DMA_SECCTL_RSYNCSTAT_OF(x)   _VALUEOF(x)
  #define  DMA_SECCTL_RSYNCSTAT_CLEAR   0x00000000u
  #define  DMA_SECCTL_RSYNCSTAT_SET     0x00000001u

  #define _DMA_SECCTL_WDROPIE_MASK      0x00000800u
  #define _DMA_SECCTL_WDROPIE_SHIFT     0x0000000Bu
  #define  DMA_SECCTL_WDROPIE_DEFAULT   0x00000000u
  #define  DMA_SECCTL_WDROPIE_OF(x)     _VALUEOF(x)
  #define  DMA_SECCTL_WDROPIE_DISABLE   0x00000000u
  #define  DMA_SECCTL_WDROPIE_ENABLE    0x00000001u

  #define _DMA_SECCTL_WDROPCOND_MASK    0x00000400u
  #define _DMA_SECCTL_WDROPCOND_SHIFT   0x0000000Au
  #define  DMA_SECCTL_WDROPCOND_DEFAULT 0x00000000u
  #define  DMA_SECCTL_WDROPCOND_OF(x)   _VALUEOF(x)
  #define  DMA_SECCTL_WDROPCOND_CLEAR   0x00000000u
  #define  DMA_SECCTL_WDROPCOND_SET     0x00000001u

  #define _DMA_SECCTL_RDROPIE_MASK      0x00000200u
  #define _DMA_SECCTL_RDROPIE_SHIFT     0x00000009u
  #define  DMA_SECCTL_RDROPIE_DEFAULT   0x00000000u
  #define  DMA_SECCTL_RDROPIE_OF(x)     _VALUEOF(x)
  #define  DMA_SECCTL_RDROPIE_DISABLE   0x00000000u
  #define  DMA_SECCTL_RDROPIE_ENABLE    0x00000001u

  #define _DMA_SECCTL_RDROPCOND_MASK    0x00000100u
  #define _DMA_SECCTL_RDROPCOND_SHIFT   0x00000008u
  #define  DMA_SECCTL_RDROPCOND_DEFAULT 0x00000000u
  #define  DMA_SECCTL_RDROPCOND_OF(x)   _VALUEOF(x)
  #define  DMA_SECCTL_RDROPCOND_CLEAR   0x00000000u
  #define  DMA_SECCTL_RDROPCOND_SET     0x00000001u

  #define _DMA_SECCTL_BLOCKIE_MASK      0x00000080u
  #define _DMA_SECCTL_BLOCKIE_SHIFT     0x00000007u
  #define  DMA_SECCTL_BLOCKIE_DEFAULT   0x00000001u
  #define  DMA_SECCTL_BLOCKIE_OF(x)     _VALUEOF(x)
  #define  DMA_SECCTL_BLOCKIE_DISABLE   0x00000000u
  #define  DMA_SECCTL_BLOCKIE_ENABLE    0x00000001u

  #define _DMA_SECCTL_BLOCKCOND_MASK    0x00000040u
  #define _DMA_SECCTL_BLOCKCOND_SHIFT   0x00000006u
  #define  DMA_SECCTL_BLOCKCOND_DEFAULT 0x00000000u
  #define  DMA_SECCTL_BLOCKCOND_OF(x)   _VALUEOF(x)
  #define  DMA_SECCTL_BLOCKCOND_CLEAR   0x00000000u
  #define  DMA_SECCTL_BLOCKCOND_SET     0x00000001u

  #define _DMA_SECCTL_LASTIE_MASK       0x00000020u
  #define _DMA_SECCTL_LASTIE_SHIFT      0x00000005u
  #define  DMA_SECCTL_LASTIE_DEFAULT    0x00000000u
  #define  DMA_SECCTL_LASTIE_OF(x)      _VALUEOF(x)
  #define  DMA_SECCTL_LASTIE_DISABLE    0x00000000u
  #define  DMA_SECCTL_LASTIE_ENABLE     0x00000001u

  #define _DMA_SECCTL_LASTCOND_MASK     0x00000010u
  #define _DMA_SECCTL_LASTCOND_SHIFT    0x00000004u
  #define  DMA_SECCTL_LASTCOND_DEFAULT  0x00000000u
  #define  DMA_SECCTL_LASTCOND_OF(x)    _VALUEOF(x)
  #define  DMA_SECCTL_LASTCOND_CLEAR    0x00000000u
  #define  DMA_SECCTL_LASTCOND_SET      0x00000001u

  #define _DMA_SECCTL_FRAMEIE_MASK      0x00000008u
  #define _DMA_SECCTL_FRAMEIE_SHIFT     0x00000003u
  #define  DMA_SECCTL_FRAMEIE_DEFAULT   0x00000000u
  #define  DMA_SECCTL_FRAMEIE_OF(x)     _VALUEOF(x)
  #define  DMA_SECCTL_FRAMEIE_DISABLE   0x00000000u
  #define  DMA_SECCTL_FRAMEIE_ENABLE    0x00000001u

  #define _DMA_SECCTL_FRAMECOND_MASK    0x00000004u
  #define _DMA_SECCTL_FRAMECOND_SHIFT   0x00000002u
  #define  DMA_SECCTL_FRAMECOND_DEFAULT 0x00000000u
  #define  DMA_SECCTL_FRAMECOND_OF(x)   _VALUEOF(x)
  #define  DMA_SECCTL_FRAMECOND_CLEAR   0x00000000u
  #define  DMA_SECCTL_FRAMECOND_SET     0x00000001u

  #define _DMA_SECCTL_SXIE_MASK         0x00000002u
  #define _DMA_SECCTL_SXIE_SHIFT        0x00000001u
  #define  DMA_SECCTL_SXIE_DEFAULT      0x00000000u
  #define  DMA_SECCTL_SXIE_OF(x)        _VALUEOF(x)
  #define  DMA_SECCTL_SXIE_DISABLE      0x00000000u
  #define  DMA_SECCTL_SXIE_ENABLE       0x00000001u

  #define _DMA_SECCTL_SXCOND_MASK       0x00000001u
  #define _DMA_SECCTL_SXCOND_SHIFT      0x00000000u
  #define  DMA_SECCTL_SXCOND_DEFAULT    0x00000000u
  #define  DMA_SECCTL_SXCOND_OF(x)      _VALUEOF(x)
  #define  DMA_SECCTL_SXCOND_CLEAR      0x00000000u
  #define  DMA_SECCTL_SXCOND_SET        0x00000001u

  #define  DMA_SECCTL_OF(x)             _VALUEOF(x)

#if (_DMA_COND1)
  #define DMA_SECCTL_DEFAULT (Uint32)( \
     _PER_FDEFAULT(DMA,SECCTL,WSPOL)\
    |_PER_FDEFAULT(DMA,SECCTL,RSPOL)\
    |_PER_FDEFAULT(DMA,SECCTL,FSIG)\
    |_PER_FDEFAULT(DMA,SECCTL,DMACEN)\
    |_PER_FDEFAULT(DMA,SECCTL,WSYNCCLR)\
    |_PER_FDEFAULT(DMA,SECCTL,WSYNCSTAT)\
    |_PER_FDEFAULT(DMA,SECCTL,RSYNCCLR)\
    |_PER_FDEFAULT(DMA,SECCTL,RSYNCSTAT)\
    |_PER_FDEFAULT(DMA,SECCTL,WDROPIE)\
    |_PER_FDEFAULT(DMA,SECCTL,WDROPCOND)\
    |_PER_FDEFAULT(DMA,SECCTL,RDROPIE)\
    |_PER_FDEFAULT(DMA,SECCTL,RDROPCOND)\
    |_PER_FDEFAULT(DMA,SECCTL,BLOCKIE)\
    |_PER_FDEFAULT(DMA,SECCTL,BLOCKCOND)\
    |_PER_FDEFAULT(DMA,SECCTL,LASTIE)\
    |_PER_FDEFAULT(DMA,SECCTL,LASTCOND)\
    |_PER_FDEFAULT(DMA,SECCTL,FRAMEIE)\
    |_PER_FDEFAULT(DMA,SECCTL,FRAMECOND)\
    |_PER_FDEFAULT(DMA,SECCTL,SXIE)\
    |_PER_FDEFAULT(DMA,SECCTL,SXCOND)\
  )

  #define DMA_SECCTL_RMK(wspol,rspol,fsig,dmacen,wsyncclr,wsyncstat,rsyncclr,\
    rsyncstat,wdropie,wdropcond,rdropie,rdropcond,blockie,blockcond,\
    lastie,lastcond,frameie,framecond,sxie,sxcond) (Uint32)( \
     _PER_FMK(DMA,SECCTL,WSPOL,wspol)\
    |_PER_FMK(DMA,SECCTL,RSPOL,rspol)\
    |_PER_FMK(DMA,SECCTL,FSIG,fsig)\
    |_PER_FMK(DMA,SECCTL,DMACEN,dmacen)\
    |_PER_FMK(DMA,SECCTL,WSYNCCLR,wsyncclr)\
    |_PER_FMK(DMA,SECCTL,WSYNCSTAT,wsyncstat)\
    |_PER_FMK(DMA,SECCTL,RSYNCCLR,rsyncclr)\
    |_PER_FMK(DMA,SECCTL,RSYNCSTAT,rsyncstat)\
    |_PER_FMK(DMA,SECCTL,WDROPIE,wdropie)\
    |_PER_FMK(DMA,SECCTL,WDROPCOND,wdropcond)\
    |_PER_FMK(DMA,SECCTL,RDROPIE,rdropie)\
    |_PER_FMK(DMA,SECCTL,RDROPCOND,rdropcond)\
    |_PER_FMK(DMA,SECCTL,BLOCKIE,blockie)\
    |_PER_FMK(DMA,SECCTL,BLOCKCOND,blockcond)\
    |_PER_FMK(DMA,SECCTL,LASTIE,lastie)\
    |_PER_FMK(DMA,SECCTL,LASTCOND,lastcond)\
    |_PER_FMK(DMA,SECCTL,FRAMEIE,frameie)\
    |_PER_FMK(DMA,SECCTL,FRAMECOND,framecond)\
    |_PER_FMK(DMA,SECCTL,SXIE,sxie)\
    |_PER_FMK(DMA,SECCTL,SXCOND,sxcond)\
  )
#endif

#if (!_DMA_COND1)
  #define DMA_SECCTL_DEFAULT (Uint32)( \
     _PER_FDEFAULT(DMA,SECCTL,DMACEN)\
    |_PER_FDEFAULT(DMA,SECCTL,WSYNCCLR)\
    |_PER_FDEFAULT(DMA,SECCTL,WSYNCSTAT)\
    |_PER_FDEFAULT(DMA,SECCTL,RSYNCCLR)\
    |_PER_FDEFAULT(DMA,SECCTL,RSYNCSTAT)\
    |_PER_FDEFAULT(DMA,SECCTL,WDROPIE)\
    |_PER_FDEFAULT(DMA,SECCTL,WDROPCOND)\
    |_PER_FDEFAULT(DMA,SECCTL,RDROPIE)\
    |_PER_FDEFAULT(DMA,SECCTL,RDROPCOND)\
    |_PER_FDEFAULT(DMA,SECCTL,BLOCKIE)\
    |_PER_FDEFAULT(DMA,SECCTL,BLOCKCOND)\
    |_PER_FDEFAULT(DMA,SECCTL,LASTIE)\
    |_PER_FDEFAULT(DMA,SECCTL,LASTCOND)\
    |_PER_FDEFAULT(DMA,SECCTL,FRAMEIE)\
    |_PER_FDEFAULT(DMA,SECCTL,FRAMECOND)\
    |_PER_FDEFAULT(DMA,SECCTL,SXIE)\
    |_PER_FDEFAULT(DMA,SECCTL,SXCOND)\
  )

  #define DMA_SECCTL_RMK(dmacen,wsyncclr,wsyncstat,rsyncclr,\
    rsyncstat,wdropie,wdropcond,rdropie,rdropcond,blockie,blockcond,\
    lastie,lastcond,frameie,framecond,sxie,sxcond) (Uint32)( \
     _PER_FMK(DMA,SECCTL,DMACEN,dmacen)\
    |_PER_FMK(DMA,SECCTL,WSYNCCLR,wsyncclr)\
    |_PER_FMK(DMA,SECCTL,WSYNCSTAT,wsyncstat)\
    |_PER_FMK(DMA,SECCTL,RSYNCCLR,rsyncclr)\
    |_PER_FMK(DMA,SECCTL,RSYNCSTAT,rsyncstat)\
    |_PER_FMK(DMA,SECCTL,WDROPIE,wdropie)\
    |_PER_FMK(DMA,SECCTL,WDROPCOND,wdropcond)\
    |_PER_FMK(DMA,SECCTL,RDROPIE,rdropie)\
    |_PER_FMK(DMA,SECCTL,RDROPCOND,rdropcond)\
    |_PER_FMK(DMA,SECCTL,BLOCKIE,blockie)\
    |_PER_FMK(DMA,SECCTL,BLOCKCOND,blockcond)\
    |_PER_FMK(DMA,SECCTL,LASTIE,lastie)\
    |_PER_FMK(DMA,SECCTL,LASTCOND,lastcond)\
    |_PER_FMK(DMA,SECCTL,FRAMEIE,frameie)\
    |_PER_FMK(DMA,SECCTL,FRAMECOND,framecond)\
    |_PER_FMK(DMA,SECCTL,SXIE,sxie)\
    |_PER_FMK(DMA,SECCTL,SXCOND,sxcond)\
  )
#endif

  #define _DMA_SECCTL_COND_MASK (\
     _DMA_SECCTL_WDROPCOND_MASK\
    |_DMA_SECCTL_RDROPCOND_MASK\
    |_DMA_SECCTL_BLOCKCOND_MASK\
    |_DMA_SECCTL_LASTCOND_MASK\
    |_DMA_SECCTL_FRAMECOND_MASK\
    |_DMA_SECCTL_SXCOND_MASK\
  )

  #define _DMA_SECCTL_IE_MASK (\
     _DMA_SECCTL_WDROPIE_MASK\
    |_DMA_SECCTL_RDROPIE_MASK\
    |_DMA_SECCTL_BLOCKIE_MASK\
    |_DMA_SECCTL_LASTIE_MASK\
    |_DMA_SECCTL_FRAMEIE_MASK\
    |_DMA_SECCTL_SXIE_MASK\
  )

  #define _DMA_SECCTL_STAT_MASK (\
     _DMA_SECCTL_WSYNCSTAT_MASK\
    |_DMA_SECCTL_RSYNCSTAT_MASK\
  )

  #define _DMA_SECCTL_CLR_MASK (\
     _DMA_SECCTL_WSYNCCLR_MASK\
    |_DMA_SECCTL_RSYNCCLR_MASK\
  )

  #define _DMA_SECCTL_FGET(N,FIELD)\
    _PER_FGET(_DMA_SECCTL##N##_ADDR,DMA,SECCTL,##FIELD)

  #define _DMA_SECCTL_FSET(N,FIELD,field)\
    _PER_RAOI(_DMA_SECCTL##N##_ADDR,DMA,SECCTL,\
      (0xFFFF0AAA&~_DMA_SECCTL_##FIELD##_MASK),\
      (0x00000555&~_DMA_SECCTL_##FIELD##_MASK)\
      |_PER_FMK(DMA,SECCTL,##FIELD,field),\
      0x00000000\
    )

  #define _DMA_SECCTL_FSETS(N,FIELD,SYM)\
    _PER_RAOI(_DMA_SECCTL##N##_ADDR,DMA,SECCTL,\
      (0xFFFF0AAA&~_DMA_SECCTL_##FIELD##_MASK),\
      (0x00000555&~_DMA_SECCTL_##FIELD##_MASK)\
      |_PER_FMKS(DMA,SECCTL,##FIELD,##SYM),\
      0x00000000\
    )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -