From 59ffe98b67285658d6147fa06a393a9588d18fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Tue, 16 Jul 2024 13:52:25 +0200 Subject: [PATCH 1/5] doc: instructions for merging applications --- README.md | 15 +++++++++++++++ diagram.json | 16 ++++++++++++++++ wokwi.toml | 5 +++++ 3 files changed, 36 insertions(+) create mode 100644 diagram.json create mode 100644 wokwi.toml diff --git a/README.md b/README.md index a80f3e3..acc72dc 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,21 @@ esptool.py --chip esp32s3 --baud 921600 --before default_reset --after hard_res popd ``` +### Merging all applications + +Following command merges all applications into UF2 format: + +``` +esptool.py --chip esp32s3 merge_bin --format uf2 -o build/uf2.bin --flash_mode dio --flash_size 16MB \ + 0x1000 build/bootloader/bootloader.bin \ + 0x8000 build/partition_table/partition-table.bin \ + 0x220000 apps/tic_tac_toe/build/tic_tac_toe.bin \ + 0x4E0000 apps/wifi_list/build/wifi_list.bin \ + 0x7A0000 apps/calculator/build/calculator.bin \ + 0xA60000 apps/synth_piano/build/synth_piano.bin \ + 0xD20000 apps/game_of_life/build/game_of_life.bin +``` + ## Build Initial build and flash of the application and partition table. diff --git a/diagram.json b/diagram.json new file mode 100644 index 0000000..6576a3d --- /dev/null +++ b/diagram.json @@ -0,0 +1,16 @@ +{ + "version": 1, + "author": "Uri Shaked", + "editor": "wokwi", + "parts": [ + { + "type": "board-esp32-s3-box-3", + "id": "esp32", + "top": -24.91, + "left": -388.54, + "attrs": { "psramSize": "16", "flashSize": "16" } + } + ], + "connections": [ [ "$serialMonitor:RX", "esp32:G14", "", [] ], [ "$serialMonitor:TX", "esp32:G11", "", [] ] ], + "dependencies": {} +} \ No newline at end of file diff --git a/wokwi.toml b/wokwi.toml new file mode 100644 index 0000000..689fc7e --- /dev/null +++ b/wokwi.toml @@ -0,0 +1,5 @@ +[wokwi] +version = 1 +elf = "build/uf2.bin" +firmware = "build/uf2.bin" + From 40c3f487aa4502dc072b26edd89e1e9e805ba9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Tue, 16 Jul 2024 15:47:27 +0200 Subject: [PATCH 2/5] switch default idf_components to ESP32-S3-BOX-3 --- apps/calculator/main/idf_component.yml | 9 +++------ apps/game_of_life/main/idf_component.yml | 9 +++------ apps/synth_piano/main/idf_component.yml | 9 +++------ apps/tic_tac_toe/main/idf_component.yml | 9 +++------ apps/wifi_list/main/idf_component.yml | 9 +++------ main/idf_component.yml | 5 +---- 6 files changed, 16 insertions(+), 34 deletions(-) diff --git a/apps/calculator/main/idf_component.yml b/apps/calculator/main/idf_component.yml index 742503f..b2f6efb 100644 --- a/apps/calculator/main/idf_component.yml +++ b/apps/calculator/main/idf_component.yml @@ -1,11 +1,8 @@ -## IDF Component Manager Manifest File +description: ESP32 Graphical Bootloader + dependencies: - espressif/esp-box: "^3.1.0" - #espressif/esp-box-3: "^1.2.0" + espressif/esp-box-3: "^1.2.0" # Workaround for i2c: CONFLICT! driver_ng is not allowed to be used with this old driver esp_codec_dev: public: true version: "==1.1.0" - ## Required IDF version - idf: - version: ">=5.0.0" diff --git a/apps/game_of_life/main/idf_component.yml b/apps/game_of_life/main/idf_component.yml index 742503f..b2f6efb 100644 --- a/apps/game_of_life/main/idf_component.yml +++ b/apps/game_of_life/main/idf_component.yml @@ -1,11 +1,8 @@ -## IDF Component Manager Manifest File +description: ESP32 Graphical Bootloader + dependencies: - espressif/esp-box: "^3.1.0" - #espressif/esp-box-3: "^1.2.0" + espressif/esp-box-3: "^1.2.0" # Workaround for i2c: CONFLICT! driver_ng is not allowed to be used with this old driver esp_codec_dev: public: true version: "==1.1.0" - ## Required IDF version - idf: - version: ">=5.0.0" diff --git a/apps/synth_piano/main/idf_component.yml b/apps/synth_piano/main/idf_component.yml index 742503f..b2f6efb 100644 --- a/apps/synth_piano/main/idf_component.yml +++ b/apps/synth_piano/main/idf_component.yml @@ -1,11 +1,8 @@ -## IDF Component Manager Manifest File +description: ESP32 Graphical Bootloader + dependencies: - espressif/esp-box: "^3.1.0" - #espressif/esp-box-3: "^1.2.0" + espressif/esp-box-3: "^1.2.0" # Workaround for i2c: CONFLICT! driver_ng is not allowed to be used with this old driver esp_codec_dev: public: true version: "==1.1.0" - ## Required IDF version - idf: - version: ">=5.0.0" diff --git a/apps/tic_tac_toe/main/idf_component.yml b/apps/tic_tac_toe/main/idf_component.yml index 742503f..b2f6efb 100644 --- a/apps/tic_tac_toe/main/idf_component.yml +++ b/apps/tic_tac_toe/main/idf_component.yml @@ -1,11 +1,8 @@ -## IDF Component Manager Manifest File +description: ESP32 Graphical Bootloader + dependencies: - espressif/esp-box: "^3.1.0" - #espressif/esp-box-3: "^1.2.0" + espressif/esp-box-3: "^1.2.0" # Workaround for i2c: CONFLICT! driver_ng is not allowed to be used with this old driver esp_codec_dev: public: true version: "==1.1.0" - ## Required IDF version - idf: - version: ">=5.0.0" diff --git a/apps/wifi_list/main/idf_component.yml b/apps/wifi_list/main/idf_component.yml index 742503f..b2f6efb 100644 --- a/apps/wifi_list/main/idf_component.yml +++ b/apps/wifi_list/main/idf_component.yml @@ -1,11 +1,8 @@ -## IDF Component Manager Manifest File +description: ESP32 Graphical Bootloader + dependencies: - espressif/esp-box: "^3.1.0" - #espressif/esp-box-3: "^1.2.0" + espressif/esp-box-3: "^1.2.0" # Workaround for i2c: CONFLICT! driver_ng is not allowed to be used with this old driver esp_codec_dev: public: true version: "==1.1.0" - ## Required IDF version - idf: - version: ">=5.0.0" diff --git a/main/idf_component.yml b/main/idf_component.yml index 0174849..b2f6efb 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -1,11 +1,8 @@ description: ESP32 Graphical Bootloader dependencies: - espressif/esp-box: "^3.1.0" - #espressif/esp-box-3: "^1.2.0" + espressif/esp-box-3: "^1.2.0" # Workaround for i2c: CONFLICT! driver_ng is not allowed to be used with this old driver esp_codec_dev: public: true version: "==1.1.0" - #m5stack_core_s3: - # version: "^1.0.0" From 4fcc1c8da8a4bbaf6e1e74e00afdec89d8a5c395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Tue, 16 Jul 2024 16:44:07 +0200 Subject: [PATCH 3/5] add ESP32-P4 build --- Apps.cmake | 2 +- README.md | 21 +++++++--- SingleImage.cmake | 40 +++++++++++++++++++ ...config.defaults.esp32_p4_function_ev_board | 33 +++++++++++++++ ...config.defaults.esp32_p4_function_ev_board | 33 +++++++++++++++ ...config.defaults.esp32_p4_function_ev_board | 33 +++++++++++++++ ...config.defaults.esp32_p4_function_ev_board | 33 +++++++++++++++ ...config.defaults.esp32_p4_function_ev_board | 33 +++++++++++++++ 8 files changed, 222 insertions(+), 6 deletions(-) create mode 100644 SingleImage.cmake create mode 100644 apps/calculator/sdkconfig.defaults.esp32_p4_function_ev_board create mode 100644 apps/game_of_life/sdkconfig.defaults.esp32_p4_function_ev_board create mode 100644 apps/synth_piano/sdkconfig.defaults.esp32_p4_function_ev_board create mode 100644 apps/tic_tac_toe/sdkconfig.defaults.esp32_p4_function_ev_board create mode 100644 apps/wifi_list/sdkconfig.defaults.esp32_p4_function_ev_board diff --git a/Apps.cmake b/Apps.cmake index 890aa19..5d87e10 100644 --- a/Apps.cmake +++ b/Apps.cmake @@ -41,7 +41,7 @@ function(build_and_flash_app APP ADDR) message(STATUS "Flashing ${APP} to address ${ADDR}") execute_process( - COMMAND esptool.py --chip esp32s3 --baud 921600 --before default_reset --after hard_reset write_flash ${ADDR} ${CMAKE_SOURCE_DIR}/apps/${APP}/build/${APP}.bin + COMMAND esptool.py --before default_reset --after hard_reset write_flash ${ADDR} ${CMAKE_SOURCE_DIR}/apps/${APP}/build/${APP}.bin RESULT_VARIABLE flash_result ) if(NOT flash_result EQUAL 0) diff --git a/README.md b/README.md index acc72dc..2dbf6b1 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,17 @@ Finish the configuration (copy of proper idf_component.yml to main and all appli cmake -P SelectBoard.cmake ``` +### Switching to other board + +If you already built a project for existing board and you'd like to build for a different one, then it's necessary remove sdkconfig created for the specific HW. + +```shell +rm -rf managed_components sdkconfig build +idf.py fullclean +``` + +You should repeat this process also for applications. + ## Quick start Build and flash all applications at once: @@ -47,19 +58,19 @@ cmake -S . -B build -P Apps.cmake idf.py build flash pushd apps/tic_tac_toe idf.py build -esptool.py --chip esp32s3 --baud 921600 --before default_reset --after hard_reset write_flash 0x220000 build/tic_tac_toe.bin +esptool.py --before default_reset --after hard_reset write_flash 0x220000 build/tic_tac_toe.bin popd pushd apps/wifi_list -esptool.py --chip esp32s3 --baud 921600 --before default_reset --after hard_reset write_flash 0x4E0000 build/wifi_list.bin +esptool.py --before default_reset --after hard_reset write_flash 0x4E0000 build/wifi_list.bin popd pushd apps/calculator -esptool.py --chip esp32s3 --baud 921600 --before default_reset --after hard_reset write_flash 0x7A0000 build/calculator.bin +esptool.py --before default_reset --after hard_reset write_flash 0x7A0000 build/calculator.bin popd pushd apps/synth_piano -esptool.py --chip esp32s3 --baud 921600 --before default_reset --after hard_reset write_flash 0xA60000 build/synth_piano.bin +esptool.py --before default_reset --after hard_reset write_flash 0xA60000 build/synth_piano.bin popd pushd apps/game_of_life -esptool.py --chip esp32s3 --baud 921600 --before default_reset --after hard_reset write_flash 0xD20000 build/game_of_life.bin +esptool.py --before default_reset --after hard_reset write_flash 0xD20000 build/game_of_life.bin popd ``` diff --git a/SingleImage.cmake b/SingleImage.cmake new file mode 100644 index 0000000..f227705 --- /dev/null +++ b/SingleImage.cmake @@ -0,0 +1,40 @@ +# Paths to binaries +set(BOOTLOADER_BIN "${CMAKE_SOURCE_DIR}/build/bootloader/bootloader.bin") +set(PARTITION_TABLE_BIN "${CMAKE_SOURCE_DIR}/build/partition_table/partition-table.bin") + +set(TIC_TAC_TOE_BIN "${CMAKE_SOURCE_DIR}/apps/tic_tac_toe/build/tic_tac_toe.bin") +set(WIFI_LIST_BIN "${CMAKE_SOURCE_DIR}/apps/wifi_list/build/wifi_list.bin") +set(CALCULATOR_BIN "${CMAKE_SOURCE_DIR}/apps/calculator/build/calculator.bin") +set(SYNTH_PIANO_BIN "${CMAKE_SOURCE_DIR}/apps/synth_piano/build/synth_piano.bin") +set(GAME_OF_LIFE_BIN "${CMAKE_SOURCE_DIR}/apps/game_of_life/build/game_of_life.bin") + +# Output files +set(COMBINED_BIN "${CMAKE_SOURCE_DIR}/combined.bin") +set(COMBINED_UF2 "${CMAKE_SOURCE_DIR}/combined.uf2") + +# Add custom target to merge binaries +add_custom_target(merge_binaries ALL + COMMAND ${CMAKE_COMMAND} -E echo "Merging binaries into ${COMBINED_BIN}..." + COMMAND esptool.py --chip esp32s3 merge_bin -o ${COMBINED_BIN} + --flash_mode dio --flash_freq 80m --flash_size 16MB + 0x1000 ${BOOTLOADER_BIN} + 0x8000 ${PARTITION_TABLE_BIN} + 0x220000 ${TIC_TAC_TOE_BIN} + 0x4E0000 ${WIFI_LIST_BIN} + 0x7A0000 ${CALCULATOR_BIN} + 0xA60000 ${SYNTH_PIANO_BIN} + 0xD20000 ${GAME_OF_LIFE_BIN} + COMMAND ${CMAKE_COMMAND} -E echo "Converting ${COMBINED_BIN} to ${COMBINED_UF2}..." + COMMAND python ${CMAKE_SOURCE_DIR}/uf2conv.py ${COMBINED_BIN} --chip esp32s3 --base 0x0 --output ${COMBINED_UF2} + COMMENT "Merging and converting binaries to UF2" + VERBATIM +) + +# Ensure merge_binaries runs after all binaries are built +add_dependencies(merge_binaries + tic_tac_toe_app + wifi_list_app + calculator_app + synth_piano_app + game_of_life_app +) diff --git a/apps/calculator/sdkconfig.defaults.esp32_p4_function_ev_board b/apps/calculator/sdkconfig.defaults.esp32_p4_function_ev_board new file mode 100644 index 0000000..c9a7edc --- /dev/null +++ b/apps/calculator/sdkconfig.defaults.esp32_p4_function_ev_board @@ -0,0 +1,33 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32p4" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +#CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32=y + +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_COMPILER_OPTIMIZATION_PERF=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_SPIRAM_RODATA=y +CONFIG_SPIRAM_SPEED_80M=y +CONFIG_FREERTOS_HZ=1000 +CONFIG_BSP_LCD_RGB_BUFFER_NUMS=2 +CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y +CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y +CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y +CONFIG_SPIRAM_MODE_HEX=y +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_IDF_EXPERIMENTAL_FEATURES=y + +## LVGL9 ## +CONFIG_LV_CONF_SKIP=y + +#CLIB default +CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_USE_CLIB_STRING=y + diff --git a/apps/game_of_life/sdkconfig.defaults.esp32_p4_function_ev_board b/apps/game_of_life/sdkconfig.defaults.esp32_p4_function_ev_board new file mode 100644 index 0000000..c9a7edc --- /dev/null +++ b/apps/game_of_life/sdkconfig.defaults.esp32_p4_function_ev_board @@ -0,0 +1,33 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32p4" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +#CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32=y + +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_COMPILER_OPTIMIZATION_PERF=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_SPIRAM_RODATA=y +CONFIG_SPIRAM_SPEED_80M=y +CONFIG_FREERTOS_HZ=1000 +CONFIG_BSP_LCD_RGB_BUFFER_NUMS=2 +CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y +CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y +CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y +CONFIG_SPIRAM_MODE_HEX=y +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_IDF_EXPERIMENTAL_FEATURES=y + +## LVGL9 ## +CONFIG_LV_CONF_SKIP=y + +#CLIB default +CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_USE_CLIB_STRING=y + diff --git a/apps/synth_piano/sdkconfig.defaults.esp32_p4_function_ev_board b/apps/synth_piano/sdkconfig.defaults.esp32_p4_function_ev_board new file mode 100644 index 0000000..c9a7edc --- /dev/null +++ b/apps/synth_piano/sdkconfig.defaults.esp32_p4_function_ev_board @@ -0,0 +1,33 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32p4" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +#CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32=y + +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_COMPILER_OPTIMIZATION_PERF=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_SPIRAM_RODATA=y +CONFIG_SPIRAM_SPEED_80M=y +CONFIG_FREERTOS_HZ=1000 +CONFIG_BSP_LCD_RGB_BUFFER_NUMS=2 +CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y +CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y +CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y +CONFIG_SPIRAM_MODE_HEX=y +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_IDF_EXPERIMENTAL_FEATURES=y + +## LVGL9 ## +CONFIG_LV_CONF_SKIP=y + +#CLIB default +CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_USE_CLIB_STRING=y + diff --git a/apps/tic_tac_toe/sdkconfig.defaults.esp32_p4_function_ev_board b/apps/tic_tac_toe/sdkconfig.defaults.esp32_p4_function_ev_board new file mode 100644 index 0000000..c9a7edc --- /dev/null +++ b/apps/tic_tac_toe/sdkconfig.defaults.esp32_p4_function_ev_board @@ -0,0 +1,33 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32p4" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +#CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32=y + +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_COMPILER_OPTIMIZATION_PERF=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_SPIRAM_RODATA=y +CONFIG_SPIRAM_SPEED_80M=y +CONFIG_FREERTOS_HZ=1000 +CONFIG_BSP_LCD_RGB_BUFFER_NUMS=2 +CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y +CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y +CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y +CONFIG_SPIRAM_MODE_HEX=y +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_IDF_EXPERIMENTAL_FEATURES=y + +## LVGL9 ## +CONFIG_LV_CONF_SKIP=y + +#CLIB default +CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_USE_CLIB_STRING=y + diff --git a/apps/wifi_list/sdkconfig.defaults.esp32_p4_function_ev_board b/apps/wifi_list/sdkconfig.defaults.esp32_p4_function_ev_board new file mode 100644 index 0000000..aca718d --- /dev/null +++ b/apps/wifi_list/sdkconfig.defaults.esp32_p4_function_ev_board @@ -0,0 +1,33 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.4.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32p4" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_LV_FONT_DEFAULT_MONTSERRAT_32=y + +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_COMPILER_OPTIMIZATION_PERF=y +CONFIG_SPIRAM=y +CONFIG_SPIRAM_MODE_OCT=y +CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y +CONFIG_SPIRAM_RODATA=y +CONFIG_SPIRAM_SPEED_80M=y +CONFIG_FREERTOS_HZ=1000 +CONFIG_BSP_LCD_RGB_BUFFER_NUMS=2 +CONFIG_BSP_LCD_RGB_BOUNCE_BUFFER_MODE=y +CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y +CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y +CONFIG_SPIRAM_MODE_HEX=y +CONFIG_SPIRAM_SPEED_200M=y +CONFIG_IDF_EXPERIMENTAL_FEATURES=y + +## LVGL9 ## +CONFIG_LV_CONF_SKIP=y + +#CLIB default +CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_USE_CLIB_STRING=y + From 380792913148e5338eace9db4214c36d09db8c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Tue, 16 Jul 2024 17:18:24 +0200 Subject: [PATCH 4/5] doc: add screenshot from the application --- README.md | 3 +++ doc/esp32-s3-box-3-graphical-bootloader.webp | Bin 0 -> 6444 bytes 2 files changed, 3 insertions(+) create mode 100644 doc/esp32-s3-box-3-graphical-bootloader.webp diff --git a/README.md b/README.md index 2dbf6b1..4a202a0 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ 3rd stage graphical bootloader which let's you pick an applications whic are stored in OTA partitions. +![ESP32-S3-Box-3 Graphical Bootloader](doc/esp32-s3-box-3-graphical-bootloader.webp) + + ## Selected board The project is by default configured for ESP32-S3-BOX-3. In case of different board please run one of following exports and then CMake command: diff --git a/doc/esp32-s3-box-3-graphical-bootloader.webp b/doc/esp32-s3-box-3-graphical-bootloader.webp new file mode 100644 index 0000000000000000000000000000000000000000..57bd3e8cb8ba6c17f428781552525466c88ac9cf GIT binary patch literal 6444 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 G`+oq;?$=fT literal 0 HcmV?d00001 From 964dcceff569d17bb30b1850537ed1426e6c166e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Mich=C3=A1lek?= Date: Tue, 16 Jul 2024 17:31:27 +0200 Subject: [PATCH 5/5] doc: remove partition table and bootloader from uf2 instructions --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a202a0..b7e4d0d 100644 --- a/README.md +++ b/README.md @@ -83,8 +83,7 @@ Following command merges all applications into UF2 format: ``` esptool.py --chip esp32s3 merge_bin --format uf2 -o build/uf2.bin --flash_mode dio --flash_size 16MB \ - 0x1000 build/bootloader/bootloader.bin \ - 0x8000 build/partition_table/partition-table.bin \ + 0x10000 build/esp32-graphical-bootloader.bin \ 0x220000 apps/tic_tac_toe/build/tic_tac_toe.bin \ 0x4E0000 apps/wifi_list/build/wifi_list.bin \ 0x7A0000 apps/calculator/build/calculator.bin \