Saving core dump to flash on NRF54L15

Hello everyone,

I need to save a core dump on my NRF54L15 internal flash in order to debug an issue. I've been following the "Debugging and Troubleshooting section" of the intermediate academy course (https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-2-debugging/topic/build-errors-and-fatal-errors/).
Beside the fact that most configuration options listed as necessary are undefined an result in a failed build (see CONFIG_BOOT_DELAY_S, CONFIG_BOOT_DELAY_MS, CONFIG_BOOT_DELAY_SLEEPY_TICKS, CONFIG_BOOT_DELAY_SLEEPY_TIME and CONFIG_COREDUMP_FLASH_OFFSET), I cannot even enable the FLASH component.

Adding CONFIG_FLASH=y to my prj.conf causes an error because the symbol DT_N_S_soc_S_peripheral_50000000_S_vpr_4c000_IRQ_IDX_0_VAL_priority is undefined.
I am not sure of the reason behind it, but I did notice that instead of a flash0 node the nrf54l15 dts files list a cpuapp_rram node (see nrf54l15dk_nrf54l15_cpuapp.dts). Should I define the flash controller differently? What's exactly the difference between using cpuapp_rram and something like flash0? Does the NRF54L15 require a particular procedure to work with its internal storage?

 

  • Hello,
    Thank you for the assistance. The sample doesn't build, failing with the following error:

    $ west build --pristine -p auto -b nrf54l15dk/nrf54l15/cpuapp
    -- west build: generating a build system
    Loading Zephyr module(s) (Zephyr base): sysbuild_default
    -- Found Python3: /home/maldus/Local/ncs/toolchains/7cbc0036f4/usr/local/bin/python3.12 (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter 
    -- Cache files will be written to: /home/maldus/.cache/zephyr
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
    Parsing /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/share/sysbuild/Kconfig
    Loaded configuration '/tmp/hello_world/build/_sysbuild/empty.conf'
    Merged configuration '/tmp/hello_world/build/_sysbuild/empty.conf'
    Configuration saved to '/tmp/hello_world/build/zephyr/.config'
    Kconfig header saved to '/tmp/hello_world/build/_sysbuild/autoconf.h'
    -- 
       *********************************
       * Running CMake for hello_world *
       *********************************
    
    Loading Zephyr default modules (Zephyr base).
    -- Application: /tmp/hello_world
    -- CMake version: 3.21.0
    -- Found Python3: /home/maldus/Local/ncs/toolchains/7cbc0036f4/usr/local/bin/python (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter 
    -- Cache files will be written to: /home/maldus/.cache/zephyr
    -- Zephyr version: 4.0.99 (/home/maldus/Source/sdk-nrf/v3.0.0/zephyr)
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
    -- Found host-tools: zephyr 0.17.0 (/home/maldus/Local/ncs/toolchains/7cbc0036f4/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.17.0 (/home/maldus/Local/ncs/toolchains/7cbc0036f4/opt/zephyr-sdk)
    -- Found Dtc: /home/maldus/Local/ncs/toolchains/7cbc0036f4/usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6") 
    -- Found BOARD.dts: /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/boards/nordic/nrf54l15dk/nrf54l15dk_nrf54l15_cpuapp.dts
    -- Found devicetree overlay: /tmp/hello_world/boards/nrf54l15dk_nrf54l15_cpuapp.overlay
    -- Generated zephyr.dts: /tmp/hello_world/build/hello_world/zephyr/zephyr.dts
    -- Generated pickled edt: /tmp/hello_world/build/hello_world/zephyr/edt.pickle
    -- Generated zephyr.dts: /tmp/hello_world/build/hello_world/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: /tmp/hello_world/build/hello_world/zephyr/include/generated/zephyr/devicetree_generated.h
    -- Including generated dts.cmake file: /tmp/hello_world/build/hello_world/zephyr/dts.cmake
    
    /tmp/hello_world/prj.conf:11: warning: attempt to assign the value 'y' to the undefined symbol DEBUG_COREDUMP_BACKEND_NRF_FLASH_PARTITION
    
    /tmp/hello_world/prj.conf:14: warning: attempt to assign the value 'y' to the undefined symbol DEBUG_COREDUMP_THREAD_STACK_TOP
    
    /tmp/hello_world/prj.conf:15: warning: attempt to assign the value '256' to the undefined symbol DEBUG_COREDUMP_THREAD_STACK_TOP_LIMIT
    Parsing /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/Kconfig
    Loaded configuration '/home/maldus/Source/sdk-nrf/v3.0.0/zephyr/boards/nordic/nrf54l15dk/nrf54l15dk_nrf54l15_cpuapp_defconfig'
    Merged configuration '/tmp/hello_world/prj.conf'
    Merged configuration '/tmp/hello_world/build/hello_world/zephyr/.config.sysbuild'
    
    error: Aborting due to Kconfig warnings
    
    CMake Error at /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/cmake/modules/kconfig.cmake:396 (message):
      command failed with return code: 1
    Call Stack (most recent call first):
      /home/maldus/Source/sdk-nrf/v3.0.0/nrf/cmake/modules/kconfig.cmake:36 (include)
      /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/cmake/modules/zephyr_default.cmake:133 (include)
      /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
      /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
      CMakeLists.txt:5 (find_package)
    
    
    -- Configuring incomplete, errors occurred!
    CMake Error at cmake/modules/sysbuild_extensions.cmake:514 (message):
      CMake configure failed for Zephyr project: hello_world
    
      Location: /tmp/hello_world
    Call Stack (most recent call first):
      cmake/modules/sysbuild_images.cmake:43 (ExternalZephyrProject_Cmake)
      cmake/modules/sysbuild_default.cmake:21 (include)
      /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:75 (include)
      /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
      /home/maldus/Source/sdk-nrf/v3.0.0/zephyr/share/sysbuild-package/cmake/SysbuildConfig.cmake:8 (include)
      template/CMakeLists.txt:10 (find_package)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/tmp/hello_world/build/CMakeFiles/CMakeOutput.log".
    FATAL ERROR: command exited with status 1: /home/maldus/Local/ncs/toolchains/7cbc0036f4/usr/local/bin/cmake -DWEST_PYTHON=/home/maldus/Local/ncs/toolchains/7cbc0036f4/usr/local/bin/python3.12 -B/tmp/hello_world/build -GNinja -DBOARD=nrf54l
    15dk/nrf54l15/cpuapp -S/home/maldus/Source/sdk-nrf/v3.0.0/zephyr/share/sysbuild -DAPP_DIR:PATH=/tmp/hello_world

  • Please let me know which SDK version you are on. From the release notes linked above you can see this setting was introduced in SDK v3.1.0

  • OK, please upgrade to v3.1.1 if possible so you can use the new coredump NV backend mentioned in this relase notes. If using the other flash backend you need to have CONFIG_ASSERT disabled since the RRAM drivers are not meant to run in an interrupt context.

Related