Germain Olivier wrote:
Thank you for your response

So rootcb isn't the "scheduler task".
I was thinking it was this task which was determining what thread to run,
depending of its parameters (priority, periodicity, scheduling mode).

I go back to the code to understand how it work ...


Use the simulator to understand the dynamics of this code: it brings you single-stepping of the entire Xenomai core over GDB, at source code level.


Germain


xnthread_init does part of the initialization. The low level part of
rootcb (its xnarchtcb_t member) is initialized twice, first by the call
to xnarch_init_tcb in xnthread_init, and then overriden by
xnarch_init_root_tcb in xnpod_init.

For any other thread than root, the thread would be given a stack and
entry point by the call to xnarch_init_thread in xnpod_start_thread. But
the root thread is Xenomai idle task, a placeholder for whatever task
Linux is currenty running. At the time where xnpod_init is called, the
root thread is the current context, so already has a stack and is
already running.

--


                                            Gilles Chanteperdrix.




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



--

Philippe.

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

Reply via email to