Skip to content

Load Access Fault running examples in ESP32-P4 (AIS-2168) #266

@deodatomatheus

Description

@deodatomatheus

Checklist

  • Checked the issue tracker for similar issues to ensure this is not a duplicate
  • Read the documentation to confirm the issue is not addressed there and your configuration is set correctly
  • Tested with the latest version to ensure the issue hasn't been fixed

How often does this bug occurs?

always

Expected behavior

When running the yolo11_detect example from the espressif/esp-dl component library (v3.1.5) on an ESP32-P4 target, the application should successfully initialize the COCODetect object, load the YOLOv11 model from flash/PSRAM, perform inference on the sample image, and print the detection results (bounding boxes and class labels) to the serial monitor without crashing.

Actual behavior (suspected bug)

The application crashes during the model loading phase with a Guru Meditation Error. The specific error is a Load access fault, indicating that the CPU tried to read data from an invalid or protected memory address.

The root cause appears to be a failure in memory allocation during model initialization, possibly due to an incompatibility between the ESP-DL v3.1.5 component and the ESP32-P4 target's memory management or architecture.

Error logs or terminal output

ESP-ROM:esp32p4-eco2-20240710
Build:Jul 10 2024
rst:0x1 (POWERON),boot:0x30f (SPI_FAST_FLASH_BOOT)
SPI mode:DIO, clock div:1
load:0x4ff33ce0,len:0x1740
load:0x4ff2abd0,len:0xf3c
load:0x4ff2cbd0,len:0x3408
entry 0x4ff2abda
I (25) boot: ESP-IDF v5.4.2 2nd stage bootloader
I (26) boot: compile time Oct 15 2025 11:33:52
I (26) boot: Multicore bootloader
I (27) boot: chip revision: v1.0
I (29) boot: efuse block revision: v0.3
I (32) qio_mode: Enabling default flash chip QIO
I (37) boot.esp32p4: SPI Speed      : 80MHz
I (40) boot.esp32p4: SPI Mode       : QIO
I (44) boot.esp32p4: SPI Flash Size : 16MB
I (48) boot: Enabling RNG early entropy source...
I (53) boot: Partition Table:
I (55) boot: ## Label            Usage          Type ST Offset   Length
I (61) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (68) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (74) boot:  2 factory          factory app      00 00 00010000 007d0000
I (82) boot: End of partition table
I (84) esp_image: segment 0: paddr=00010020 vaddr=400f0020 size=30d704h (3200772) map
I (581) esp_image: segment 1: paddr=0031d72c vaddr=30100000 size=00068h (   104) load
I (583) esp_image: segment 2: paddr=0031d79c vaddr=4ff00000 size=0287ch ( 10364) load
I (588) esp_image: segment 3: paddr=00320020 vaddr=40000020 size=e36b0h (931504) map
I (736) esp_image: segment 4: paddr=004036d8 vaddr=4ff0287c size=0dfa0h ( 57248) load
I (748) esp_image: segment 5: paddr=00411680 vaddr=4ff10880 size=0348ch ( 13452) load
I (756) boot: Loaded app from partition at offset 0x10000
I (756) boot: Disabling RNG early entropy source...
I (766) hex_psram: vendor id    : 0x0d (AP)
I (766) hex_psram: Latency      : 0x01 (Fixed)
I (766) hex_psram: DriveStr.    : 0x00 (25 Ohm)
I (767) hex_psram: dev id       : 0x03 (generation 4)
I (772) hex_psram: density      : 0x07 (256 Mbit)
I (776) hex_psram: good-die     : 0x06 (Pass)
I (780) hex_psram: SRF          : 0x02 (Slow Refresh)
I (785) hex_psram: BurstType    : 0x00 ( Wrap)
I (789) hex_psram: BurstLen     : 0x03 (2048 Byte)
I (794) hex_psram: BitMode      : 0x01 (X16 Mode)
I (798) hex_psram: Readlatency  : 0x04 (14 cycles@Fixed)
I (803) hex_psram: DriveStrength: 0x00 (1/1)
I (807) MSPI DQS: tuning success, best phase id is 0
I (980) MSPI DQS: tuning success, best delayline id is 17
I (980) esp_psram: Found 32MB PSRAM device
I (980) esp_psram: Speed: 200MHz
I (981) hex_psram: psram CS IO is dedicated
I (984) cpu_start: Multicore app
I (1455) esp_psram: SPI SRAM memory test OK
I (1464) cpu_start: Pro cpu start user code
I (1464) cpu_start: cpu freq: 360000000 Hz
I (1464) app_init: Application information:
I (1464) app_init: Project name:     yolo11_detect
I (1469) app_init: App version:      1
I (1472) app_init: Compile time:     Oct 15 2025 11:33:48
I (1477) app_init: ELF file SHA256:  312662dac...
I (1482) app_init: ESP-IDF:          v5.4.2
I (1486) efuse_init: Min chip rev:     v0.1
I (1490) efuse_init: Max chip rev:     v1.99 
I (1494) efuse_init: Chip rev:         v1.0
I (1498) heap_init: Initializing. RAM available for dynamic allocation:
I (1504) heap_init: At 4FF15870 len 00025750 (149 KiB): RAM
I (1509) heap_init: At 4FF3AFC0 len 00004BF0 (18 KiB): RAM
I (1515) heap_init: At 4FF40000 len 00040000 (256 KiB): RAM
I (1520) heap_init: At 30100068 len 00001F98 (7 KiB): TCM
I (1525) esp_psram: Adding pool of 32768K of PSRAM memory to heap allocator
I (1532) spi_flash: detected chip: generic
I (1535) spi_flash: flash io: qio
I (1539) main_task: Started on CPU0
I (1579) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations
I (1579) main_task: Calling app_main()
I (1679) FbsLoader: m_fbs_buf EDL2
W (1679) FbsLoader: There is only one model in the flatbuffers, ignore the input model name!
Guru Meditation Error: Core  0 panic'ed (Load access fault). Exception was unhandled.

