valentina lomi

Bus Error on DMA transfer

Discussion created by valentina lomi on Feb 23, 2007
Latest reply on Feb 26, 2007 by valentina lomi
Hallo,
I'm trying to have a DMA transfer from UART1 to a RX buffer I've allocated.
I'm working on a M52235EVB.
 
Find below the configuration for the DMA channel 1 I've chosen for such purpose:

  MCF_DMA_DMAREQC |= MCF_DMA_DMAREQC_DMAC1(0x9); //route DMA Channel 1 req to
              //UART1 RX
  MCF_DMA_SAR1=(volatile unsigned long)&MCF_UART1_URB; //DMA Channel 1 source address
              //is UART1 RX buffer
  MCF_DMA_DAR1=(volatile unsigned long) uart->ucpRx_buf;     //DMA Channel 1 destination address
              //is user RX buffer
  MCF_DMA_BCR1=MCF_DMA_BCR_BCR(0x008);   //number of byte to be transferred
  
  MCF_DMA_DCR1 |= //MCF_DMA_DCR_INT |    //enable interrupt on completion of transfer
      MCF_DMA_DCR_EEXT |    //enable external request
      MCF_DMA_DCR_CS |    //forces a single read/write cycle per request
      MCF_DMA_DCR_SSIZE(0x1) |  //1 byte size for source bus cycle
      MCF_DMA_DCR_DINC |    //enable destination increment
      MCF_DMA_DCR_DSIZE(0x1);   //1 byte size for dest bus cycle
     
 }
 
 MCF_SCM_RAMBAR |= (MCF_SCM_RAMBAR_BDE );
  
As you will see, I haven't enabled the interrupt on transfer completion yet. By now I just want to see that
transfer takes place.
 
Unfortunately no transfer happens and I get this content of DMA Status Register:
 
DSR1=0x21000008
 
which indicates a bus error on source.
What is happening? 
Anyone can help me?
 
Valentina

Outcomes