/* * Заполнение описания прошивки из макросов конфигурации конкретного MCU-проекта. Заголовок * firmware_info_config.h выбирается путями включения; общая библиотека не должна содержать * версию чужого приложения. */ #include "firmware_info_port.h" firmware_info_status_t firmware_info_port_describe(firmware_info_t *info) { firmware_info_status_t status; if (info == NULL) return FIRMWARE_INFO_INVALID_ARGUMENT; info->major = (uint16_t)FIRMWARE_VERSION_MAJOR; info->minor = (uint16_t)FIRMWARE_VERSION_MINOR; info->patch = (uint16_t)FIRMWARE_VERSION_PATCH; status = firmware_info_set_build_id(info, FIRMWARE_BUILD_ID); if (status != FIRMWARE_INFO_OK) return status; #ifdef FI_YEAR /* New build pipeline: use the same UTC stamp as the static port/manifest. * Existing consumers of make_build_id.ps1 keep their compiler-local stamp. */ info->year = FI_YEAR; info->month = FI_MONTH; info->day = FI_DAY; info->hour = FI_HOUR; info->minute = FI_MINUTE; info->second = FI_SECOND; return firmware_info_validate(info); #else return firmware_info_parse_build_stamp(__DATE__, __TIME__, info); #endif }