diff --git a/epicardium/modules/dispatcher.c b/epicardium/modules/dispatcher.c index 1f504eca52e20bfb8c118281c772942e72ac7a18..03f8534cc0a1c02dccc61f8c03e486e2ab472ff8 100644 --- a/epicardium/modules/dispatcher.c +++ b/epicardium/modules/dispatcher.c @@ -13,14 +13,17 @@ TaskHandle_t dispatcher_task_id; static StaticSemaphore_t api_mutex_data; SemaphoreHandle_t api_mutex = NULL; +void dispatcher_mutex_init(void) +{ + api_mutex = xSemaphoreCreateMutexStatic(&api_mutex_data); +} + /* * API dispatcher task. This task will sleep until an API call is issued and * then wake up to dispatch it. */ void vApiDispatcher(void *pvParameters) { - api_mutex = xSemaphoreCreateMutexStatic(&api_mutex_data); - LOG_DEBUG("dispatcher", "Ready."); while (1) { if (api_dispatcher_poll()) { diff --git a/epicardium/modules/hardware.c b/epicardium/modules/hardware.c index c944c6b9f140b5e6952c28996943bf19d1254332..91a87471ab87b518eb2297c9f009110c33e819b9 100644 --- a/epicardium/modules/hardware.c +++ b/epicardium/modules/hardware.c @@ -177,6 +177,11 @@ int hardware_early_init(void) */ hwlock_init(); + /* + * API Dispatcher Mutex + */ + dispatcher_mutex_init(); + return 0; } diff --git a/epicardium/modules/modules.h b/epicardium/modules/modules.h index 9eea0cb6130dbe3e94492e402620100714177af5..87124144fd98a5c4c230596ac4234f4f84332d98 100644 --- a/epicardium/modules/modules.h +++ b/epicardium/modules/modules.h @@ -9,6 +9,7 @@ /* ---------- Dispatcher --------------------------------------------------- */ void vApiDispatcher(void *pvParameters); +void dispatcher_mutex_init(void); extern SemaphoreHandle_t api_mutex; extern TaskHandle_t dispatcher_task_id;