diff options
Diffstat (limited to 'firmware')
35 files changed, 76 insertions, 54 deletions
diff --git a/firmware/targets/f6/Src/main.c b/firmware/targets/f6/Src/main.c index b1ab4dcd..a265c4c1 100644 --- a/firmware/targets/f6/Src/main.c +++ b/firmware/targets/f6/Src/main.c @@ -7,6 +7,9 @@ #define TAG "Main" int main(void) { + // Flipper critical FURI HAL + furi_hal_init_critical(); + // Initialize FURI layer furi_init(); diff --git a/firmware/targets/f6/ble_glue/battery_service.c b/firmware/targets/f6/ble_glue/battery_service.c index fcf640c8..1ee155bb 100644 --- a/firmware/targets/f6/ble_glue/battery_service.c +++ b/firmware/targets/f6/ble_glue/battery_service.c @@ -17,7 +17,7 @@ static const uint16_t service_uuid = BATTERY_SERVICE_UUID; static const uint16_t char_battery_level_uuid = BATTERY_LEVEL_CHAR_UUID; void battery_svc_start() { - battery_svc = furi_alloc(sizeof(BatterySvc)); + battery_svc = malloc(sizeof(BatterySvc)); tBleStatus status; // Add Battery service diff --git a/firmware/targets/f6/ble_glue/ble_app.c b/firmware/targets/f6/ble_glue/ble_app.c index 6afd3648..052b3a9f 100644 --- a/firmware/targets/f6/ble_glue/ble_app.c +++ b/firmware/targets/f6/ble_glue/ble_app.c @@ -35,7 +35,7 @@ static void ble_app_hci_status_not_handler(HCI_TL_CmdStatus_t status); bool ble_app_init() { SHCI_CmdStatus_t status; - ble_app = furi_alloc(sizeof(BleApp)); + ble_app = malloc(sizeof(BleApp)); // Allocate semafore and mutex for ble command buffer access ble_app->hci_mtx = osMutexNew(NULL); ble_app->hci_sem = osSemaphoreNew(1, 0, NULL); diff --git a/firmware/targets/f6/ble_glue/ble_glue.c b/firmware/targets/f6/ble_glue/ble_glue.c index 4c26e086..a509a96e 100644 --- a/firmware/targets/f6/ble_glue/ble_glue.c +++ b/firmware/targets/f6/ble_glue/ble_glue.c @@ -64,7 +64,7 @@ void ble_glue_set_key_storage_changed_callback( } void ble_glue_init() { - ble_glue = furi_alloc(sizeof(BleGlue)); + ble_glue = malloc(sizeof(BleGlue)); ble_glue->status = BleGlueStatusStartup; // Configure the system Power Mode diff --git a/firmware/targets/f6/ble_glue/dev_info_service.c b/firmware/targets/f6/ble_glue/dev_info_service.c index 1c9b94eb..80d7b0eb 100644 --- a/firmware/targets/f6/ble_glue/dev_info_service.c +++ b/firmware/targets/f6/ble_glue/dev_info_service.c @@ -23,7 +23,7 @@ static const char dev_info_software_rev_num[] = GIT_COMMIT " " GIT_BRANCH " " GI " " BUILD_DATE; void dev_info_svc_start() { - dev_info_svc = furi_alloc(sizeof(DevInfoSvc)); + dev_info_svc = malloc(sizeof(DevInfoSvc)); tBleStatus status; // Add Device Information Service diff --git a/firmware/targets/f6/ble_glue/gap.c b/firmware/targets/f6/ble_glue/gap.c index 1bd0cbbf..d1b1b766 100755 --- a/firmware/targets/f6/ble_glue/gap.c +++ b/firmware/targets/f6/ble_glue/gap.c @@ -463,7 +463,7 @@ bool gap_init(GapConfig* config, GapEventCallback on_event_cb, void* context) { return false; } - gap = furi_alloc(sizeof(Gap)); + gap = malloc(sizeof(Gap)); gap->config = config; srand(DWT->CYCCNT); // Create advertising timer @@ -516,7 +516,7 @@ GapState gap_get_state() { void gap_start_scan(GapScanCallback callback, void* context) { furi_assert(callback); - gap_scan = furi_alloc(sizeof(GapScan)); + gap_scan = malloc(sizeof(GapScan)); gap_scan->callback = callback; gap_scan->context = context; // Scan interval 250 ms diff --git a/firmware/targets/f6/ble_glue/hid_service.c b/firmware/targets/f6/ble_glue/hid_service.c index ec8854e6..e30cdcb0 100644 --- a/firmware/targets/f6/ble_glue/hid_service.c +++ b/firmware/targets/f6/ble_glue/hid_service.c @@ -38,7 +38,7 @@ static SVCCTL_EvtAckStatus_t hid_svc_event_handler(void* event) { void hid_svc_start() { tBleStatus status; - hid_svc = furi_alloc(sizeof(HIDSvc)); + hid_svc = malloc(sizeof(HIDSvc)); Service_UUID_t svc_uuid = {}; Char_Desc_Uuid_t desc_uuid = {}; Char_UUID_t char_uuid = {}; diff --git a/firmware/targets/f6/ble_glue/serial_service.c b/firmware/targets/f6/ble_glue/serial_service.c index 4acba7f0..a5d3b97a 100644 --- a/firmware/targets/f6/ble_glue/serial_service.c +++ b/firmware/targets/f6/ble_glue/serial_service.c @@ -82,7 +82,7 @@ static SVCCTL_EvtAckStatus_t serial_svc_event_handler(void* event) { void serial_svc_start() { tBleStatus status; - serial_svc = furi_alloc(sizeof(SerialSvc)); + serial_svc = malloc(sizeof(SerialSvc)); // Register event handler SVCCTL_RegisterSvcHandler(serial_svc_event_handler); diff --git a/firmware/targets/f6/fatfs/stm32_adafruit_sd.c b/firmware/targets/f6/fatfs/stm32_adafruit_sd.c index b97b95c8..9225a90b 100644 --- a/firmware/targets/f6/fatfs/stm32_adafruit_sd.c +++ b/firmware/targets/f6/fatfs/stm32_adafruit_sd.c @@ -435,7 +435,7 @@ uint8_t goto error; } - ptr = furi_alloc(sizeof(uint8_t) * BlockSize); + ptr = malloc(sizeof(uint8_t) * BlockSize); if(ptr == NULL) { goto error; } @@ -516,7 +516,7 @@ uint8_t BSP_SD_WriteBlocks( goto error; } - ptr = furi_alloc(sizeof(uint8_t) * BlockSize); + ptr = malloc(sizeof(uint8_t) * BlockSize); if(ptr == NULL) { goto error; } diff --git a/firmware/targets/f6/furi_hal/furi_hal.c b/firmware/targets/f6/furi_hal/furi_hal.c index 082956b1..2821182c 100644 --- a/firmware/targets/f6/furi_hal/furi_hal.c +++ b/firmware/targets/f6/furi_hal/furi_hal.c @@ -11,9 +11,7 @@ #define TAG "FuriHal" void furi_hal_init() { - furi_hal_clock_init(); furi_hal_rtc_init(); - furi_hal_console_init(); furi_hal_interrupt_init(); furi_hal_delay_init(); @@ -71,3 +69,8 @@ void furi_hal_init() { LL_MPU_INSTRUCTION_ACCESS_ENABLE); LL_MPU_Enable(LL_MPU_CTRL_PRIVILEGED_DEFAULT); } + +void furi_hal_init_critical() { + furi_hal_clock_init(); + furi_hal_console_init(); +}
\ No newline at end of file diff --git a/firmware/targets/f6/furi_hal/furi_hal_bt_hid.c b/firmware/targets/f6/furi_hal/furi_hal_bt_hid.c index 6b7128d8..507dedfb 100644 --- a/firmware/targets/f6/furi_hal/furi_hal_bt_hid.c +++ b/firmware/targets/f6/furi_hal/furi_hal_bt_hid.c @@ -147,8 +147,8 @@ void furi_hal_bt_hid_start() { hid_svc_start(); } // Configure HID Keyboard - kb_report = furi_alloc(sizeof(FuriHalBtHidKbReport)); - media_report = furi_alloc(sizeof(FuriHalBtHidMediaReport)); + kb_report = malloc(sizeof(FuriHalBtHidKbReport)); + media_report = malloc(sizeof(FuriHalBtHidMediaReport)); // Configure Report Map characteristic hid_svc_update_report_map( furi_hal_bt_hid_report_map_data, sizeof(furi_hal_bt_hid_report_map_data)); diff --git a/firmware/targets/f6/furi_hal/furi_hal_compress.c b/firmware/targets/f6/furi_hal/furi_hal_compress.c index d0efb143..7e31dbbf 100644 --- a/firmware/targets/f6/furi_hal/furi_hal_compress.c +++ b/firmware/targets/f6/furi_hal/furi_hal_compress.c @@ -41,7 +41,7 @@ static void furi_hal_compress_reset(FuriHalCompress* compress) { } void furi_hal_compress_icon_init() { - icon_decoder = furi_alloc(sizeof(FuriHalCompressIcon)); + icon_decoder = malloc(sizeof(FuriHalCompressIcon)); icon_decoder->decoder = heatshrink_decoder_alloc( icon_decoder->compress_buff, FURI_HAL_COMPRESS_ICON_ENCODED_BUFF_SIZE, @@ -84,8 +84,8 @@ void furi_hal_compress_icon_decode(const uint8_t* icon_data, uint8_t** decoded_b } FuriHalCompress* furi_hal_compress_alloc(uint16_t compress_buff_size) { - FuriHalCompress* compress = furi_alloc(sizeof(FuriHalCompress)); - compress->compress_buff = furi_alloc(compress_buff_size + FURI_HAL_COMPRESS_EXP_BUFF_SIZE); + FuriHalCompress* compress = malloc(sizeof(FuriHalCompress)); + compress->compress_buff = malloc(compress_buff_size + FURI_HAL_COMPRESS_EXP_BUFF_SIZE); compress->encoder = heatshrink_encoder_alloc( compress->compress_buff, FURI_HAL_COMPRESS_EXP_BUFF_SIZE_LOG, diff --git a/firmware/targets/f6/furi_hal/furi_hal_console.c b/firmware/targets/f6/furi_hal/furi_hal_console.c index dd51716f..f3cf06da 100644 --- a/firmware/targets/f6/furi_hal/furi_hal_console.c +++ b/firmware/targets/f6/furi_hal/furi_hal_console.c @@ -12,15 +12,17 @@ #define TAG "FuriHalConsole" +#ifdef HEAP_PRINT_DEBUG +#define CONSOLE_BAUDRATE 1843200 +#else #define CONSOLE_BAUDRATE 230400 +#endif volatile bool furi_hal_console_alive = false; void furi_hal_console_init() { furi_hal_uart_init(FuriHalUartIdUSART1, CONSOLE_BAUDRATE); furi_hal_console_alive = true; - - FURI_LOG_I(TAG, "Init OK"); } void furi_hal_console_enable() { diff --git a/firmware/targets/f6/furi_hal/furi_hal_irda.c b/firmware/targets/f6/furi_hal/furi_hal_irda.c index cd984741..6fe051a9 100644 --- a/firmware/targets/f6/furi_hal/furi_hal_irda.c +++ b/firmware/targets/f6/furi_hal/furi_hal_irda.c @@ -588,13 +588,13 @@ void furi_hal_irda_async_tx_start(uint32_t freq, float duty_cycle) { furi_assert(irda_tim_tx.buffer[1].polarity == NULL); size_t alloc_size_data = IRDA_TIM_TX_DMA_BUFFER_SIZE * sizeof(uint16_t); - irda_tim_tx.buffer[0].data = furi_alloc(alloc_size_data); - irda_tim_tx.buffer[1].data = furi_alloc(alloc_size_data); + irda_tim_tx.buffer[0].data = malloc(alloc_size_data); + irda_tim_tx.buffer[1].data = malloc(alloc_size_data); size_t alloc_size_polarity = (IRDA_TIM_TX_DMA_BUFFER_SIZE + IRDA_POLARITY_SHIFT) * sizeof(uint8_t); - irda_tim_tx.buffer[0].polarity = furi_alloc(alloc_size_polarity); - irda_tim_tx.buffer[1].polarity = furi_alloc(alloc_size_polarity); + irda_tim_tx.buffer[0].polarity = malloc(alloc_size_polarity); + irda_tim_tx.buffer[1].polarity = malloc(alloc_size_polarity); irda_tim_tx.stop_semaphore = osSemaphoreNew(1, 0, NULL); irda_tim_tx.cycle_duration = 1000000.0 / freq; diff --git a/firmware/targets/f6/furi_hal/furi_hal_subghz.c b/firmware/targets/f6/furi_hal/furi_hal_subghz.c index e2de0038..8dacd3f0 100644 --- a/firmware/targets/f6/furi_hal/furi_hal_subghz.c +++ b/firmware/targets/f6/furi_hal/furi_hal_subghz.c @@ -874,7 +874,7 @@ bool furi_hal_subghz_start_async_tx(FuriHalSubGhzAsyncTxCallback callback, void* furi_hal_subghz_async_tx.duty_high = 0; furi_hal_subghz_async_tx.buffer = - furi_alloc(API_HAL_SUBGHZ_ASYNC_TX_BUFFER_FULL * sizeof(uint32_t)); + malloc(API_HAL_SUBGHZ_ASYNC_TX_BUFFER_FULL * sizeof(uint32_t)); furi_hal_subghz_async_tx_refill( furi_hal_subghz_async_tx.buffer, API_HAL_SUBGHZ_ASYNC_TX_BUFFER_FULL); diff --git a/firmware/targets/f6/furi_hal/furi_hal_usb_cdc.c b/firmware/targets/f6/furi_hal/furi_hal_usb_cdc.c index d7fcbc58..bf0fd7d4 100644 --- a/firmware/targets/f6/furi_hal/furi_hal_usb_cdc.c +++ b/firmware/targets/f6/furi_hal/furi_hal_usb_cdc.c @@ -434,14 +434,14 @@ static void cdc_init(usbd_device* dev, FuriHalUsbInterface* intf) { char* name = (char*)furi_hal_version_get_device_name_ptr(); uint8_t len = (name == NULL) ? (0) : (strlen(name)); - struct usb_string_descriptor* dev_prod_desc = furi_alloc(len * 2 + 2); + struct usb_string_descriptor* dev_prod_desc = malloc(len * 2 + 2); dev_prod_desc->bLength = len * 2 + 2; dev_prod_desc->bDescriptorType = USB_DTYPE_STRING; for(uint8_t i = 0; i < len; i++) dev_prod_desc->wString[i] = name[i]; name = (char*)furi_hal_version_get_name_ptr(); len = (name == NULL) ? (0) : (strlen(name)); - struct usb_string_descriptor* dev_serial_desc = furi_alloc((len + 5) * 2 + 2); + struct usb_string_descriptor* dev_serial_desc = malloc((len + 5) * 2 + 2); dev_serial_desc->bLength = (len + 5) * 2 + 2; dev_serial_desc->bDescriptorType = USB_DTYPE_STRING; memcpy(dev_serial_desc->wString, "f\0l\0i\0p\0_\0", 5 * 2); diff --git a/firmware/targets/f6/furi_hal/furi_hal_vcp.c b/firmware/targets/f6/furi_hal/furi_hal_vcp.c index 409a61a0..828fc619 100644 --- a/firmware/targets/f6/furi_hal/furi_hal_vcp.c +++ b/firmware/targets/f6/furi_hal/furi_hal_vcp.c @@ -58,7 +58,7 @@ static const uint8_t ascii_soh = 0x01; static const uint8_t ascii_eot = 0x04; void furi_hal_vcp_init() { - vcp = furi_alloc(sizeof(FuriHalVcp)); + vcp = malloc(sizeof(FuriHalVcp)); vcp->connected = false; vcp->tx_stream = xStreamBufferCreate(VCP_TX_BUF_SIZE, 1); diff --git a/firmware/targets/f7/Src/main.c b/firmware/targets/f7/Src/main.c index b1ab4dcd..a265c4c1 100644 --- a/firmware/targets/f7/Src/main.c +++ b/firmware/targets/f7/Src/main.c @@ -7,6 +7,9 @@ #define TAG "Main" int main(void) { + // Flipper critical FURI HAL + furi_hal_init_critical(); + // Initialize FURI layer furi_init(); diff --git a/firmware/targets/f7/ble_glue/battery_service.c b/firmware/targets/f7/ble_glue/battery_service.c index fcf640c8..1ee155bb 100644 --- a/firmware/targets/f7/ble_glue/battery_service.c +++ b/firmware/targets/f7/ble_glue/battery_service.c @@ -17,7 +17,7 @@ static const uint16_t service_uuid = BATTERY_SERVICE_UUID; static const uint16_t char_battery_level_uuid = BATTERY_LEVEL_CHAR_UUID; void battery_svc_start() { - battery_svc = furi_alloc(sizeof(BatterySvc)); + battery_svc = malloc(sizeof(BatterySvc)); tBleStatus status; // Add Battery service diff --git a/firmware/targets/f7/ble_glue/ble_app.c b/firmware/targets/f7/ble_glue/ble_app.c index 6afd3648..052b3a9f 100644 --- a/firmware/targets/f7/ble_glue/ble_app.c +++ b/firmware/targets/f7/ble_glue/ble_app.c @@ -35,7 +35,7 @@ static void ble_app_hci_status_not_handler(HCI_TL_CmdStatus_t status); bool ble_app_init() { SHCI_CmdStatus_t status; - ble_app = furi_alloc(sizeof(BleApp)); + ble_app = malloc(sizeof(BleApp)); // Allocate semafore and mutex for ble command buffer access ble_app->hci_mtx = osMutexNew(NULL); ble_app->hci_sem = osSemaphoreNew(1, 0, NULL); diff --git a/firmware/targets/f7/ble_glue/ble_glue.c b/firmware/targets/f7/ble_glue/ble_glue.c index 4c26e086..a509a96e 100644 --- a/firmware/targets/f7/ble_glue/ble_glue.c +++ b/firmware/targets/f7/ble_glue/ble_glue.c @@ -64,7 +64,7 @@ void ble_glue_set_key_storage_changed_callback( } void ble_glue_init() { - ble_glue = furi_alloc(sizeof(BleGlue)); + ble_glue = malloc(sizeof(BleGlue)); ble_glue->status = BleGlueStatusStartup; // Configure the system Power Mode diff --git a/firmware/targets/f7/ble_glue/dev_info_service.c b/firmware/targets/f7/ble_glue/dev_info_service.c index 1c9b94eb..80d7b0eb 100644 --- a/firmware/targets/f7/ble_glue/dev_info_service.c +++ b/firmware/targets/f7/ble_glue/dev_info_service.c @@ -23,7 +23,7 @@ static const char dev_info_software_rev_num[] = GIT_COMMIT " " GIT_BRANCH " " GI " " BUILD_DATE; void dev_info_svc_start() { - dev_info_svc = furi_alloc(sizeof(DevInfoSvc)); + dev_info_svc = malloc(sizeof(DevInfoSvc)); tBleStatus status; // Add Device Information Service diff --git a/firmware/targets/f7/ble_glue/gap.c b/firmware/targets/f7/ble_glue/gap.c index 1bd0cbbf..d1b1b766 100755 --- a/firmware/targets/f7/ble_glue/gap.c +++ b/firmware/targets/f7/ble_glue/gap.c @@ -463,7 +463,7 @@ bool gap_init(GapConfig* config, GapEventCallback on_event_cb, void* context) { return false; } - gap = furi_alloc(sizeof(Gap)); + gap = malloc(sizeof(Gap)); gap->config = config; srand(DWT->CYCCNT); // Create advertising timer @@ -516,7 +516,7 @@ GapState gap_get_state() { void gap_start_scan(GapScanCallback callback, void* context) { furi_assert(callback); - gap_scan = furi_alloc(sizeof(GapScan)); + gap_scan = malloc(sizeof(GapScan)); gap_scan->callback = callback; gap_scan->context = context; // Scan interval 250 ms diff --git a/firmware/targets/f7/ble_glue/hid_service.c b/firmware/targets/f7/ble_glue/hid_service.c index ec8854e6..e30cdcb0 100644 --- a/firmware/targets/f7/ble_glue/hid_service.c +++ b/firmware/targets/f7/ble_glue/hid_service.c @@ -38,7 +38,7 @@ static SVCCTL_EvtAckStatus_t hid_svc_event_handler(void* event) { void hid_svc_start() { tBleStatus status; - hid_svc = furi_alloc(sizeof(HIDSvc)); + hid_svc = malloc(sizeof(HIDSvc)); Service_UUID_t svc_uuid = {}; Char_Desc_Uuid_t desc_uuid = {}; Char_UUID_t char_uuid = {}; diff --git a/firmware/targets/f7/ble_glue/serial_service.c b/firmware/targets/f7/ble_glue/serial_service.c index 4acba7f0..a5d3b97a 100644 --- a/firmware/targets/f7/ble_glue/serial_service.c +++ b/firmware/targets/f7/ble_glue/serial_service.c @@ -82,7 +82,7 @@ static SVCCTL_EvtAckStatus_t serial_svc_event_handler(void* event) { void serial_svc_start() { tBleStatus status; - serial_svc = furi_alloc(sizeof(SerialSvc)); + serial_svc = malloc(sizeof(SerialSvc)); // Register event handler SVCCTL_RegisterSvcHandler(serial_svc_event_handler); diff --git a/firmware/targets/f7/fatfs/stm32_adafruit_sd.c b/firmware/targets/f7/fatfs/stm32_adafruit_sd.c index b97b95c8..9225a90b 100644 --- a/firmware/targets/f7/fatfs/stm32_adafruit_sd.c +++ b/firmware/targets/f7/fatfs/stm32_adafruit_sd.c @@ -435,7 +435,7 @@ uint8_t goto error; } - ptr = furi_alloc(sizeof(uint8_t) * BlockSize); + ptr = malloc(sizeof(uint8_t) * BlockSize); if(ptr == NULL) { goto error; } @@ -516,7 +516,7 @@ uint8_t BSP_SD_WriteBlocks( goto error; } - ptr = furi_alloc(sizeof(uint8_t) * BlockSize); + ptr = malloc(sizeof(uint8_t) * BlockSize); if(ptr == NULL) { goto error; } diff --git a/firmware/targets/f7/furi_hal/furi_hal.c b/firmware/targets/f7/furi_hal/furi_hal.c index 082956b1..2821182c 100644 --- a/firmware/targets/f7/furi_hal/furi_hal.c +++ b/firmware/targets/f7/furi_hal/furi_hal.c @@ -11,9 +11,7 @@ #define TAG "FuriHal" void furi_hal_init() { - furi_hal_clock_init(); furi_hal_rtc_init(); - furi_hal_console_init(); furi_hal_interrupt_init(); furi_hal_delay_init(); @@ -71,3 +69,8 @@ void furi_hal_init() { LL_MPU_INSTRUCTION_ACCESS_ENABLE); LL_MPU_Enable(LL_MPU_CTRL_PRIVILEGED_DEFAULT); } + +void furi_hal_init_critical() { + furi_hal_clock_init(); + furi_hal_console_init(); +}
\ No newline at end of file diff --git a/firmware/targets/f7/furi_hal/furi_hal_bt_hid.c b/firmware/targets/f7/furi_hal/furi_hal_bt_hid.c index 6b7128d8..507dedfb 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_bt_hid.c +++ b/firmware/targets/f7/furi_hal/furi_hal_bt_hid.c @@ -147,8 +147,8 @@ void furi_hal_bt_hid_start() { hid_svc_start(); } // Configure HID Keyboard - kb_report = furi_alloc(sizeof(FuriHalBtHidKbReport)); - media_report = furi_alloc(sizeof(FuriHalBtHidMediaReport)); + kb_report = malloc(sizeof(FuriHalBtHidKbReport)); + media_report = malloc(sizeof(FuriHalBtHidMediaReport)); // Configure Report Map characteristic hid_svc_update_report_map( furi_hal_bt_hid_report_map_data, sizeof(furi_hal_bt_hid_report_map_data)); diff --git a/firmware/targets/f7/furi_hal/furi_hal_compress.c b/firmware/targets/f7/furi_hal/furi_hal_compress.c index d0efb143..7e31dbbf 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_compress.c +++ b/firmware/targets/f7/furi_hal/furi_hal_compress.c @@ -41,7 +41,7 @@ static void furi_hal_compress_reset(FuriHalCompress* compress) { } void furi_hal_compress_icon_init() { - icon_decoder = furi_alloc(sizeof(FuriHalCompressIcon)); + icon_decoder = malloc(sizeof(FuriHalCompressIcon)); icon_decoder->decoder = heatshrink_decoder_alloc( icon_decoder->compress_buff, FURI_HAL_COMPRESS_ICON_ENCODED_BUFF_SIZE, @@ -84,8 +84,8 @@ void furi_hal_compress_icon_decode(const uint8_t* icon_data, uint8_t** decoded_b } FuriHalCompress* furi_hal_compress_alloc(uint16_t compress_buff_size) { - FuriHalCompress* compress = furi_alloc(sizeof(FuriHalCompress)); - compress->compress_buff = furi_alloc(compress_buff_size + FURI_HAL_COMPRESS_EXP_BUFF_SIZE); + FuriHalCompress* compress = malloc(sizeof(FuriHalCompress)); + compress->compress_buff = malloc(compress_buff_size + FURI_HAL_COMPRESS_EXP_BUFF_SIZE); compress->encoder = heatshrink_encoder_alloc( compress->compress_buff, FURI_HAL_COMPRESS_EXP_BUFF_SIZE_LOG, diff --git a/firmware/targets/f7/furi_hal/furi_hal_console.c b/firmware/targets/f7/furi_hal/furi_hal_console.c index dd51716f..f3cf06da 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_console.c +++ b/firmware/targets/f7/furi_hal/furi_hal_console.c @@ -12,15 +12,17 @@ #define TAG "FuriHalConsole" +#ifdef HEAP_PRINT_DEBUG +#define CONSOLE_BAUDRATE 1843200 +#else #define CONSOLE_BAUDRATE 230400 +#endif volatile bool furi_hal_console_alive = false; void furi_hal_console_init() { furi_hal_uart_init(FuriHalUartIdUSART1, CONSOLE_BAUDRATE); furi_hal_console_alive = true; - - FURI_LOG_I(TAG, "Init OK"); } void furi_hal_console_enable() { diff --git a/firmware/targets/f7/furi_hal/furi_hal_irda.c b/firmware/targets/f7/furi_hal/furi_hal_irda.c index cd984741..6fe051a9 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_irda.c +++ b/firmware/targets/f7/furi_hal/furi_hal_irda.c @@ -588,13 +588,13 @@ void furi_hal_irda_async_tx_start(uint32_t freq, float duty_cycle) { furi_assert(irda_tim_tx.buffer[1].polarity == NULL); size_t alloc_size_data = IRDA_TIM_TX_DMA_BUFFER_SIZE * sizeof(uint16_t); - irda_tim_tx.buffer[0].data = furi_alloc(alloc_size_data); - irda_tim_tx.buffer[1].data = furi_alloc(alloc_size_data); + irda_tim_tx.buffer[0].data = malloc(alloc_size_data); + irda_tim_tx.buffer[1].data = malloc(alloc_size_data); size_t alloc_size_polarity = (IRDA_TIM_TX_DMA_BUFFER_SIZE + IRDA_POLARITY_SHIFT) * sizeof(uint8_t); - irda_tim_tx.buffer[0].polarity = furi_alloc(alloc_size_polarity); - irda_tim_tx.buffer[1].polarity = furi_alloc(alloc_size_polarity); + irda_tim_tx.buffer[0].polarity = malloc(alloc_size_polarity); + irda_tim_tx.buffer[1].polarity = malloc(alloc_size_polarity); irda_tim_tx.stop_semaphore = osSemaphoreNew(1, 0, NULL); irda_tim_tx.cycle_duration = 1000000.0 / freq; diff --git a/firmware/targets/f7/furi_hal/furi_hal_subghz.c b/firmware/targets/f7/furi_hal/furi_hal_subghz.c index e2de0038..8dacd3f0 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_subghz.c +++ b/firmware/targets/f7/furi_hal/furi_hal_subghz.c @@ -874,7 +874,7 @@ bool furi_hal_subghz_start_async_tx(FuriHalSubGhzAsyncTxCallback callback, void* furi_hal_subghz_async_tx.duty_high = 0; furi_hal_subghz_async_tx.buffer = - furi_alloc(API_HAL_SUBGHZ_ASYNC_TX_BUFFER_FULL * sizeof(uint32_t)); + malloc(API_HAL_SUBGHZ_ASYNC_TX_BUFFER_FULL * sizeof(uint32_t)); furi_hal_subghz_async_tx_refill( furi_hal_subghz_async_tx.buffer, API_HAL_SUBGHZ_ASYNC_TX_BUFFER_FULL); diff --git a/firmware/targets/f7/furi_hal/furi_hal_usb_cdc.c b/firmware/targets/f7/furi_hal/furi_hal_usb_cdc.c index d7fcbc58..bf0fd7d4 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_usb_cdc.c +++ b/firmware/targets/f7/furi_hal/furi_hal_usb_cdc.c @@ -434,14 +434,14 @@ static void cdc_init(usbd_device* dev, FuriHalUsbInterface* intf) { char* name = (char*)furi_hal_version_get_device_name_ptr(); uint8_t len = (name == NULL) ? (0) : (strlen(name)); - struct usb_string_descriptor* dev_prod_desc = furi_alloc(len * 2 + 2); + struct usb_string_descriptor* dev_prod_desc = malloc(len * 2 + 2); dev_prod_desc->bLength = len * 2 + 2; dev_prod_desc->bDescriptorType = USB_DTYPE_STRING; for(uint8_t i = 0; i < len; i++) dev_prod_desc->wString[i] = name[i]; name = (char*)furi_hal_version_get_name_ptr(); len = (name == NULL) ? (0) : (strlen(name)); - struct usb_string_descriptor* dev_serial_desc = furi_alloc((len + 5) * 2 + 2); + struct usb_string_descriptor* dev_serial_desc = malloc((len + 5) * 2 + 2); dev_serial_desc->bLength = (len + 5) * 2 + 2; dev_serial_desc->bDescriptorType = USB_DTYPE_STRING; memcpy(dev_serial_desc->wString, "f\0l\0i\0p\0_\0", 5 * 2); diff --git a/firmware/targets/f7/furi_hal/furi_hal_vcp.c b/firmware/targets/f7/furi_hal/furi_hal_vcp.c index 409a61a0..828fc619 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_vcp.c +++ b/firmware/targets/f7/furi_hal/furi_hal_vcp.c @@ -58,7 +58,7 @@ static const uint8_t ascii_soh = 0x01; static const uint8_t ascii_eot = 0x04; void furi_hal_vcp_init() { - vcp = furi_alloc(sizeof(FuriHalVcp)); + vcp = malloc(sizeof(FuriHalVcp)); vcp->connected = false; vcp->tx_stream = xStreamBufferCreate(VCP_TX_BUF_SIZE, 1); diff --git a/firmware/targets/furi_hal_include/furi_hal.h b/firmware/targets/furi_hal_include/furi_hal.h index 334c628f..12bddebb 100644 --- a/firmware/targets/furi_hal_include/furi_hal.h +++ b/firmware/targets/furi_hal_include/furi_hal.h @@ -44,3 +44,9 @@ template <unsigned int N> struct STOP_EXTERNING_ME {}; /** Init furi_hal */ void furi_hal_init(); + +/** + * Init critical parts of furi_hal + * That code should not use memory allocations + */ +void furi_hal_init_critical(); |