Hi Alexis,

  thanks a lot or the reply. Just to check: is it possible to use commands with 
digital subdevices at all? I am not sure whether I understood your comment 
below correctly. Are your *currently* working to enable commands for DIO 
subdevices?

Thanks a lot!

-Stefan


On Mar 3, 2010, at 15:58, Alexis Berlemont wrote:

> Hi Stefan,
> 
> Sorry for the late reply, I was unavailable yesterday.
> 
> Stefan Schaal wrote:
>> Hi Alexis,
>> we pulled your analogy branch, and now cmd_write works. Great, and thanks a 
>> lot! Next, I tried to use commands with the digital IO subdevice on our 
>> board (subdevice #2), but the get an error message:
>> [ 2482.771913] Analogy: a4l_check_cmddesc: scan_begin_src, trigger 
>> unsupported
> Unfortunately, cmd_write was not designed to work with digital
> subdevices; the command's fields are not appropriate, I am trying to
> make it work quite quickly.
> 
>> Is there just missing support for the DIO subdevices using commands?
>> Best wishes,
>> -Stefan
>> ps.: feel free to use our machine for debugging -- it now has the latest 
>> version of your software installed with linux kernel 2.6.29.5.
>> On Feb 28, 2010, at 16:24, Alexis Berlemont wrote:
>>> Alexis Berlemont wrote:
>>>> Hi,
>>>> Stefan Schaal wrote:
>>>>> Hi Alexis,
>>>>> 
>>>>> On Feb 18, 2010, at 14:34, Alexis Berlemont wrote:
>>>>> 
>>>>>> I have some problems with
>>>>>>> implementing commands on my NI6259 so far.
>>>>>> Could you remind me what was the problem ?
>>>>> See the print-outs below for the problem we have.
>>>>> 
>>>>> Thanks so much for looking into this!
>>>>> 
>>>>> -Stefan
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> Using the cmd_write() function that you provide in analogy, we get the 
>>>>> following problem:
>>>>> 
>>>> I am currently trying to fix this bug, which is not that easy. I just
>>>> have one question (that I remember I have already asked you in some way,
>>>> but I just want to be sure):
>>>> Does this bug occur the very first time you launched cmd_write (I mean
>>>> after a reboot) ?
>>>> 
>>> I managed at last to fix the bug you were facing (at least I hope so).
>>> The problem was located in the trigger callback which waited for a
>>> bit-status (fifo half full) before going further; however, sometimes the
>>> DMA interrupt already occurred and cleaned everything behind your back.
>>> 
>>> I have not made a pull request because the current implementation is not
>>> perfect.
>>> 
>>> If you have some time, could you clone my git repository (branch:
>>> analogy) and check that a simple call to cmd_write does not trigger the
>>> bug anymore ?
>>> 
>>> Many thanks.
>>>>> r...@xenomai:/usr/src/xenomai/src/utils/analogy# ./cmd_write -v
>>>>> cmd_write: device analogy0 opened (fd=0)
>>>>> cmd_write: basic descriptor retrieved
>>>>>   subdevices count = 14
>>>>>   read subdevice index = 0
>>>>>   write subdevice index = 1
>>>>> cmd_write: complex descriptor retrieved
>>>>> cmd_write: channel 0
>>>>>   ranges count = 3
>>>>>   range's size = 16 (bits)
>>>>> cmd_write: channel 1
>>>>>   ranges count = 3
>>>>>   range's size = 16 (bits)
>>>>> cmd_write: scan size = 4
>>>>> cmd_write: size to write  = 400
>>>>> cmd_write: command successfully sent
>>>>> cmd_write: triggering failed (ret=-32)
>>>>> 
>>>>> r...@xenomai:/usr/src/xenomai/src/utils/analogy# dmesg -c
>>>>> [133345.213865] Analogy: analogy_ni_pcimio: ni_mio_common: interrupt: 
>>>>> b_status=0002 m1_status=80a80000
>>>>> [133345.332719] Analogy: analogy_ni_pcimio: ni_ao_wait_for_dma_load: 
>>>>> timed out waiting for dma load<3>Analogy: a4l_do_special_insn: execution 
>>>>> of the instruction failed (err=-32)
>>>>> 
>>>>> 
>>>>> Another problem we have is with the --mmap option:
>>>>> 
>>>>> r...@xenomai:/usr/src/xenomai/src/utils/analogy# ./cmd_write -v --mmap
>>>>> cmd_write: device analogy0 opened (fd=0)
>>>>> cmd_write: basic descriptor retrieved
>>>>>   subdevices count = 14
>>>>>   read subdevice index = 0
>>>>>   write subdevice index = 1
>>>>> cmd_write: complex descriptor retrieved
>>>>> cmd_write: channel 0
>>>>>   ranges count = 3
>>>>>   range's size = 16 (bits)
>>>>> cmd_write: channel 1
>>>>>   ranges count = 3
>>>>>   range's size = 16 (bits)
>>>>> cmd_write: scan size = 4
>>>>> cmd_write: size to write  = 400
>>>>> cmd_write: buffer size = 65536 bytes
>>>>> cmd_write: a4l_mmap() failed (ret=-22)
>>>>> 
>>>>> 
>>>>> r...@xenomai:/usr/src/xenomai/src/utils/analogy# dmesg -c
>>>>> [133408.942998] Analogy: a4l_ioctl_mmap: mmap not allowed on this 
>>>>> subdevice
>>>>> 
>>>>> 
>>>> Alexis.
>>> Alexis.
>>> 
> Alexis.
> 


_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to