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

📄 msdma.h

📁 MSTAR03的数码相框的代码
💻 H
字号:
#ifndef __MSDMA_H_
#define __MSDMA_H_

#define MIN_DMA_TRANSFER_BYTES       64

#define REG_DMA_INTR               (0x200<<OffShift)

//#define DMA_BASE_ADDRESS()         usbRegAddress + (0x200<<OffShift)
#define DMA_BASE_ADDRESS()         (0x200<<OffShift)

#define DMA_CNTL_REGISTER(channel)  (__u32 *)(DMA_BASE_ADDRESS() + ((0x10 * (channel - 1) + 4)<<OffShift))
#define DMA_ADDR_REGISTER(channel)  (__u32 *)(DMA_BASE_ADDRESS() + ((0x10 * (channel - 1) + 8)<<OffShift))
#define DMA_COUNT_REGISTER(channel) (__u32 *)(DMA_BASE_ADDRESS() + ((0x10 * (channel - 1) + 0xc)<<OffShift))

#define DMA_TX                     0x2
#define DMA_RX                     0x0

#define DMA_MODE_ZERO              0x0
#define DMA_MODE_ONE               0x4

#define DMA_IRQ_ENABLE             0x8
#define DMA_IRQ_DISABLE            0x0

#define DMA_MODE_MASK              (DMA_TX | DMA_MODE_ONE)

#define DMA_TX_ZERO_IRQ       (DMA_TX | DMA_MODE_ZERO | DMA_IRQ_ENABLE)
#define DMA_RX_ZERO_IRQ       (DMA_RX | DMA_MODE_ZERO | DMA_IRQ_ENABLE)

#define DMA_TX_ONE_IRQ       (DMA_TX | DMA_MODE_ONE | DMA_IRQ_ENABLE)
#define DMA_RX_ONE_IRQ       (DMA_RX | DMA_MODE_ONE | DMA_IRQ_ENABLE)

#define DMA_BurstMode        0x03

#define RXCSR2_MODE1  (M_RXCSR2_AUTOCLEAR | M_RXCSR2_DMAENAB | M_RXCSR2_DMAMODE)
#define TXCSR2_MODE1  (M_TXCSR2_DMAENAB | M_TXCSR2_AUTOSET | M_TXCSR2_DMAMODE)

#define DMA_ENABLE_BIT          0x0001
#define DMA_BUSERROR_BIT        0x0100
#define DMA_ENDPOINT_SHIFT           4

#define EP_IRQ_ENABLE                1
#define EP_IRQ_DISABLE               0
#define EP_IRQ_RX                    0
#define EP_IRQ_TX                    2

#define Enable_TX_EP_Interrupt(endpoint) \
      Control_EP_Interrupt(endpoint, (EP_IRQ_ENABLE | EP_IRQ_TX));

#define Enable_RX_EP_Interrupt(endpoint) \
      Control_EP_Interrupt(endpoint, (EP_IRQ_ENABLE | EP_IRQ_RX));

#define Disable_TX_EP_Interrupt(endpoint) \
      Control_EP_Interrupt(endpoint, (EP_IRQ_DISABLE | EP_IRQ_TX));

#define Disable_RX_EP_Interrupt(endpoint) \
      Control_EP_Interrupt(endpoint, (EP_IRQ_DISABLE | EP_IRQ_RX));

#define Enable_TX_EP_InterruptINT(endpoint) \
      Control_EP_InterruptINT(endpoint, (EP_IRQ_ENABLE | EP_IRQ_TX));

#define Enable_RX_EP_InterruptINT(endpoint) \
      Control_EP_InterruptINT(endpoint, (EP_IRQ_ENABLE | EP_IRQ_RX));

#define Disable_TX_EP_InterruptINT(endpoint) \
      Control_EP_InterruptINT(endpoint, (EP_IRQ_DISABLE | EP_IRQ_TX));

#define Disable_RX_EP_InterruptINT(endpoint) \
      Control_EP_InterruptINT(endpoint, (EP_IRQ_DISABLE | EP_IRQ_RX));

extern void USB_DMA_IRQ_Handler(__u8);
extern __s8 usbSet_DMA(__s8, __u16);
extern __s8 usbSet_DMAINT(__s8, __u16);
#endif  //__MSDMA_H_

⌨️ 快捷键说明

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