Search found 573 matches

by boarchuz
Thu Jun 13, 2024 11:15 am
Forum: General Discussion
Topic: Enable watchdog for bootloader?
Replies: 3
Views: 478

Re: Enable watchdog for bootloader?

That would be really inconvenient if the ESP32 restarted after 9 seconds in download mode! That wouldn't be enough time to even flash most binaries. Fortunately (or unfortunately for you) the ROM bootloader disables the watchdog for download mode. See if strong external pullups can ensure correct le...
by boarchuz
Mon Jun 03, 2024 4:43 pm
Forum: General Discussion
Topic: ESP32 crash when sending large data through shared uart.
Replies: 4
Views: 601

Re: ESP32 crash when sending large data through shared uart.

EXCVADDR (which I understand to be the address resulting in LoadProhibited) is 0x8, which is an invalid address but your NULL checks will have no effect.
by boarchuz
Fri May 24, 2024 11:44 am
Forum: ESP-IDF
Topic: Dual core bootloader on a single core chip?
Replies: 3
Views: 604

Re: Dual core bootloader on a single core chip?

A quick search for "CONFIG_FREERTOS_UNICORE" in bootloader_support reveals a lot of initialisation dependent on this, many of them calling into ROM functions. I'd expect to find something like an "assert(chip_efuse_is_dual_core());" somewhere too if I looked hard enough. So it's definitely not offic...
by boarchuz
Thu May 23, 2024 10:31 am
Forum: General Discussion
Topic: ESP32S2 Attempted hibernate, switching power domains off causes crash
Replies: 2
Views: 1606

Re: ESP32S2 Attempted hibernate, switching power domains off causes crash

ESP-IDF bug, set it to ON to increment refs first, then you can follow it with OFF.
by boarchuz
Fri May 17, 2024 1:21 am
Forum: Hardware
Topic: ESP32-PICO-V3 Pin28 SD2/IO9 appears to have pull-up
Replies: 4
Views: 753

Re: ESP32-PICO-V3 Pin28 SD2/IO9 appears to have pull-up

Pullup is enabled by default on this pin. See datasheet appendix 4 "IO MUX". These are typically around 40-50k iirc.
by boarchuz
Sun Apr 28, 2024 2:29 am
Forum: ESP-IDF
Topic: Using SDMMC in custom bootloader (ESP32-WROOM)
Replies: 3
Views: 835

Re: Using SDMMC in custom bootloader (ESP32-WROOM)

It sounds like you'll have plenty of flash available for 2 app partitions and that will definitely be the easier and more reliable approach. If the only motivation for updating via the bootloader was reducing the flash footprint of app partitions then this is the way to go. I hope I haven't talked y...
by boarchuz
Sat Apr 27, 2024 4:25 pm
Forum: ESP-IDF
Topic: Using SDMMC in custom bootloader (ESP32-WROOM)
Replies: 3
Views: 835

Re: Using SDMMC in custom bootloader (ESP32-WROOM)

Either implement a basic bootloader SDMMC component from scratch by studying the SDMMC component and TRM, or copy the existing SDMMC component to bootloader_components and go through it replacing all incompatible dependencies (eg. any FreeRTOS stuff, GPIO functions from the driver component, etc) wi...
by boarchuz
Fri Apr 12, 2024 7:25 am
Forum: ESP-IDF
Topic: FreeRTOS Task causes TWDT triggered
Replies: 14
Views: 2642

Re: FreeRTOS Task causes TWDT triggered

Try increasing the stack size. 2048 is on the low side.
by boarchuz
Thu Apr 11, 2024 1:01 pm
Forum: ESP-IDF
Topic: Bootloader: Selecting app based on GPIO input
Replies: 2
Views: 473

Re: Bootloader: Selecting app based on GPIO input

Now that we have bootloader_components, I think you could wrap bootloader_utility_get_selected_boot_partition for a fairly simple and clean solution. eg. (untested): project_dir/bootloader_components/bootloader_select/bootloader_select.c: #include "soc/gpio_periph.h" #include "soc/gpio_struct.h" #in...
by boarchuz
Thu Apr 11, 2024 12:58 am
Forum: General Discussion
Topic: Cache/load interupt call to make first execution fast
Replies: 2
Views: 495

Re: Cache/load interupt call to make first execution fast

You're better off ensuring everything your callback needs is in IRAM. Warming up the cache seems very fragile, at best.

That means ensuring pcnt_get_event_status and digitalWrite, as well as any functions they depend on, are in IRAM too. This might be tricky to alter in an Arduino environment.