On 02/20/2014 11:27 AM, Gilles Chanteperdrix wrote:
>> Our aim is to design NRT master and slaves (c++ objects) that
>> communicates with a RT task. The RT task is in charge of establish
>> a continuous communication with EtherCAT devices. This task
>> communicates with NRT master by the xddp sockects. The problem
>> appears when the master call the RT SOEM functions for the
>> configuration, because it is necessary that the master becomes a RT
>> task, if not it doesn't work. And it has no sense.
>
> Only a task with a shadow can call RT services, because it needs to be
> able to switch to primary mode, and only a task with a shadow can
> switch to primary mode.
By RT services, I mean rt_mutex services and RTDM callbacks for which
you implemented the _rt version. If you mean anything else (like Xenomai
services), then you are to imprecise again, and the answer to your
question is "it depends", because on a service by service basis, some
need a task with a shadow, some do not. But usually, if a service needs
a task with a shadow, that is because its implementation requires it
(for instance because the task needs to be suspended in Xenomai
scheduler, which can not happen if the task does not have a shadow).
--
Gilles.
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai