- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Thank you for this very instructive forum! I have a problem with a DMA between an SDRAM controller and the Fifoed UART. I transmit bytes from SDRAM to the UART. Unfortunately, I lost the 518 first bytes. This is my code : tx_sdram_uart = alt_dma_txchan_open("/dev/dma_uart"); if(tx_sdram_uart==NULL) printf("DMA NOT OPEN\n"); else printf("DMA OPEN\n"); if( alt_dma_txchan_ioctl(tx_sdram_uart, ALT_DMA_SET_MODE_8, NULL) < 0) printf("Error DMA_io\n"); else printf("DMA_io OK\n"); if(alt_dma_txchan_ioctl(tx_sdram_uart, ALT_DMA_TX_ONLY_ON, (void *)(FIFOED_UART_BT_BASE+1) ) < 0) printf("Error DMA_io\n"); else printf("DMA_io OK\n"); tx_done = 0; if( alt_dma_txchan_send(tx_sdram_uart, (void *)JPEG_IMAGE_BASE , nb_data_jpeg, dma_done, NULL)<0) printf("Failed to post transmit request!, reason = %ld\n", rc); else printf("DMA_send OK\n"); while(tx_done == 0); alt_dma_txchan_close(tx_sdram_uart); If I change nb_data_jpeg by a number < 512 I have the correct transmission, but if the number of bytes is superior to 512 the first bytes are not transmit. The dma is configured with SOPC builder. Not enable burst transfer and allowed transaction only byte. Do you have an idea to resolve my bug. I become crazy!!! Thank you GregLink Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
![](/skins/images/318B71AC6E18CAB8E2CA944B2397E849/responsive_peak/images/icon_anonymous_message.png)
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page