#include #include #include #include #include #include #include #include #include #include #include #include #include #include #if FSFW_CPP_OSTREAM_ENABLED == 1 #include #endif #if !defined(BOARD_NAME) #define BOARD_NAME "unknown board" #endif #if FSFW_CPP_OSTREAM_ENABLED == 1 ServiceInterfaceStream sif::debug("DEBUG", true); ServiceInterfaceStream sif::info("INFO", true); ServiceInterfaceStream sif::warning("WARNING", true); ServiceInterfaceStream sif::error("ERROR", true); #endif ObjectManagerIF *objectManager = nullptr; void initTask(void *parameters); /** * @brief Core function for the STM32 FreeRTOS BSP * @return * @author R. Mueller, J. Meier */ int main() { performHardwareInit(); xTaskCreate(initTask, "INIT_TASK", 2048, nullptr, 9, nullptr); /* Start scheduler */ osKernelStart(); /* Should not be reached, scheduler should now be running. */ for(;;) {} return 0; } void initTask(void *parameters) { /* Initialize the LwIP stack */ lwip_init(); /* Configure the Network interface */ Netif_Config(); utility::commonInitPrint("FreeRTOS", BOARD_NAME); #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::info << "Creating objects.." << std::endl; #else sif::printInfo("Creating objects..\n\r"); #endif objectManager = new ObjectManager(ObjectFactory::produce); objectManager->initialize(); #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::info << "Creating tasks.." << std::endl; #else sif::printInfo("Creating tasks..\n\r"); #endif InitMission::createTasks(); TaskFactory::instance()->deleteTask(nullptr); }