Initialize tasks data earlier

This commit is contained in:
Hans Christian Olaussen 2022-04-16 16:01:50 +02:00
parent f5a56804b1
commit 205b8cd2ad
3 changed files with 10 additions and 1 deletions

View File

@ -261,6 +261,10 @@ void init(void)
systemInit();
// Initialize task data as soon as possible. Has to be done before tasksInit(),
// and any init code that may try to modify task behaviour before tasksInit().
tasksInitData();
// initialize IO (needed for all IO operations)
IOInitGlobal();

View File

@ -438,12 +438,16 @@ task_t *getTask(unsigned taskId)
return &tasks[taskId];
}
void tasksInit(void)
// Has to be done before tasksInit() in order to initialize any task data which may be uninitialized at boot
void tasksInitData(void)
{
for (int i = 0; i < TASK_COUNT; i++) {
tasks[i].attribute = &task_attributes[i];
}
}
void tasksInit(void)
{
schedulerInit();
setTaskEnabled(TASK_MAIN, true);

View File

@ -22,6 +22,7 @@
#include "scheduler/scheduler.h"
void tasksInitData(void);
void tasksInit(void);
task_t *getTask(unsigned taskId);