99 lines
2.2 KiB
C
99 lines
2.2 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();
|
|
|
|
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
|
|
} |