瀏覽代碼

Squashed 'esp_flasher/' changes from ed777578b..24a6473d3

24a6473d3 upd version
7f28ddc12 update sudoku and esp flasher
20b5d1d3e do not reset 5v if it was enabled in gpio
030f92877 new apps and updates
4a2d4ad1c add esp flasher
REVERT: ed777578b Add assets_icons.h
REVERT: 3954b8b19 Xtreme tweaks
REVERT: 838086ca4 Add upstream remote
REVERT: f7e847be0 Update fap version in application.fam
REVERT: 4ba2075c4 Update changelog for app catalog
REVERT: fb4155d8a Implement FW switching
REVERT: 70505e774 Update changelog for flipper app catalog
REVERT: 5c5d9462f Update fap version in application.fam
REVERT: 2edae07be Add notifications (blue LED during flash and vibrate at end)
REVERT: 80685060a Implement auto-reset for supported boards and reset/boot menu items
REVERT: b28f12255 Fix redef issue for xtreme
REVERT: 7744b4ed6 Update ReadMe.md with pinout link
REVERT: 577618563 Update README.md with pinout link for app catalog
REVERT: d922bf710 Update ReadMe.md
REVERT: 0222d59de add espressif library credit to readme
REVERT: 4cbc0bd21 Update readme for flipper app catalog
REVERT: 74c197ac6 Update changelog.md
REVERT: afe970f2f Put readme screenshots next to each other
REVERT: c7adb0bad add screenshots to readme
REVERT: a90e1f976 Update readme, get rid of default readme
REVERT: e93a7e4e2 Add screenshots for flipper app catalog
REVERT: f82f3e4ca Add fap build workflow
REVERT: 956d14b74 Run formatter and edit README
REVERT: 25f74aa2b working - need to update docs
REVERT: 891183a42 initial commit - copy of marauder app
REVERT: f0a887eb0 Initial commit

git-subtree-dir: esp_flasher
git-subtree-split: 24a6473d3d04ebca0f25f00876a5862d4afe778a
Willy-JL 2 年之前
父節點
當前提交
0e818d1533

+ 0 - 5
.gitremotes

@@ -1,5 +0,0 @@
-[remote "upstream"]
-    url = https://github.com/0xchocolate/flipperzero-esp-flasher
-    fetch = +refs/heads/*:refs/remotes/esp-flasher/*
-[alias]
-    merge-upstream = pull --no-edit upstream main

+ 1 - 1
application.fam

@@ -1,6 +1,6 @@
 App(
     appid="esp_flasher",
-    name="[ESP] ESP Flasher",
+    name="ESP Flasher",
     fap_version=(1,2),
     apptype=FlipperAppType.EXTERNAL,
     entry_point="esp_flasher_app",

二進制
assets/DolphinCommon_56x48.png


二進制
assets/KeyBackspaceSelected_16x9.png


二進制
assets/KeyBackspace_16x9.png


二進制
assets/KeyKeyboardSelected_10x11.png


二進制
assets/KeyKeyboard_10x11.png


二進制
assets/KeySaveSelected_24x11.png


二進制
assets/KeySave_24x11.png


二進制
assets/WarningDolphin_45x42.png


+ 0 - 1
esp_flasher_app.c

@@ -68,7 +68,6 @@ EspFlasherApp* esp_flasher_app_alloc() {
 
     app->reset = false;
     app->boot = false;
-    app->quickflash = false;
 
     scene_manager_next_scene(app->scene_manager, EspFlasherSceneStart);
 

+ 0 - 3
esp_flasher_app_i.h

@@ -22,8 +22,6 @@
 #include <dialogs/dialogs.h>
 #include <notification/notification_messages.h>
 
-#include <assets_icons.h>
-
 #define ESP_FLASHER_TEXT_BOX_STORE_SIZE (4096)
 
 #define ESP_APP_FOLDER_USER "apps_data/esp_flasher"
@@ -67,7 +65,6 @@ struct EspFlasherApp {
 
     bool reset;
     bool boot;
-    bool quickflash;
 
     SwitchFirmware switch_fw;
 

+ 2 - 6
esp_flasher_uart.c

@@ -1,11 +1,7 @@
 #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 UART_CH (FuriHalUartIdUSART1)
 #define BAUDRATE (115200)
 
 struct EspFlasherUart {
@@ -56,7 +52,6 @@ static int32_t uart_worker(void* context) {
         }
     }
 
-    furi_hal_uart_set_irq_cb(uart->channel, NULL, NULL);
     furi_stream_buffer_free(uart->rx_stream);
 
     return 0;
@@ -101,6 +96,7 @@ void esp_flasher_uart_free(EspFlasherUart* uart) {
     furi_thread_join(uart->rx_thread);
     furi_thread_free(uart->rx_thread);
 
+    furi_hal_uart_set_irq_cb(uart->channel, NULL, NULL);
     if(uart->channel == FuriHalUartIdLPUART1) {
         furi_hal_uart_deinit(uart->channel);
     }

+ 0 - 5
esp_flasher_worker.c

@@ -272,7 +272,6 @@ static int32_t esp_flasher_flash_bin(void* context) {
 
     // done
     app->flash_worker_busy = false;
-    app->quickflash = false;
 
     // cleanup
     furi_stream_buffer_free(flash_rx_stream);
@@ -320,10 +319,6 @@ static int32_t esp_flasher_reset(void* context) {
     app->reset = false;
     app->boot = false;
 
-    if(app->quickflash) {
-        esp_flasher_flash_bin(app);
-    }
-
     return 0;
 }
 

+ 0 - 1
scenes/esp_flasher_scene_config.h

@@ -1,5 +1,4 @@
 ADD_SCENE(esp_flasher, start, Start)
-ADD_SCENE(esp_flasher, quick, Quick)
 ADD_SCENE(esp_flasher, console_output, ConsoleOutput)
 ADD_SCENE(esp_flasher, about, About)
 ADD_SCENE(esp_flasher, browse, Browse)

+ 0 - 186
scenes/esp_flasher_scene_quick.c

@@ -1,186 +0,0 @@
-#include "../esp_flasher_app_i.h"
-
-enum QuickState {
-    QuickStart,
-    QuickWifidevS2,
-    QuickWifidevS2Blackmagic,
-    QuickWifidevS2Dualboot,
-    QuickDevproWroom,
-    QuickDevproWroomEvilportal,
-    QuickDevproWroomMarauder,
-};
-
-void esp_flasher_scene_quick_submenu_callback(void* context, uint32_t index) {
-    furi_assert(context);
-    EspFlasherApp* app = context;
-
-    view_dispatcher_send_custom_event(app->view_dispatcher, index);
-}
-
-void esp_flasher_scene_quick_on_enter(void* context) {
-    furi_assert(context);
-    EspFlasherApp* app = context;
-    Submenu* submenu = app->submenu;
-    uint32_t state = scene_manager_get_scene_state(app->scene_manager, EspFlasherSceneQuick);
-
-    switch(state) {
-    case QuickStart:
-    case QuickWifidevS2:
-    case QuickDevproWroom:
-        submenu_set_header(submenu, "Choose Board:");
-        submenu_add_item(
-            submenu,
-            "WiFi Dev (ESP32-S2)",
-            QuickWifidevS2,
-            esp_flasher_scene_quick_submenu_callback,
-            app);
-        submenu_add_item(
-            submenu,
-            "Dev Pro (ESP32-WROOM)",
-            QuickDevproWroom,
-            esp_flasher_scene_quick_submenu_callback,
-            app);
-        break;
-    case QuickWifidevS2Blackmagic:
-    case QuickWifidevS2Dualboot:
-        submenu_set_header(submenu, "Choose Firmware:");
-        submenu_add_item(
-            submenu,
-            "Black Magic",
-            QuickWifidevS2Blackmagic,
-            esp_flasher_scene_quick_submenu_callback,
-            app);
-        submenu_add_item(
-            submenu,
-            "Evil Portal + Marauder",
-            QuickWifidevS2Dualboot,
-            esp_flasher_scene_quick_submenu_callback,
-            app);
-        break;
-    case QuickDevproWroomEvilportal:
-    case QuickDevproWroomMarauder:
-        submenu_set_header(submenu, "Choose Firmware:");
-        submenu_add_item(
-            submenu,
-            "Evil Portal",
-            QuickDevproWroomEvilportal,
-            esp_flasher_scene_quick_submenu_callback,
-            app);
-        submenu_add_item(
-            submenu,
-            "Marauder",
-            QuickDevproWroomMarauder,
-            esp_flasher_scene_quick_submenu_callback,
-            app);
-        break;
-    default:
-        break;
-    }
-
-    submenu_set_selected_item(submenu, state);
-
-    view_dispatcher_switch_to_view(app->view_dispatcher, EspFlasherAppViewSubmenu);
-}
-
-bool esp_flasher_scene_quick_on_event(void* context, SceneManagerEvent event) {
-    furi_assert(context);
-
-    EspFlasherApp* app = context;
-    bool consumed = false;
-    if(event.type == SceneManagerEventTypeCustom) {
-        consumed = true;
-
-        bool flash = true;
-        bool enter_bootloader = false;
-        const char* boot = NULL; // 0x1000
-        const char* part = NULL; // 0x8000
-        const char* app0 = NULL; // 0xE000
-        const char* firm = NULL; // 0x10000
-
-        switch(event.event) {
-        case QuickWifidevS2:
-        case QuickDevproWroom:
-            scene_manager_set_scene_state(
-                app->scene_manager, EspFlasherSceneQuick, event.event + 1);
-            scene_manager_next_scene(app->scene_manager, EspFlasherSceneQuick);
-            flash = false;
-            break;
-        case QuickWifidevS2Blackmagic:
-            boot = APP_DATA_PATH("assets/wifidev-s2/blackmagic/bootloader.bin");
-            part = APP_DATA_PATH("assets/wifidev-s2/blackmagic/partition-table.bin");
-            firm = APP_DATA_PATH("assets/wifidev-s2/blackmagic/blackmagic.bin");
-            enter_bootloader = true;
-            break;
-        case QuickWifidevS2Dualboot:
-            boot = APP_DATA_PATH("assets/wifidev-s2/dualboot.bin");
-            enter_bootloader = true;
-            break;
-        case QuickDevproWroomEvilportal:
-            boot = APP_DATA_PATH("assets/devpro-wroom/evilportal/EvilPortal.ino.bootloader.bin");
-            part = APP_DATA_PATH("assets/devpro-wroom/evilportal/EvilPortal.ino.partitions.bin");
-            app0 = APP_DATA_PATH("assets/devpro-wroom/boot_app0.bin");
-            firm = APP_DATA_PATH("assets/devpro-wroom/evilportal/EvilPortal.ino.bin");
-            break;
-        case QuickDevproWroomMarauder:
-            boot = APP_DATA_PATH("assets/devpro-wroom/marauder/bootloader.bin");
-            part = APP_DATA_PATH("assets/devpro-wroom/marauder/partitions.bin");
-            app0 = APP_DATA_PATH("assets/devpro-wroom/boot_app0.bin");
-            firm = APP_DATA_PATH("assets/devpro-wroom/marauder/marauder_dev_board_pro.bin");
-            break;
-        default:
-            flash = false;
-            consumed = false;
-            break;
-        }
-
-        if(flash) {
-            scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneQuick, event.event);
-            memset(app->selected_flash_options, 0, sizeof(app->selected_flash_options));
-            app->bin_file_path_boot[0] = '\0';
-            app->bin_file_path_part[0] = '\0';
-            app->bin_file_path_nvs[0] = '\0';
-            app->bin_file_path_boot_app0[0] = '\0';
-            app->bin_file_path_app_a[0] = '\0';
-            app->bin_file_path_app_b[0] = '\0';
-            app->bin_file_path_custom[0] = '\0';
-
-            if(boot) {
-                app->selected_flash_options[SelectedFlashBoot] = true;
-                strncpy(app->bin_file_path_boot, boot, sizeof(app->bin_file_path_boot));
-            }
-            if(part) {
-                app->selected_flash_options[SelectedFlashPart] = true;
-                strncpy(app->bin_file_path_part, part, sizeof(app->bin_file_path_part));
-            }
-            if(app0) {
-                app->selected_flash_options[SelectedFlashBootApp0] = true;
-                strncpy(app->bin_file_path_boot_app0, app0, sizeof(app->bin_file_path_boot_app0));
-            }
-            if(firm) {
-                app->selected_flash_options[SelectedFlashAppA] = true;
-                strncpy(app->bin_file_path_app_a, firm, sizeof(app->bin_file_path_app_a));
-            }
-
-            app->reset = false;
-            app->quickflash = true;
-            app->boot = enter_bootloader;
-            scene_manager_next_scene(app->scene_manager, EspFlasherSceneConsoleOutput);
-        }
-    } else if(event.type == SceneManagerEventTypeBack) {
-        uint32_t state = scene_manager_get_scene_state(app->scene_manager, EspFlasherSceneQuick);
-        if(state > QuickDevproWroom)
-            state = QuickDevproWroom;
-        else if(state > QuickWifidevS2)
-            state = QuickWifidevS2;
-        scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneQuick, state);
-    }
-
-    return consumed;
-}
-
-void esp_flasher_scene_quick_on_exit(void* context) {
-    furi_assert(context);
-
-    EspFlasherApp* app = context;
-    submenu_reset(app->submenu);
-}

+ 8 - 23
scenes/esp_flasher_scene_start.c

@@ -1,13 +1,12 @@
 #include "../esp_flasher_app_i.h"
 
 enum SubmenuIndex {
-    SubmenuIndexEspFlasherQuickFlash,
+    SubmenuIndexEspFlasherFlash,
     SubmenuIndexEspFlasherSwitchA,
     SubmenuIndexEspFlasherSwitchB,
-    SubmenuIndexEspFlasherManualFlash,
+    SubmenuIndexEspFlasherAbout,
     SubmenuIndexEspFlasherReset,
     SubmenuIndexEspFlasherBootloader,
-    SubmenuIndexEspFlasherAbout,
 };
 
 void esp_flasher_scene_start_submenu_callback(void* context, uint32_t index) {
@@ -22,31 +21,24 @@ void esp_flasher_scene_start_on_enter(void* context) {
 
     EspFlasherApp* app = context;
     Submenu* submenu = app->submenu;
-    submenu_set_header(submenu, "ESP Flasher");
     submenu_add_item(
         submenu,
-        "Quick Flash",
-        SubmenuIndexEspFlasherQuickFlash,
+        "Flash ESP",
+        SubmenuIndexEspFlasherFlash,
         esp_flasher_scene_start_submenu_callback,
         app);
     submenu_add_item(
         submenu,
-        "Select Evil Portal (Fw A)",
+        "Switch to Firmware A",
         SubmenuIndexEspFlasherSwitchA,
         esp_flasher_scene_start_submenu_callback,
         app);
     submenu_add_item(
         submenu,
-        "Select Marauder (Fw B)",
+        "Switch to Firmware B",
         SubmenuIndexEspFlasherSwitchB,
         esp_flasher_scene_start_submenu_callback,
         app);
-    submenu_add_item(
-        submenu,
-        "Manual Flash",
-        SubmenuIndexEspFlasherManualFlash,
-        esp_flasher_scene_start_submenu_callback,
-        app);
     submenu_add_item(
         submenu,
         "Reset Board",
@@ -81,24 +73,17 @@ bool esp_flasher_scene_start_on_event(void* context, SceneManagerEvent event) {
         if(event.event == SubmenuIndexEspFlasherAbout) {
             scene_manager_next_scene(app->scene_manager, EspFlasherSceneAbout);
             consumed = true;
-        } else if(event.event == SubmenuIndexEspFlasherQuickFlash) {
-            scene_manager_next_scene(app->scene_manager, EspFlasherSceneQuick);
+        } else if(event.event == SubmenuIndexEspFlasherFlash) {
+            scene_manager_next_scene(app->scene_manager, EspFlasherSceneBrowse);
             consumed = true;
         } else if(event.event == SubmenuIndexEspFlasherSwitchA) {
-            app->boot = true;
-            app->quickflash = true;
             app->switch_fw = SwitchToFirmwareA;
             scene_manager_next_scene(app->scene_manager, EspFlasherSceneConsoleOutput);
             consumed = true;
         } else if(event.event == SubmenuIndexEspFlasherSwitchB) {
-            app->boot = true;
-            app->quickflash = true;
             app->switch_fw = SwitchToFirmwareB;
             scene_manager_next_scene(app->scene_manager, EspFlasherSceneConsoleOutput);
             consumed = true;
-        } else if(event.event == SubmenuIndexEspFlasherManualFlash) {
-            scene_manager_next_scene(app->scene_manager, EspFlasherSceneBrowse);
-            consumed = true;
         } else if(event.event == SubmenuIndexEspFlasherReset) {
             app->reset = true;
             scene_manager_next_scene(app->scene_manager, EspFlasherSceneConsoleOutput);

二進制
wifi_10px.png