[FL-2052] New build system based on scons (#1269)

This commit is contained in:
hedger
2022-06-26 15:00:03 +03:00
committed by GitHub
parent c79fb61909
commit f3b1475ede
179 changed files with 3986 additions and 5196 deletions

View File

@@ -113,13 +113,34 @@ BleGlueStatus ble_glue_get_c2_status() {
return ble_glue->status;
}
static const char* ble_glue_get_reltype_str(const uint8_t reltype) {
static char relcode[3] = {0};
switch(reltype) {
case INFO_STACK_TYPE_BLE_FULL:
return "F";
case INFO_STACK_TYPE_BLE_HCI:
return "H";
case INFO_STACK_TYPE_BLE_LIGHT:
return "L";
case INFO_STACK_TYPE_BLE_BEACON:
return "Be";
case INFO_STACK_TYPE_BLE_BASIC:
return "Ba";
case INFO_STACK_TYPE_BLE_FULL_EXT_ADV:
return "F+";
case INFO_STACK_TYPE_BLE_HCI_EXT_ADV:
return "H+";
default:
snprintf(relcode, sizeof(relcode), "%X", reltype);
return relcode;
}
}
static void ble_glue_update_c2_fw_info() {
WirelessFwInfo_t wireless_info;
SHCI_GetWirelessFwInfo(&wireless_info);
BleGlueC2Info* local_info = &ble_glue->c2_info;
local_info->VersionMajor = wireless_info.VersionMajor;
local_info->VersionMinor = wireless_info.VersionMinor;
local_info->VersionMajor = wireless_info.VersionMajor;
local_info->VersionMinor = wireless_info.VersionMinor;
local_info->VersionSub = wireless_info.VersionSub;
@@ -132,6 +153,14 @@ static void ble_glue_update_c2_fw_info() {
local_info->MemorySizeFlash = wireless_info.MemorySizeFlash;
local_info->StackType = wireless_info.StackType;
snprintf(
local_info->StackTypeString,
BLE_GLUE_MAX_VERSION_STRING_LEN,
"%d.%d.%d.%s",
local_info->VersionMajor,
local_info->VersionMinor,
local_info->VersionSub,
ble_glue_get_reltype_str(local_info->StackType));
local_info->FusVersionMajor = wireless_info.FusVersionMajor;
local_info->FusVersionMinor = wireless_info.FusVersionMinor;

View File

@@ -13,6 +13,7 @@ typedef enum {
BleGlueC2ModeStack,
} BleGlueC2Mode;
#define BLE_GLUE_MAX_VERSION_STRING_LEN 20
typedef struct {
BleGlueC2Mode mode;
/**
@@ -28,6 +29,7 @@ typedef struct {
uint8_t MemorySizeSram1; /*< Multiple of 1K */
uint8_t MemorySizeFlash; /*< Multiple of 4K */
uint8_t StackType;
char StackTypeString[BLE_GLUE_MAX_VERSION_STRING_LEN];
/**
* Fus Info
*/

View File

@@ -5,6 +5,7 @@
#include <furi.h>
#include <m-string.h>
#include <protobuf_version.h>
#include <lib/toolbox/version.h>
#define TAG "BtDevInfoSvc"
@@ -15,15 +16,14 @@ typedef struct {
uint16_t firmware_rev_char_handle;
uint16_t software_rev_char_handle;
uint16_t rpc_version_char_handle;
string_t version_string;
char hardware_revision[4];
} DevInfoSvc;
static DevInfoSvc* dev_info_svc = NULL;
static const char dev_info_man_name[] = "Flipper Devices Inc.";
static const char dev_info_serial_num[] = "1.0";
static const char dev_info_firmware_rev_num[] = TOSTRING(TARGET);
static const char dev_info_software_rev_num[] = GIT_COMMIT " " GIT_BRANCH " " GIT_BRANCH_NUM
" " BUILD_DATE;
static const char dev_info_rpc_version[] = TOSTRING(PROTOBUF_MAJOR_VERSION.PROTOBUF_MINOR_VERSION);
static const uint8_t dev_info_rpc_version_uuid[] =
@@ -31,6 +31,18 @@ static const uint8_t dev_info_rpc_version_uuid[] =
void dev_info_svc_start() {
dev_info_svc = malloc(sizeof(DevInfoSvc));
string_init_printf(
dev_info_svc->version_string,
"%s %s %s %s",
version_get_githash(NULL),
version_get_gitbranch(NULL),
version_get_gitbranchnum(NULL),
version_get_builddate(NULL));
snprintf(
dev_info_svc->hardware_revision,
sizeof(dev_info_svc->hardware_revision),
"%d",
version_get_target(NULL));
tBleStatus status;
// Add Device Information Service
@@ -77,7 +89,7 @@ void dev_info_svc_start() {
dev_info_svc->service_handle,
UUID_TYPE_16,
(Char_UUID_t*)&uuid,
strlen(dev_info_firmware_rev_num),
strlen(dev_info_svc->hardware_revision),
CHAR_PROP_READ,
ATTR_PERMISSION_AUTHEN_READ,
GATT_DONT_NOTIFY_EVENTS,
@@ -92,7 +104,7 @@ void dev_info_svc_start() {
dev_info_svc->service_handle,
UUID_TYPE_16,
(Char_UUID_t*)&uuid,
strlen(dev_info_software_rev_num),
string_size(dev_info_svc->version_string),
CHAR_PROP_READ,
ATTR_PERMISSION_AUTHEN_READ,
GATT_DONT_NOTIFY_EVENTS,
@@ -140,8 +152,8 @@ void dev_info_svc_start() {
dev_info_svc->service_handle,
dev_info_svc->firmware_rev_char_handle,
0,
strlen(dev_info_firmware_rev_num),
(uint8_t*)dev_info_firmware_rev_num);
strlen(dev_info_svc->hardware_revision),
(uint8_t*)dev_info_svc->hardware_revision);
if(status) {
FURI_LOG_E(TAG, "Failed to update firmware revision char: %d", status);
}
@@ -149,8 +161,8 @@ void dev_info_svc_start() {
dev_info_svc->service_handle,
dev_info_svc->software_rev_char_handle,
0,
strlen(dev_info_software_rev_num),
(uint8_t*)dev_info_software_rev_num);
string_size(dev_info_svc->version_string),
(uint8_t*)string_get_cstr(dev_info_svc->version_string));
if(status) {
FURI_LOG_E(TAG, "Failed to update software revision char: %d", status);
}
@@ -168,6 +180,7 @@ void dev_info_svc_start() {
void dev_info_svc_stop() {
tBleStatus status;
if(dev_info_svc) {
string_clear(dev_info_svc->version_string);
// Delete service characteristics
status =
aci_gatt_del_char(dev_info_svc->service_handle, dev_info_svc->man_name_char_handle);

View File

@@ -7,12 +7,6 @@
extern "C" {
#endif
#define DEV_INFO_MANUFACTURER_NAME "Flipper Devices Inc."
#define DEV_INFO_SERIAL_NUMBER "1.0"
#define DEV_INFO_FIRMWARE_REVISION_NUMBER TARGET
#define DEV_INFO_SOFTWARE_REVISION_NUMBER \
GIT_COMMIT " " GIT_BRANCH " " GIT_BRANCH_NUM " " BUILD_DATE
void dev_info_svc_start();
void dev_info_svc_stop();

View File

@@ -33,7 +33,6 @@ extern "C" {
#include "app_conf.h" /* required as some configuration used in dbg_trace.h are set there */
#include "dbg_trace.h"
#include "hw_if.h"
#include <furi_hal.h>
/**
* Enable or Disable traces