[FL-2627] Flipper applications: SDK, build and debug system (#1387)

* Added support for running applications from SD card (FAPs - Flipper Application Packages)
* Added plugin_dist target for fbt to build FAPs
* All apps of type FlipperAppType.EXTERNAL and FlipperAppType.PLUGIN are built as FAPs by default
* Updated VSCode configuration for new fbt features - re-deploy stock configuration to use them
* Added debugging support for FAPs with fbt debug & VSCode
* Added public firmware API with automated versioning

Co-authored-by: hedger <hedger@users.noreply.github.com>
Co-authored-by: SG <who.just.the.doctor@gmail.com>
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
SG
2022-09-15 02:11:38 +10:00
committed by Aleksandr Kutuzov
parent 0f6f9ad52e
commit b9a766d909
895 changed files with 8862 additions and 1465 deletions

View File

@@ -4,6 +4,13 @@ env.Append(
CPPPATH=[
"#/lib/subghz",
],
SDK_HEADERS=[
File("#/lib/subghz/environment.h"),
File("#/lib/subghz/receiver.h"),
File("#/lib/subghz/subghz_worker.h"),
File("#/lib/subghz/subghz_tx_rx_worker.h"),
File("#/lib/subghz/transmitter.h"),
],
)
libenv = env.Clone(FW_LIB_NAME="subghz")

View File

@@ -4,6 +4,10 @@
#include "subghz_keystore.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct SubGhzEnvironment SubGhzEnvironment;
/**
@@ -64,3 +68,7 @@ void subghz_environment_set_nice_flor_s_rainbow_table_file_name(
*/
const char*
subghz_environment_get_nice_flor_s_rainbow_table_file_name(SubGhzEnvironment* instance);
#ifdef __cplusplus
}
#endif

View File

@@ -2,6 +2,10 @@
#include "../types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct SubGhzProtocolDecoderBase SubGhzProtocolDecoderBase;
typedef void (
@@ -77,3 +81,7 @@ struct SubGhzProtocolEncoderBase {
// Callback section
};
#ifdef __cplusplus
}
#endif

View File

@@ -3,6 +3,10 @@
#include "types.h"
#include "protocols/base.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct SubGhzReceiver SubGhzReceiver;
typedef void (*SubGhzReceiverCallback)(
@@ -63,3 +67,7 @@ void subghz_receiver_set_filter(SubGhzReceiver* instance, SubGhzProtocolFlag fil
*/
SubGhzProtocolDecoderBase*
subghz_receiver_search_decoder_base_by_name(SubGhzReceiver* instance, const char* decoder_name);
#ifdef __cplusplus
}
#endif

View File

@@ -4,6 +4,10 @@
#include <m-array.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
string_t name;
uint64_t key;
@@ -70,3 +74,7 @@ bool subghz_keystore_raw_encrypted_save(
* @return true On success
*/
bool subghz_keystore_raw_get_data(const char* file_name, size_t offset, uint8_t* data, size_t len);
#ifdef __cplusplus
}
#endif

View File

@@ -2,6 +2,10 @@
#include <furi_hal.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*SubGhzTxRxWorkerCallbackHaveRead)(void* context);
typedef struct SubGhzTxRxWorker SubGhzTxRxWorker;
@@ -79,3 +83,7 @@ void subghz_tx_rx_worker_stop(SubGhzTxRxWorker* instance);
* @return bool - true if running
*/
bool subghz_tx_rx_worker_is_running(SubGhzTxRxWorker* instance);
#ifdef __cplusplus
}
#endif

View File

@@ -2,6 +2,10 @@
#include <furi_hal.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct SubGhzWorker SubGhzWorker;
typedef void (*SubGhzWorkerOverrunCallback)(void* context);
@@ -62,3 +66,7 @@ void subghz_worker_stop(SubGhzWorker* instance);
* @return bool - true if running
*/
bool subghz_worker_is_running(SubGhzWorker* instance);
#ifdef __cplusplus
}
#endif

View File

@@ -4,6 +4,10 @@
#include "environment.h"
#include "protocols/base.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct SubGhzTransmitter SubGhzTransmitter;
/**
@@ -45,3 +49,7 @@ bool subghz_transmitter_deserialize(SubGhzTransmitter* instance, FlipperFormat*
* @return LevelDuration
*/
LevelDuration subghz_transmitter_yield(void* context);
#ifdef __cplusplus
}
#endif