Add embedded storage drivers and extend firmware metadata

This commit is contained in:
2026-09-27 01:44:59 +03:00
parent 795a1279b1
commit 2ad29e7ffd
52 changed files with 5801 additions and 3 deletions

View File

@@ -32,6 +32,16 @@ typedef enum {
FIRMWARE_INFO_OUT_OF_RANGE
} firmware_info_status_t;
/* Compatibility names for climate firmware; same layout and wire contract. */
typedef firmware_info_t FirmwareInfo;
typedef firmware_info_status_t FirmwareInfoStatus;
#define FIRMWARE_INFO_REG_COUNT FIRMWARE_INFO_REGISTER_COUNT
#define FIRMWARE_INFO_BUILD_ID_CHARS FIRMWARE_INFO_BUILD_ID_SIZE
#define FirmwareInfo_Validate firmware_info_validate
#define FirmwareInfo_ToRegisters firmware_info_to_registers
#define FirmwareInfo_ParseBuildStamp firmware_info_parse_build_stamp
#define FirmwareInfo_SetBuildId firmware_info_set_build_id
firmware_info_status_t firmware_info_validate(const firmware_info_t *info);
firmware_info_status_t firmware_info_parse_build_stamp(
const char *date_text, const char *time_text, firmware_info_t *info);

View File

@@ -16,5 +16,11 @@ int main(void)
assert(words[8] == 0x6162U && words[9] == 0x6330U);
assert(firmware_info_to_le_bytes(&info, bytes, sizeof(bytes)) == FIRMWARE_INFO_OK);
assert(bytes[0] == 1U && bytes[1] == 0U && bytes[16] == 0x62U && bytes[17] == 0x61U);
{
FirmwareInfo climate = info;
uint16_t compat[FIRMWARE_INFO_REG_COUNT];
assert(FirmwareInfo_ToRegisters(&climate, compat, FIRMWARE_INFO_REG_COUNT) == FIRMWARE_INFO_OK);
assert(memcmp(words, compat, sizeof(words)) == 0);
}
return 0;
}