What is the right way to migrate form old chThdCreateI API?
Old:
Code: Select all
osCreateTask(const char_t *name, OsTaskCode taskCode,
void *params, size_t stackSize, int_t priority)
{
void *wa;
thread_t *tp;
stackSize *= sizeof(uint_t);
wa = osAllocMem(THD_WORKING_AREA_SIZE(stackSize));
tp = chThdCreateI(wa, THD_WORKING_AREA_SIZE(stackSize), priority, (tfunc_t) taskCode, params);
chSchWakeupS(tp, MSG_OK);
}
New:
Code: Select all
osCreateTask(const char_t *name, OsTaskCode taskCode,
void *params, size_t stackSize, int_t priority)
{
void *wa;
thread_t *tp;
stackSize *= sizeof(uint_t);
wa = osAllocMem(THD_WORKING_AREA_SIZE(stackSize));
thread_descriptor_t td = {name, THD_WORKING_AREA_BASE(wa), THD_WORKING_AREA_BASE(wa) + THD_WORKING_AREA_SIZE(stackSize) / sizeof (stkalign_t), priority, (tfunc_t) taskCode, params};
tp = chThdCreateI(&td)
chSchRescheduleS();
}