Ni_pcimio dma underrun

I'm writing a program that generates analog output through a National
Instructions PCI-6731.  Sometimes when it starts up I get a "ni_pcimio:
DMA underrun" error message.  I'm pretty sure it is because I'm calling
comedi_command() before I call write().  The odd thing is it says to
fill the buffer with write before calling comedi_command() in the
example at http://www.comedi.org/doc/x403.html#FOURTHPROGRAM  but then
in the example code it doesn't call write() first.  Did I miss
something?  Is the example actually not following it's own
recommendation?  Also, I'm trying to figure out the recovery from this
error because I don't want my program to stall/crash/lockup.  Is the
best strategy to close the file /dev/comedi0 and reopen/reinitialize it?

Thanks,
Ben

Received on 2005-09-02Z23:14:38