HVAC_M7_MONO/APP/main.c

108 lines
2.3 KiB
C

//
// Created by cfif on 22.09.2025.
//
#include "Clock.h"
#include "cmsis_os.h"
#include "MainModesArbiter.h"
#include "LoggerInterface.h"
#include "PeripheralInterfaces.h"
//#define BOOT_AREA_LENGTH (256 * 1024)
//#define FIRMWARE_MAIN_ADDR (0x01000000 + BOOT_AREA_LENGTH)
//#define FIRMWARE_MAIN_RECOVERY_ADDR (FIRMWARE_MAIN_ADDR + FIRMWARE_MAIN_AREA_LENGTH)
tMma MAIN_ENV;
//deep sleep 98 116 197 264
//int _write(int fd, char* ptr, int len) {
// MAIN_ENV.serialPorts->cliVirtualPortOut_Io.transmit(MAIN_ENV.serialPorts->cliVirtualPortOut_Io.env, (uint8_t *)ptr, len, 0);
// return len;
//return 0;
//}
#define LOGGER &MAIN_ENV.slog.logger
#define LOG_SIGN "Model"
char buffer_printf[1024];
int printf(const char *format, ...) {
return 0;
va_list args;
va_start(args, format);
int ret = vsnprintf(buffer_printf, sizeof(buffer_printf), format, args);
va_end(args);
if (ret > 0) {
// if (buffer_printf[ret - 1] == '\n') {
// buffer_printf[ret - 1] = ' ';
// }
LoggerCnInfo(LOGGER, LOG_SIGN, buffer_printf, ret)
}
return ret;
}
_Noreturn void stop() {
while (1) {
asm("nop");
}
}
#define STOP stop();
#if (configCHECK_FOR_STACK_OVERFLOW > 0)
void vApplicationStackOverflowHook(TaskHandle_t xTask, const char *pcTaskName) {
PROCESS_UNUSED_VAR(xTask);
PROCESS_UNUSED_VAR(pcTaskName);
STOP
}
#endif
void FirmwareStopThread() {
ModelTask_StopThread(&MAIN_ENV.ModelTask);
Lin123_StopThread(&MAIN_ENV.linTaskActuator1);
Lin123_StopThread(&MAIN_ENV.linTaskActuator2);
Lin123_StopThread(&MAIN_ENV.linTaskActuator3);
Lin4_StopThread(&MAIN_ENV.linTaskSensor4);
Lin5_StopThread(&MAIN_ENV.linTaskSensor5);
ADC0_StopThread(&MAIN_ENV.adcTask0);
ADC1_StopThread(&MAIN_ENV.adcTask1);
LogTransmitter_StopThread(&MAIN_ENV.slog);
CommandLine_StopThread(&MAIN_ENV.cli);
}
int main(void) {
Bsp_CLOCK_Init();
uint32_t a = 10;
++a;
uint32_t v = 0;
for (int i=0; i<11; ++i) {
v++;
}
NVIC_SetPriorityGrouping(NVIC_PRIORITY_GROUP_4);
osKernelInitialize();
Mma_Init(&MAIN_ENV, &GPIOS, &ADCS, &SERIAL_PORTS, &LIN_PORTS, &CAN_PORTS, &NVM_STORAGE, &PWMS, &RTCS);
Mma_StartThread(&MAIN_ENV);
osKernelStart();
STOP
}