#include "core/InitMission.h" #include "core/ObjectFactory.h" #include "hardware_init.h" #include "stm32h7xx_nucleo.h" #include "example/utility/compile_time.h" #include "fsfw/objectmanager/ObjectManager.h" #include "fsfw/serviceinterface/ServiceInterface.h" #include "fsfw/timemanager/Clock.h" #include #include #include #define BOARD_NAME "stm32h743zi-nucleo" ObjectManagerIF *objectManager = nullptr; #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 /** * @brief Core function for the RTEMS BSP, called in Init function. * @return * @author R. Mueller */ int main() { hardware_init(); printf("\n\r%s-- FSFW Example (RTEMS) --\n", sif::ANSI_COLOR_RESET); printf("-- Compiled for %s --\n", BOARD_NAME); printf("-- Compiled on %s %s --\n\r", __DATE__, __TIME__); timeval timeToSet{}; timeToSet.tv_sec = UNIX_TIMESTAMP; timeToSet.tv_usec = 0; ReturnValue_t clockStatus = Clock::setClock(&timeToSet); if (clockStatus != HasReturnvaluesIF::RETURN_OK) { sif::printError("Clock configuration failed!\n"); } else { sif::printInfo("Clock configured successfully.\n"); } ObjectManager::instance()->setObjectFactoryFunction(ObjectFactory::produce, nullptr); ObjectManager::instance()->initialize(); InitMission::createTasks(); }