Device: mcf52258
MQX version: 3.8.1
Compilier: CW Eclipse 10.2
My application has 15 tasks. For about a year all the tasks have been getting created without any issues that I can observe.
For no reason that I can see, the last task to be created is returning 0 when _task_create() is called. I verified thread priorities, and there are no duplicates.
What can I do to determine why the last task is not getting created?
-Vince
_task_get_error() returned code 4 which is MQX_OUT_OF_MEMORY. I reduced the size of the stack for the task that was returning the error and everything works now.
Thanks to both of you for your quick response and your help. I feel both of your responses are correct, but the forum only allows one to be selected as correct.
Hello Vincent Gagliardo,
please look at the code in mqx/source/kernel/task.c where it's _task_create_internal function. This one is invoked inside _task_create.
You'll see all possible returns with MQX_NULL_TASK_ID.
Snippet from MQX reference manual:
Traits
• If the child is on another processor, blocks the creator until the child is created
• On failure, calls _task_set_error() to set the task error code (see task error codes)
• For _task_create():
— If the child is on the same processor, preempts the creator if the child is a higher priority
Have you checked task error code ? Once you solve your problem, share it with the community. ThX.
Regards,
c0170