Core  0 register dump:
MEPC    : 0x4005cbe8  RA      : 0x4003459a  SP      : 0x4ff178b0  GP      : 0x4ff11080  
--- 0x4005cbe8: dl_esp32p4_memcpy at /home/deo/Desktop/yolo11_detect/managed_components/espressif__esp-dl/dl/tool/isa/esp32p4/dl_esp32p4_memcpy.S:42
--- 0x4003459a: dl::TensorBase::TensorBase(std::vector<int, std::allocator<int> >, void const*, int, dl::dtype_t, bool, unsigned long) at /home/deo/Desktop/yolo11_detect/managed_components/espressif__esp-dl/dl/tensor/src/dl_tensor_base.cpp:159
TP      : 0x4ff17cb0  T0      : 0x322e6c65  T1      : 0x4ff0f640  T2      : 0x646f6d2f  
--- 0x4ff0f640: __assert_func at /home/deo/esp/esp-idf/components/newlib/assert.c:33
S0/FP   : 0x4ff34cc8  S1      : 0x00000001  A0      : 0x00000000  A1      : 0x402cb610  
A2      : 0xa961a700  A3      : 0x00001000  A4      : 0x0000000f  A5      : 0x00000000  
A6      : 0x00000001  A7      : 0x403fa994  S2      : 0x00001000  S3      : 0x00000004  
S4      : 0x402cb610  S5      : 0x00001000  S6      : 0x00000001  S7      : 0xfffffffe  
S8      : 0x4ff34cc8  S9      : 0x00000010  S10     : 0x4ff34c9c  S11     : 0x00000012  
T3      : 0x4ff34c9c  T4      : 0x2e337663  T5      : 0x2f322e33  T6      : 0x00000000  
MSTATUS : 0x80019880  MTVEC   : 0x4ff00003  MCAUSE  : 0x00000005  MTVAL   : 0x00000000  
--- 0x4ff00003: _vector_table at ??:?
MHARTID : 0x00000000  

