dma.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:4k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. PARTICULAR PURPOSE.
  6. Copyright (c) 2003  Microsoft Corporation
  7. Module Name: DMA.H
  8. Abstract: Definitions for the DMA controller found on the Samsung 2440A CPU.
  9.   
  10. Notes:
  11. Environment:
  12. -----------------------------------------------------------------------------*/
  13. #include <windows.h>
  14. //===================== Register Configuration Constants ======================
  15. //----- Register definitions for DISRCn control register -----
  16. //
  17. // bits[30-0] = start address of source data to transfer
  18. //----- Register definitions for DISRCCn control register -----
  19. //
  20. #define SOURCE_PERIPHERAL_BUS 0x00000002
  21. #define FIXED_SOURCE_ADDRESS 0x00000001
  22. //----- Register definitions for DIDSTn control register -----
  23. //
  24. // bits[30-0] = start address of destination for the transfer
  25. //----- Register definitions for DIDSTCn control register -----
  26. //
  27. #define DESTINATION_PERIPHERAL_BUS 0x00000002
  28. #define FIXED_DESTINATION_ADDRESS 0x00000001
  29. //----- Register definitions for DCONn control register -----
  30. //
  31. #define HANDSHAKE_MODE 0x80000000
  32. #define DREQ_DACK_SYNC 0x40000000
  33. #define GENERATE_INTERRUPT 0x20000000
  34. #define SELECT_BURST_TRANSFER 0x10000000
  35. #define SELECT_WHOLE_SERVICE_MODE 0x08000000
  36. // bits[26-24] = select DMA source for the respective channel:
  37. //------------------------------------------------------------
  38. #define XDREQ0_DMA0 0x00000000
  39. #define UART0_DMA0 0x01000000
  40. #define MMC_DMA0 0x02000000
  41. #define TIMER_DMA0 0x03000000
  42. #define USB_EP1_DMA0 0x04000000
  43. #define I2SSDO_DMA0 0x05000000
  44. #define AC97PCMIN_DMA0 0x06000000 // AC97 PCMIN
  45. #define XDREQ1_DMA1 0x00000000
  46. #define UART1_DMA1 0x01000000
  47. #define I2SSDI_DMA1 0x02000000
  48. #define SPI_DMA1 0x03000000
  49. #define USB_EP2_DMA1 0x04000000
  50. #define AC97PCMOUT_DMA1 0x05000000 // AC97 PCMOUT
  51. #define MMC_DMA1 0x06000000
  52. #define I2SSDO_DMA2 0x00000000
  53. #define I2SSDI_DMA2 0x01000000
  54. #define MMC_DMA2 0x02000000
  55. #define TIMER_DMA2 0x03000000
  56. #define USB_EP3_DMA2 0x04000000
  57. #define AC97PCMIN_DMA2 0x05000000 // AC97 PCMIN
  58. #define AC97MICIN_DMA2 0x06000000 // AC97 MICIN
  59. #define UART2_DMA3 0x00000000
  60. #define MMC_DMA3 0x01000000
  61. #define SPI_DMA3 0x02000000
  62. #define TIMER_DMA3 0x03000000
  63. #define USB_EP4_DMA3 0x04000000
  64. #define AC97MICIN_DMA3 0x05000000 // AC97 MICIN
  65. #define AC97PCMOUT_DMA3 0x06000000 // AC97 PCMOUT
  66. //------------------------------------------------------------
  67. #define DMA_TRIGGERED_BY_HARDWARE 0x00800000
  68. #define NO_DMA_AUTO_RELOAD 0x00400000
  69. // bits[21-20] = select transfer word size
  70. //------------------------------------------------------------
  71. #define TRANSFER_BYTE 0x00000000 // 8  bits
  72. #define TRANSFER_HALF_WORD 0x00100000 // 16 bits
  73. #define TRANSFER_WORD 0x00200000 // 32 bits
  74. //
  75. // bits[19-0] = used to specify the number of transfer operations in a DMA request
  76. //----- Register definitions for DSTATn status register -----
  77. #define DMA_TRANSFER_IN_PROGRESS 0x00100000
  78. //
  79. // bits[19-0] = the current transfer count
  80. //----- Register definitions for DCSRCn configuration register -----
  81. //
  82. // bits[30-0] = current source address for DMA channel n
  83. //----- Register definitions for DCDSTn configuration register -----
  84. //
  85. // bits[30-0] = current destination address for DMA channel n
  86. //----- Register definitions for DMASKTRIGn configuration register -----
  87. #define STOP_DMA_TRANSFER 0x00000004
  88. #define ENABLE_DMA_CHANNEL 0x00000002
  89. #define DMA_SW_TRIGGER 0x00000001
  90. //=============================================================================