Update ESP Flasher, FAST FLASH!!

This commit is contained in:
Sil333033
2023-11-26 22:01:38 +01:00
parent af00cc4e0a
commit dddcca815f
5 changed files with 31 additions and 27 deletions

View File

@@ -1,7 +1,7 @@
App(
appid="esp_flasher",
name="[ESP] ESP Flasher",
fap_version=(1, 3),
fap_version=(1, 4),
apptype=FlipperAppType.EXTERNAL,
entry_point="esp_flasher_app",
requires=["gui"],
@@ -23,7 +23,7 @@ App(
"src/slip.c",
],
cincludes=["lib/esp-serial-flasher/private_include"],
cdefines=["SERIAL_FLASHER_INTERFACE_UART=1", "MD5_ENABLED=1"],
cdefines=["SERIAL_FLASHER_INTERFACE_UART=1", "MD5_ENABLED=1", "SERIAL_FLASHER_WRITE_BLOCK_RETRIES=10"],
),
],
cdefines=["SERIAL_FLASHER_INTERFACE_UART=1"],

View File

@@ -4,7 +4,7 @@
extern "C" {
#endif
#define ESP_FLASHER_APP_VERSION "v1.3"
#define ESP_FLASHER_APP_VERSION "v1.4"
typedef struct EspFlasherApp EspFlasherApp;

View File

@@ -1,12 +1,6 @@
#include "esp_flasher_app_i.h"
#include "esp_flasher_uart.h"
#include <xtreme.h>
#define UART_CH \
(xtreme_settings.uart_esp_channel == UARTDefault ? FuriHalUartIdUSART1 : FuriHalUartIdLPUART1)
#define BAUDRATE (115200)
struct EspFlasherUart {
EspFlasherApp* app;
FuriHalUartId channel;
@@ -81,9 +75,9 @@ EspFlasherUart*
if(channel == FuriHalUartIdUSART1) {
furi_hal_console_disable();
} else if(channel == FuriHalUartIdLPUART1) {
furi_hal_uart_init(channel, BAUDRATE);
furi_hal_uart_init(channel, DEFAULT_BAUDRATE);
}
furi_hal_uart_set_br(channel, BAUDRATE);
furi_hal_uart_set_br(channel, DEFAULT_BAUDRATE);
furi_hal_uart_set_irq_cb(channel, esp_flasher_uart_on_irq_cb, uart);
return uart;

View File

@@ -2,6 +2,13 @@
#include "furi_hal.h"
#include <xtreme.h>
#define UART_CH \
(xtreme_settings.uart_esp_channel == UARTDefault ? FuriHalUartIdUSART1 : FuriHalUartIdLPUART1)
#define DEFAULT_BAUDRATE (115200)
#define FAST_BAUDRATE (921600)
#define RX_BUF_SIZE (2048)
typedef struct EspFlasherUart EspFlasherUart;

View File

@@ -227,34 +227,37 @@ static int32_t esp_flasher_flash_bin(void* context) {
loader_port_debug_print(err_msg);
}
#if 0 // still getting packet drops with this
// higher BR
if(!err) {
uint32_t start_time = furi_get_tick();
loader_port_debug_print("Connected\n");
loader_port_debug_print("Increasing speed for faster flash\n");
err = esp_loader_change_transmission_rate(230400);
if (err != ESP_LOADER_SUCCESS) {
err = esp_loader_change_transmission_rate(FAST_BAUDRATE);
if(err != ESP_LOADER_SUCCESS) {
char err_msg[256];
snprintf(
err_msg,
sizeof(err_msg),
"Cannot change transmission rate. Error: %u\n",
err);
err_msg, sizeof(err_msg), "Cannot change transmission rate. Error: %u\n", err);
loader_port_debug_print(err_msg);
return 0;
}
furi_hal_uart_set_br(FuriHalUartIdUSART1, 230400);
}
#endif
furi_hal_uart_set_br(UART_CH, FAST_BAUDRATE);
if(!err) {
loader_port_debug_print("Connected\n");
if(!_switch_fw(app)) {
_flash_all_files(app);
}
app->switch_fw = SwitchNotSet;
#if 0
loader_port_debug_print("Restoring transmission rate\n");
furi_hal_uart_set_br(FuriHalUartIdUSART1, 115200);
#endif
furi_hal_uart_set_br(UART_CH, DEFAULT_BAUDRATE);
FuriString* flash_time =
furi_string_alloc_printf("Flash took: %lds\n", (furi_get_tick() - start_time) / 1000);
loader_port_debug_print(furi_string_get_cstr(flash_time));
furi_string_free(flash_time);
loader_port_debug_print(
"Done flashing. Please reset the board manually if it doesn't auto-reset.\n");