Stack memory:
4ff178b0: 0x00000003 0x4ff15000 0x4ff15c20 0x4ff0135e 0x4ff21c60 0x4ff34d04 0x4ff34d14 0x4ff34d14
--- 0x4ff0135e: heap_caps_aligned_alloc_base at /home/deo/esp/esp-idf/components/heap/heap_caps_base.c:160
4ff178d0: 0x4ff21c90 0x4ff34cb8 0x4ff17938 0x00000004 0x00001000 0x00000010 0x4ff34cc8 0x00000003
4ff178f0: 0x402cb610 0x4ff34cb8 0x4ff17938 0x400d1584 0x00001000 0x4ff21c60 0x4ff34ca4 0x400c975e
--- 0x400d1584: operator new(unsigned int) at /builds/idf/crosstool-NG/.build/riscv32-esp-elf/src/gcc/libstdc++-v3/libsupc++/new_op.cc:50
--- 0x400c975e: std::_Vector_base<int, std::allocator<int> >::~_Vector_base() at /home/xiewei/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20240530/riscv32-esp-elf/riscv32-esp-elf/include/c++/13.2.0/bits/stl_vector.h:366
--- (inlined by) std::vector<int, std::allocator<int> >::~vector() at /home/xiewei/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20240530/riscv32-esp-elf/riscv32-esp-elf/include/c++/13.2.0/bits/stl_vector.h:735
--- (inlined by) fbs::FbsModel::get_operation_parameter(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned long) at /home/xiewei/Develop/Espressif/dl_gitlab/esp-dl/fbs_loader/src/fbs_model.cpp:650
4ff17910: 0x00000000 0x00001800 0x4ff34ca4 0x4ff34cb4 0x4ff34cb4 0x4ff34cb8 0x4ff34cbc 0x4ff34cbc
4ff17930: 0x4ff34c74 0x00000013 0x00000013 0x00000006 0x4ff179bc 0x4ff21c48 0x4ff34c8c 0x00000013
4ff17950: 0x00000013 0x4ff21c48 0x4ff34c04 0x40029d3c 0x4ff34c8c 0x00000013 0x00000013 0x00000001
--- 0x40029d3c: std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_insert_node(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >*) at /home/deo/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/riscv32-esp-elf/include/c++/14.2.0/bits/stl_tree.h:2383
--- (inlined by) std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_Auto_node::_M_insert(std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*>) at /home/deo/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/riscv32-esp-elf/include/c++/14.2.0/bits/stl_tree.h:1653
--- (inlined by) std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_emplace_hint_unique<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&>(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&) at /home/deo/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/riscv32-esp-elf/include/c++/14.2.0/bits/stl_tree.h:2461
4ff17970: 0x4ff17ad0 0x00000000 0x4ff34c8c 0x00000013 0x00000013 0x00000013 0x4ff15870 0x4ff0dbe0
--- 0x4ff0dbe0: multi_heap_malloc_impl at /home/deo/esp/esp-idf/components/heap/multi_heap.c:220
4ff17990: 0x4ff34c8c 0x00000013 0x00000013 0x4ff0135e 0x00000000 0x00001800 0x4ff34c8c 0x4ff34c9c
--- 0x4ff0135e: heap_caps_aligned_alloc_base at /home/deo/esp/esp-idf/components/heap/heap_caps_base.c:160
4ff179b0: 0x4ff34c9c 0x4ff21c1c 0x00000001 0x00000018 0x4ff21c60 0x4ff17ae8 0x4ff17ab8 0x00000001
4ff179d0: 0x4ff17ad0 0x4ff21c1c 0x00000001 0x00000018 0x0000000f 0x480a0da8 0x4ff20f74 0x40026580
--- 0x40026580: dl::Model::load(fbs::FbsModel*) at /home/deo/Desktop/yolo11_detect/managed_components/espressif__esp-dl/dl/model/src/dl_model_base.cpp:170
4ff179f0: 0x00000000 0x322e6c65 0x00000000 0x4ff34acc 0x00000000 0x00000000 0x5f515000 0x69726156
4ff17a10: 0x656c6261 0x4ff34ba0 0x4ff34be8 0x4ff34c00 0x4ff34b50 0x4ff34b68 0x4ff34b68 0x4ff32d80
4ff17a30: 0x4ff34538 0x4ff34580 0x4ff34acc 0x00000012 0x00000012 0x00000001 0x00000001 0x401037e0
4ff17a50: 0x4ff17a58 0x00000004 0x766e6f43 0x00000000 0x40140010 0x4ff15000 0x4ff34ae4 0x00000012
4ff17a70: 0x00000012 0x4ff15000 0x40140010 0x00000000 0x4ff34ae4 0x00000012 0x00000012 0x401037e0
4ff17a90: 0x00000001 0x00000000 0x4ff34ae4 0x00000012 0x00000012 0x4ff18d6c 0x4ff18d20 0x4ff07e32
--- 0x4ff07e32: xQueueGenericSend at /home/deo/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1168
4ff17ab0: 0x4ff34c44 0x00000013 0x00000013 0x00007365 0x00000000 0x002b9e70 0x4ff34c5c 0x00000012
4ff17ad0: 0x00000012 0x40106a54 0x00000000 0x00000000 0x4ff34c44 0x00000013 0x00000013 0x00000000
4ff17af0: 0x00000000 0x00000001 0x4ff17b00 0x00000006 0x67616d69 0x40007365 0x00000002 0x4ff0f532
--- 0x40007365: pthread_mutex_unlock at /home/deo/esp/esp-idf/components/pthread/pthread.c:797
--- 0x4ff0f532: esp_log_write at /home/deo/esp/esp-idf/components/log/src/os/log_write.c:46
4ff17b10: 0x4ff21c60 0x4ff15000 0x4ff15000 0x4ff17b3c 0x00000001 0x00000003 0x4ff17b30 0x00000000
4ff17b30: 0x00000000 0x6172675f 0x00006870 0x0000068f 0x401063a0 0x00000003 0x4ff21220 0x00000000
4ff17b50: 0x00000000 0x4ff15000 0x4ff15000 0x00000000 0x00000000 0x00000000 0x00000001 0x00000000
4ff17b70: 0x401037e0 0x4ff21220 0x4ff20f74 0x4002906e 0x401037e0 0x00000000 0x00000000 0x4ff20f50
--- 0x4002906e: dl::Model::Model(char const*, char const*, fbs::model_location_type_t, int, dl::memory_manager_t, unsigned char const*, bool) at /home/deo/Desktop/yolo11_detect/managed_components/espressif__esp-dl/dl/model/src/dl_model_base.cpp:62
4ff17b90: 0x00000000 0x00000000 0x00000000 0x00000000 0x401037e0 0x4ff20f60 0x4ff20f74 0x4000bdd6
--- 0x4000bdd6: coco_detect::Yolo11n::Yolo11n(char const*) at /home/deo/Desktop/yolo11_detect/managed_components/espressif__coco_detect/coco_detect.cpp:39
4ff17bb0: 0x00000003 0x00001800 0x00000010 0x00000004 0x4ff20f50 0x00000000 0x00000000 0x00000000
4ff17bd0: 0x00000000 0x00000010 0x00000010 0x4ff01074 0x00000000 0x00000003 0x00000010 0x00000000
--- 0x4ff01074: heap_caps_malloc_default at /home/deo/esp/esp-idf/components/heap/heap_caps.c:118
4ff17bf0: 0x00000000 0x4ff20f60 0x4ff20f50 0x4000bf7e 0x00000000 0x00000003 0x40102000 0x4000bc00
--- 0x4000bf7e: COCODetect::COCODetect(COCODetect::model_type_t) at /home/deo/Desktop/yolo11_detect/managed_components/espressif__coco_detect/coco_detect.cpp:71
--- 0x4000bc00: dl::detect::DetectWrapper::run[abi:cxx11](dl::image::img_t const&) at /home/deo/Desktop/yolo11_detect/managed_components/espressif__esp-dl/vision/detect/dl_detect_base.hpp:21
--- (inlined by) app_main at /home/deo/Desktop/yolo11_detect/main/app_main.cpp:19
4ff17c10: 0x00000000 0x00000000 0x00000000 0x00000000 0x4ff17c5c 0x40101ff0 0x00000003 0x4011061e
4ff17c30: 0x0001f96c 0x48000ac0 0x021c0195 0x00000000 0x00000000 0x00000003 0x40102000 0x00000000
4ff17c50: 0x00000000 0x00000000 0x40102000 0x0000062b 0x40101f3c 0x00000010 0x40102000 0x400e1de0
--- 0x400e1de0: main_task at /home/deo/esp/esp-idf/components/freertos/app_startup.c:209
4ff17c70: 0x00000000 0x00001388 0x00000003 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000
4ff17c90: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5

Steps to reproduce the behavior

Just flash the example:
https://components.espressif.com/components/espressif/esp-dl/versions/3.1.5/examples/yolo11_detect?language=en

Project release version

latest

System architecture

Intel/AMD 64-bit (modern PC, older Mac)

Operating system

Linux

Operating system version

Ubuntu 24.04

Shell

Bash

Additional context

I am using a ESP32-P4 P4NRW32 devkit module from Waveshare

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions