This is my first mail on Xenomai, earIier I posted my messages on ADEOS
forum regarding IPIPE-1.0.5 porting on MIPS. Recently I started porting
Xenomai for the same architecture and could do some work related to
1. Xenomai Intialization of ROOT task
2. Timer and Interrupt related code.
4. Trap Handlers
The Code changes are done considering MIPS 4KeC
I could define Architecture related Task control block(TCB) user task,
active task, stack elements with inthe xnarchtcb_t.
Currently I am facing problem in creating and starting the task. After
understanding code flow, i could see that
Correct me if I am wrong!!!
1. When user calls "rt_task_create", the task state is defined as,
XNDORMANT, XNRELAX, XNSHADOW.
2. When user calls "rt_task_start", since the RTTASK being XNSHADOW,
xnpod_start_thread calls xnshadow_start and inturn resume which will remove
the task from the DORMANT state, however the XNRELAX state remains. This
makes sched->Ready queue being emptty. Later when xnpod_schedule is called,
since thread is not in the Ready queue and still remains in the RELAX mode,
xnpod_schedule exits from the context of "goto signal_unlock_and_exit;"
.Therefore this makes that my body of the new task not being executed.
Also I don't even see my "xnarch_init_thread" being called to intialize
startup functions for the new task. May I know when exactly this function is
called for the first newly created task.
I don't know where I am going wrong, few hints about xnpod_schedule on First
task creation will help me in verifying and debugging of my context swicth
code written fro this Architecture.
Xenomai-core mailing list