Florian Fouillet <Florian.Fouillet@...>
I am currently working on the Zephyr OS with a FDRM_K64f board from NXP.
To create thread I was first using K_THREAD_DEFINE.
I want to create an abstraction layer if I need to use different OS (a platform with generic definition for thread) so I won't have to modify the source code.
Since I can't call K_THREAD_DEFINE inside a function (I was ending up with an error). I am trying to use k_thread_create.
It's working when I create 1 thread but I have error as soon as I am trying to create multiple one.
Here for example I am creating 2 threads:
struct k_thread thread1 ;
k_thread_stack_t threadStack1 ;
struct k_thread thread2 ;
k_thread_stack_t threadStack2 ;
k_thread_create(&thread1, & threadStack1, 1024, (void*)DL_StateMachine_ModeHandler, NULL, NULL, NULL, 7, 0, K_NO_WAIT);
k_thread_create(&thread2, & threadStack2, 1024, (void*)DL_StateMachine_MsgHandler, NULL, NULL, NULL, 7, 0, K_NO_WAIT);
it compiles but then when I am trying to execute it I have the following issue:
Does anyone know how to correctly use the k_thread_create? My other question is, what’s k_thread_stack_t and what to do with it?