-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESP32S3: Zephyr freezes during OTA Update over UDP and BLE #76325
Comments
Hi @epc-ake! We appreciate you submitting your first issue for our open-source project. 🌟 Even though I'm a bot, I can assure you that the whole community is genuinely grateful for your time and effort. 🤖💙 |
if I set |
It also freezes during BLE update |
Same issue over serial as well. |
@sylvioalves can you give us an update on this? In our last conversation on discord you mentioned that you've evaluated a fix for this. |
Hi, the CPU freezes during which step of OTA update (downloading firmware, erasing flash, writing flash, ...) ? Could you debug this. Because I have a similar issue on an homemade OTA update tool on esp32s3 during the flash erase step. CPU raises FATAL EXCEPTION. |
I didn't work on this, so no progress here unfortunately. |
ESP32-S3 initialization code should apply the errata after cache initialization. This fixes it making sure data and cache instruction are properly handled and let following calls to work as needed. This also update hal_espressif to force gcc to treat register bitfield structs declared as volatile to ensure writes on 32 bit peripheral registers. Fixes zephyrproject-rtos#71397 Fixes zephyrproject-rtos#76325 Signed-off-by: Sylvio Alves <[email protected]>
ESP32-S3 initialization code should apply the errata after cache initialization. This fixes it making sure data and cache instruction are properly handled and let following calls to work as needed. This also update hal_espressif to force gcc to treat register bitfield structs declared as volatile to ensure writes on 32 bit peripheral registers. Fixes zephyrproject-rtos#71397 Fixes zephyrproject-rtos#76325 Signed-off-by: Sylvio Alves <[email protected]>
@epc-ake are you, by any chance, running the second image on the APPCPU/cpu1 ?
|
Hmm interesting. I didn't notice that. |
ESP32-S3 initialization code should apply the errata after cache initialization. This fixes it making sure data and cache instruction are properly handled and let following calls to work as needed. This also update hal_espressif to force gcc to treat register bitfield structs declared as volatile to ensure writes on 32 bit peripheral registers. Fixes zephyrproject-rtos#71397 Fixes zephyrproject-rtos#76325 Signed-off-by: Sylvio Alves <[email protected]>
Discussed in #76302
Originally posted by epc-ake July 25, 2024
Has anyone managed to use
mcumgr
overudp
on aesp32s3
?I'm developing on an
esp32s3_devkitm
and want to enable OTA firmware updates usingmcumgr and mcuboot over a UDP
interface. To experiment with this, I modified theprj.conf
file of thesamples/net/wifi example
to enablemcuboot
andmcumgr
. See the attached file for details. prj.confAfter flashing the firmware and connecting to a Wi-Fi network, I can retrieve image information using the
go-app
andAuTerm
. For example, with thego-app
:mcumgr --conntype udp --connstring=[x.x.0.60]:1337 image list Images: image=0 slot=0 version: 0.0.0 bootable: true flags: active confirmed hash: 60e5eb52f59451a3db2ec9e978b13c0c8485577dd6787684e216069341bdf80b Split status: N/A (0)
However, when I try to upload an image, the firmware becomes unresponsive and freezes:
./mcumgr --conntype udp --connstring=[x.x.0.60]:1337 image upload zephyr.signed.bin # starts freezing...
Output zephyr:
I ran the debugger in parallel, and when I interrupted GDB (Ctrl+C) after the firmware started freezing, it pointed to _DoubleExceptionVector.
Output GDB:
Uploading overserial
works without any issues, so it seems to be specifically related to the UDP interface.Does anyone have any ideas on how to debug this?
The text was updated successfully, but these errors were encountered: