1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-14 11:59:58 +03:00

Adding board scratch space.

- Including ability to define custom defaults as char[] that is baked into the build
- removed unnecessary size of custom defaults header parsing (defines provided by build process or in board.h for devs).
This commit is contained in:
blckmn 2022-10-23 12:43:31 +11:00
parent ea45f9a5b9
commit b6b76d1b88
9 changed files with 31 additions and 55 deletions

View file

@ -222,20 +222,13 @@ static bool processingCustomDefaults = false;
static char cliBufferTemp[CLI_IN_BUFFER_SIZE];
#define CUSTOM_DEFAULTS_START_PREFIX ("# " FC_FIRMWARE_NAME)
#define CUSTOM_DEFAULTS_MANUFACTURER_ID_PREFIX "# config: manufacturer_id: "
#define CUSTOM_DEFAULTS_BOARD_NAME_PREFIX ", board_name: "
#define CUSTOM_DEFAULTS_CHANGESET_ID_PREFIX ", version: "
#define CUSTOM_DEFAULTS_DATE_PREFIX ", date: "
#define MAX_CHANGESET_ID_LENGTH 8
#define MAX_DATE_LENGTH 20
static bool customDefaultsHeaderParsed = false;
static bool customDefaultsFound = false;
static char customDefaultsManufacturerId[MAX_MANUFACTURER_ID_LENGTH + 1] = { 0 };
static char customDefaultsBoardName[MAX_BOARD_NAME_LENGTH + 1] = { 0 };
static char customDefaultsChangesetId[MAX_CHANGESET_ID_LENGTH + 1] = { 0 };
static char customDefaultsDate[MAX_DATE_LENGTH + 1] = { 0 };
#endif
#if defined(USE_CUSTOM_DEFAULTS_ADDRESS)
@ -4284,27 +4277,6 @@ static bool customDefaultsHasNext(const char *customDefaultsPtr)
return *customDefaultsPtr && *customDefaultsPtr != 0xFF && customDefaultsPtr < customDefaultsEnd;
}
static const char *parseCustomDefaultsHeaderElement(char *dest, const char *customDefaultsPtr, const char *prefix, const char terminator, const unsigned maxLength)
{
char *endPtr = NULL;
unsigned len = strlen(prefix);
if (customDefaultsPtr && customDefaultsHasNext(customDefaultsPtr) && strncmp(customDefaultsPtr, prefix, len) == 0) {
customDefaultsPtr += len;
endPtr = strchr(customDefaultsPtr, terminator);
}
if (endPtr && customDefaultsHasNext(endPtr)) {
len = endPtr - customDefaultsPtr;
memcpy(dest, customDefaultsPtr, MIN(len, maxLength));
customDefaultsPtr += len;
return customDefaultsPtr;
}
return NULL;
}
static void parseCustomDefaultsHeader(void)
{
const char *customDefaultsPtr = customDefaultsStart;
@ -4315,14 +4287,6 @@ static void parseCustomDefaultsHeader(void)
if (customDefaultsPtr && customDefaultsHasNext(customDefaultsPtr)) {
customDefaultsPtr++;
}
customDefaultsPtr = parseCustomDefaultsHeaderElement(customDefaultsManufacturerId, customDefaultsPtr, CUSTOM_DEFAULTS_MANUFACTURER_ID_PREFIX, CUSTOM_DEFAULTS_BOARD_NAME_PREFIX[0], MAX_MANUFACTURER_ID_LENGTH);
customDefaultsPtr = parseCustomDefaultsHeaderElement(customDefaultsBoardName, customDefaultsPtr, CUSTOM_DEFAULTS_BOARD_NAME_PREFIX, CUSTOM_DEFAULTS_CHANGESET_ID_PREFIX[0], MAX_BOARD_NAME_LENGTH);
customDefaultsPtr = parseCustomDefaultsHeaderElement(customDefaultsChangesetId, customDefaultsPtr, CUSTOM_DEFAULTS_CHANGESET_ID_PREFIX, CUSTOM_DEFAULTS_DATE_PREFIX[0], MAX_CHANGESET_ID_LENGTH);
customDefaultsPtr = parseCustomDefaultsHeaderElement(customDefaultsDate, customDefaultsPtr, CUSTOM_DEFAULTS_DATE_PREFIX, '\n', MAX_DATE_LENGTH);
}
customDefaultsHeaderParsed = true;
@ -4986,16 +4950,7 @@ static void printVersion(const char *cmdName, bool printBoardInfo)
#if defined(USE_CUSTOM_DEFAULTS)
if (hasCustomDefaults()) {
if (strlen(customDefaultsManufacturerId) || strlen(customDefaultsBoardName) || strlen(customDefaultsChangesetId) || strlen(customDefaultsDate)) {
cliPrintLinef("%s%s%s%s%s%s%s%s",
CUSTOM_DEFAULTS_MANUFACTURER_ID_PREFIX, customDefaultsManufacturerId,
CUSTOM_DEFAULTS_BOARD_NAME_PREFIX, customDefaultsBoardName,
CUSTOM_DEFAULTS_CHANGESET_ID_PREFIX, customDefaultsChangesetId,
CUSTOM_DEFAULTS_DATE_PREFIX, customDefaultsDate
);
} else {
cliPrintHashLine("config: YES");
}
cliPrintHashLine("config: YES");
} else {
cliPrintError(cmdName, "NO CONFIG FOUND");
}