diff --git a/MainModesArbiter.c b/MainModesArbiter.c index 3af192a..fcbb4f0 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -8,11 +8,13 @@ void Mma_Init( tGpios *gpios, tAdcs *adcs, tSerialPorts *serialPorts, + tLinPorts *linPorts, tCanPorts *canPorts, tRtcs *rtcs ) { env->gpios = gpios; env->serialPorts = serialPorts; + env->linPorts = linPorts; env->canPorts = canPorts; env->rtcs = rtcs; env->adcs = adcs; diff --git a/MainModesArbiter.h b/MainModesArbiter.h index 37ba985..2ef5108 100644 --- a/MainModesArbiter.h +++ b/MainModesArbiter.h @@ -20,12 +20,16 @@ #include "SerialPortCan.h" #include "CanSerialPortFrameXCP.h" #include "CanSpamReceiver.h" +#include "Lins.h" +#include "LinTasks.h" + typedef struct { // Преферийные интерфесы tGpios *gpios; tSerialPorts *serialPorts; + tLinPorts *linPorts; tCanPorts *canPorts; tLoggerToSerialPort slog; tStorageOnFlash *flash; @@ -45,6 +49,8 @@ typedef struct { tCanSpamReceiver canSpamReceiver; + tLinTaskActuator linTaskActuator0; + struct { osThreadId_t id; uint32_t stack[2048 * 1]; @@ -62,6 +68,7 @@ void Mma_Init( tGpios *gpios, tAdcs *adcs, tSerialPorts *serialPorts, + tLinPorts *linPorts, tCanPorts *canPorts, tRtcs *rtcs ); diff --git a/MainModesArbiter_InitStage.c b/MainModesArbiter_InitStage.c index ae9e952..b3c7a63 100644 --- a/MainModesArbiter_InitStage.c +++ b/MainModesArbiter_InitStage.c @@ -69,6 +69,14 @@ static void Mma_InitSubSystems(tMma *env) { CanSpamReceiver_StartThread(&env->canSpamReceiver); + + tLinData *linData = Lin0_Init(GetLin0CallbackHandler, &env->linTaskActuator0.linData); + + Lin_0_Init(&env->linTaskActuator0, linData, &env->linPorts->lin0_Io); + + Li0_StartThread(&env->linTaskActuator0); + + LoggerInfoStatic(&env->slog.logger, LOG_TASK_MAIN, "Конец инициализации подсистем") }