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) 2002  Microsoft Corporation
  7. Module Name: DMA.H
  8. Abstract: Definitions for the DMA controller found on the Samsung 2410 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 XDREQ1_DMA1 0x00000000
  44. #define UART1_DMA1 0x01000000
  45. #define I2SSDI_DMA1 0x02000000
  46. #define SPI_DMA1 0x03000000
  47. #define USB_EP2_DMA1 0x04000000
  48. #define I2SSDO_DMA2 0x00000000
  49. #define I2SSDI_DMA2 0x01000000
  50. #define MMC_DMA2 0x02000000
  51. #define TIMER_DMA2 0x03000000
  52. #define USB_EP3_DMA2 0x04000000
  53. #define UART2_DMA3 0x00000000
  54. #define MMC_DMA3 0x01000000
  55. #define SPI_DMA3 0x02000000
  56. #define TIMER_DMA3 0x03000000
  57. #define USB_EP4_DMA3 0x04000000
  58. //------------------------------------------------------------
  59. #define DMA_TRIGGERED_BY_HARDWARE 0x00800000
  60. #define NO_DMA_AUTO_RELOAD 0x00400000
  61. // bits[21-20] = select transfer word size
  62. //------------------------------------------------------------
  63. #define TRANSFER_BYTE 0x00000000 // 8  bits
  64. #define TRANSFER_HALF_WORD 0x00100000 // 16 bits
  65. #define TRANSFER_WORD 0x00200000 // 32 bits
  66. //
  67. // bits[19-0] = used to specify the number of transfer operations in a DMA request
  68. //----- Register definitions for DSTATn status register -----
  69. #define DMA_TRANSFER_IN_PROGRESS 0x00100000
  70. //
  71. // bits[19-0] = the current transfer count
  72. //----- Register definitions for DCSRCn configuration register -----
  73. //
  74. // bits[30-0] = current source address for DMA channel n
  75. //----- Register definitions for DCDSTn configuration register -----
  76. //
  77. // bits[30-0] = current destination address for DMA channel n
  78. //----- Register definitions for DMASKTRIGn configuration register -----
  79. #define STOP_DMA_TRANSFER 0x00000004
  80. #define ENABLE_DMA_CHANNEL 0x00000002
  81. #define DMA_SW_TRIGGER 0x00000001
  82. //=============================================================================