28 lines
1.3 KiB
C
28 lines
1.3 KiB
C
/*
|
|
* Заполнение описания прошивки из макросов конфигурации конкретного 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
|
|
}
|