Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.66 KB | None | 0 0
  1. // fake code which works similar
  2.  
  3. extern uint32_t dma_src_address;
  4. extern uint32_t dma_dst_address;
  5. extern uint32_t dma_length;
  6. extenr uint32_t dma_control;
  7. extenr uint32_t dma_status;
  8.  
  9.  
  10. void dma_memcpy(void * dst, void const * src, size_t length)
  11. {
  12.     dma_src_address = src;
  13.     dma_dst_address = dst;
  14.     dma_length = length;
  15.  
  16.     // start the operation here
  17.     dma_control = DMA_START | DMA_INCREMENT_SRC | DMA_INCREMENT_DST;
  18.    
  19.     while(dma_status & DMA_IN_PROGRESS) {
  20.         /* do stuff here */
  21.         ;
  22.     }
  23. }
  24.  
  25.  
  26.  
  27. // real chip reference:
  28. http://www.keil.com/dd/docs/datashts/nxp/lpc18xx/um10430.pdf
  29. chapter 17: LPC18xx General Purpose DMA (GPDMA) controller (page 349)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement