On 04/24/2012 02:57 PM, Gilles Chanteperdrix wrote:
> On 04/24/2012 08:47 PM, Andrew Tannenbaum wrote:
>> I'm running
>>
>>      Linux 2.6.38.8
>>      Xenomai 2.6.0
>>      Atom N270 CPU
>>
>> I'm talking to CAN with a PEAK PCI SJA1000 CAN adapter.
>>
>> I have a control loop running at 200 Hz, and I use it to drive a motor
>> and read an encoder using rtcan.  My code is based on the
>> rtcansend/rtcanrecv examples.
>>
>> I found a bug where my control loop was hanging, and I've isolated the
>> problem so that it may be reproduced with Xenomai supplied tools,
>> without using my own code.
>>
>> The problem is:
>>
>> When I have a loop that is sending CAN packets, if I read
>> /proc/rtcan/rtcan0/registers at the same time, it causes the loop to
>> hang.  The hang is in rt_dev_sendto.
>>
>> To reproduce:
>>
>> Configure the CAN controller
>>
>>      $ rtcanconfig rtcan0 --baudrate=1000000 start
>>
>> Send packets, in this case, SYNC messages at 1000 Hz
>> with tty output 1 Hz.
>>
>>      $ rtcansend rtcan0 -i 0x80 -p 1000 -l 1000000
>>
>> It will print CAN SYNC (0x80) messages:
>>
>>      <0x080> [0]
>>      <0x080> [0]
>>      ...
>>
>> In another window, read rtcan0/registers in a loop (10 Hz):
>>
>>      $ while :; do cat /proc/rtcan/rtcan0/registers; sleep .1; done
> 
> Hi Andrew,
> 
> I am probably not the one which will answer your question, because I
> know nothing about CAN hardware. What I know however is that some
> hardware registers, when read, have side effects. For instance reading
> an interrupt status may deassert the hardware interrupt.
> 
> The code for /proc/rtcan/rtcan0/registers is compiled if
> CONFIG_XENO_DRIVERS_CAN_DEBUG is #defined.
> 
> This would seem to indicate that perhaps some registers have side
> effects, and so this /proc file more a debug tool than something which
> should be used on a regular basis.
> 
> Regards.
> 

Thanks, Gilles, I see.

It seems that the registers are the only member of /proc/rtcan that is
#ifdef CONFIG_XENO_DRIVERS_CAN_DEBUG so it looks like the rest should be
safe.

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to