EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: DMA Example
From: "Szalata, Zenon M." <[email protected]>
To: "EPICS Techtalk" <[email protected]>
Date: Fri, 18 Jul 2008 11:37:37 -0700
I am trying to implement code to do DMA data transfer from a VME module to mv6100 local memory using vxWorks routines: sysTempeDmaStart and sysTempeDmaStatus.  sysTempeDmaStart completes with status 0, which should be success.  It returns in the TEMPE_DMA_STATUS structure the following values:

  dmaDone=0					is this a failure?
  dstax=0x1000000				is this contents of the tempe status reg?
  dcsaUx=0x0
  dcsaLx=0x94080000			this is source address
  dcdaUx=0x0
  dcdaLx=0x29ae860			this is the destination address
  dclaUx=0x0
  dclaLx=0x0
  dcntx=0x54000				this is the remaining byte count
  timeBaseU=0x23				?
  timeBaseL=0x5e51d6f9			?

Because I set the userHandler=WAIT_FOREVER in structure TEMPE_DMA_ATTRIBUTES, I think that dmaDone=0 above, means that the dma failed.  If it indeed failed, I fail to see why.  The field dstax=0x1000000 I think is trying to tell me why it fails, but I do not know how to interpret it.  I set up the dma for a large data transfer (0x54000) but I also tried smaller byte count, 1024, which also fails.  The reason I think that the dma fails is that the local memory buffer holds zero values after the call to sysTempeDmaStart, while I see non zero values in the VME module buffer.

I wonder if some of you folks with much experience in these matters could provide me with a simple example how to setup the call to sysTempeDmaStart routine.
Thanks in advance,
Zen


Replies:
Re: DMA Example Andrew Johnson

Navigate by Date:
Prev: RE: Building 32-bit EPICS binaries on 64-bit Linux systems Mark Rivers
Next: How to introduce usage of genSub ? haquin
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: MAXv problem update EPICS record Ron Sluiter
Next: Re: DMA Example Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·