Report version info

This commit is contained in:
George Norton 2023-06-16 22:42:13 +01:00
parent cc6a2f6b96
commit 74a36a3ed6
2 changed files with 14 additions and 4 deletions

View File

@ -22,6 +22,8 @@
#include "configuration_types.h"
#include "bqf.h"
#include "run.h"
#include "version.h"
#include "pico_base/pico/version.h"
#ifndef TEST_TARGET
#include "pico/multicore.h"
#include "pico/stdlib.h"
@ -391,14 +393,21 @@ bool process_cmd(tlv_header* cmd) {
}
case GET_VERSION: {
if (cmd->length == 4) {
static const char* PICO_SDK_VERSION = PICO_SDK_VERSION_STRING;
size_t firmware_version_len = strnlen(FIRMWARE_GIT_HASH, 64);
size_t pico_sdk_version_len = strnlen(PICO_SDK_VERSION_STRING, 64);
result->type = OK;
result->length = 4 + sizeof(version_status_tlv);
result->length = 4 + sizeof(version_status_tlv) + firmware_version_len + 1 + pico_sdk_version_len + 1;
version_status_tlv* version = ((version_status_tlv*) result->value);
version->header.type = VERSION_STATUS;
version->header.length = sizeof(version_status_tlv);
version->current_version = CONFIG_VERSION;
version->minimum_supported_version = MINIMUM_CONFIG_VERSION;
version->reserved = 0;
version->reserved = 0xff;
memcpy((void*) version->version_strings, FIRMWARE_GIT_HASH, firmware_version_len + 1);
memcpy((void*) &(version->version_strings[firmware_version_len + 1]), PICO_SDK_VERSION_STRING, pico_sdk_version_len + 1);
return true;
}
break;

View File

@ -81,7 +81,7 @@ typedef struct __attribute__((__packed__)) _flash_header_tlv {
tlv_header header;
uint32_t magic;
uint32_t version;
const uint8_t tlvs[];
const uint8_t tlvs[0];
} flash_header_tlv;
typedef struct __attribute__((__packed__)) _preprocessing_configuration_tlv {
@ -93,7 +93,7 @@ typedef struct __attribute__((__packed__)) _preprocessing_configuration_tlv {
typedef struct __attribute__((__packed__)) _filter_configuration_tlv {
tlv_header header;
const uint8_t filters[];
const uint8_t filters[0];
} filter_configuration_tlv;
typedef struct __attribute__((__packed__)) _pcm3060_configuration_tlv {
@ -110,6 +110,7 @@ typedef struct __attribute__((__packed__)) _version_status_tlv {
uint16_t current_version;
uint16_t minimum_supported_version;
uint32_t reserved;
const char version_strings[0]; // Firmware version\0Pico SDK version\0
} version_status_tlv;
typedef struct __attribute__((__packed__)) _default_configuration {