Stéphane ANCELOT wrote:
> I have checked what has happened when nothing plugged on canbus:
>
> a bus error occured .
> when bus error occurs the ecc register contains possible error information.
> once we read the ecc register (in isr routine) the error code register
> mechanism is enabled again . Thus another bus error interrupt appears
> again and a new BEI ocurs
>
> In this case, the system spend time in the ISR routine of the CAN
> driver.It gives you enough time to run a linux console , but not to
> launch other tasks like X...
>
> It would be necessary to find a way to manage this kind of problem and
> avoiding enabling forever Bus Error Interrupt.
Note that the current implementation of RT-Socket-CAN shows this behaviour on
purpose. See also [1] ("may flood!"). Whether this is the right handling or
not may be discussed here. I admit that the current implementation forces an
application developer to take more responsibility but that is not a bug of
the underlying driver/stack per se. Look, you don't connect anything to the
CAN bus, start a *real-time* application which sends a message to a
non-existent CAN node. This is an error situation an it is more than ever for
a real-time task. So the proper reaction for a RT-application would be to
handle those errors and e.g. shut down the CAN interface which in this case
will force the CAN hardware to stop its endless attempts to send the message.
[1]http://www.xenomai.org/documentation/trunk/html/api/group__rtcan.html#g0b068b1221129441b89967ee2ddb9f44
--
Sebastian
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help