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?

 

Parents
  • 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.

  • I upgraded to v3.1.1. The course I linked however displays a version range between 2.7.0 and 3.1.0, is it a documentation issue?

    With the new version your example compiles but my own project still doesn't. It complains about a missing node that I cannot recognize:

    [278/688] Building C object zephyr/drivers/mspi/CMakeFiles/drivers__mspi.dir/home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c.obj
    FAILED: zephyr/drivers/mspi/CMakeFiles/drivers__mspi.dir/home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c.obj 
    ccache /home/maldus/Local/ncs/toolchains/b2ecd2435d/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc -DKERNEL -DK_HEAP_MEM_POOL_SIZE=0 -DLV_CONF_INCLUDE_SIMPLE=1 -DLV_CONF_PATH=\"/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/modules/lvgl
    /include/lv_conf.h\" -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DMBEDTLS_PSA_CRYPTO_CONFIG_FILE=\"nrf-psa-crypto-config.h\" -DMBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE=\"nrf-psa-crypto-user-config.h\" -DNRF54L15_XXAA -DNRF_APPLICATION -DNRF_CONFIG_
    CPU_FREQ_MHZ=128 -DNRF_SQSPI_ENABLED=1 -DNRF_SQSPI_MAX_NUM_DATA_LINES=4 -DNRF_SQSPI_SP_FIRMWARE_ADDR=537116864 -DUSE_PARTITION_MANAGER=1 -D_ANSI_SOURCE -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR_SUPERVISOR__ -D__ZEPHYR__=1 -
    I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/softperipheral/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/softperipheral/sQSPI/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/softperipheral/sQSPI/include/nrf54l15 -I/home/maldus/
    Source/sdk-nrf/v3.1.1/nrf/drivers/mpsl/clock_control -I/home/maldus/Projects/Treedom/dive-computer/build/dive-computer/zephyr/include/generated/zephyr -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include -I/home/maldus/Projects/Treedom/dive
    -computer/build/dive-computer/zephyr/include/generated -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/soc/nordic -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/lib/libc/newlib/include -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/soc/nordic/nrf54l
    /. -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/soc/nordic/common/. -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/subsys/bluetooth -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/lib/multithreading_lo
    ck/. -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/subsys/bluetooth/controller/. -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/drivers/flash -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/tests/include -I/home/maldus/Source/sdk-nrf/v3.1.1/modules/hal/c
    msis/CMSIS/Core/Include -I/home/maldus/Source/sdk-nrf/v3.1.1/modules/hal/cmsis_6/CMSIS/Core/Include -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/modules/cmsis_6/. -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/modules/hal_nordic/. -I/home/maldus/
    Source/sdk-nrf/v3.1.1/modules/hal/nordic/nrfx -I/home/maldus/Source/sdk-nrf/v3.1.1/modules/hal/nordic/nrfx/drivers/include -I/home/maldus/Source/sdk-nrf/v3.1.1/modules/hal/nordic/nrfx/mdk -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/modules
    /hal_nordic/nrfx/. -I/home/maldus/Source/sdk-nrf/v3.1.1/modules/lib/gui/lvgl/src -I/home/maldus/Source/sdk-nrf/v3.1.1/zephyr/modules/lvgl/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/softdevice_controller/include -I/home/maldus/Sou
    rce/sdk-nrf/v3.1.1/nrfxlib/mpsl/fem/common/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/mpsl/fem/nrf21540_gpio/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/mpsl/fem/nrf21540_gpio_spi/include -I/home/maldus/Source/sdk-nrf/v3
    .1.1/nrfxlib/mpsl/fem/nrf2220/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/mpsl/fem/nrf2240/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/mpsl/fem/nrf22xx/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/mpsl/fem/simple_
    gpio/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/mpsl/fem/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/mpsl/fem/include/protocol -I/home/maldus/Source/sdk-nrf/v3.1.1/nrfxlib/mpsl/include -I/home/maldus/Source/sdk-nrf/v3.1.
    1/nrfxlib/mpsl/include/protocol -I/home/maldus/Projects/Treedom/dive-computer/build/dive-computer/generated/library_nrf_security_psa -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/subsys/nrf_security/include -I/home/maldus/Source/sdk-nrf/v3.1.1/
    modules/crypto/oberon-psa-crypto/oberon/drivers -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/subsys/nrf_security/src/threading/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/subsys/nrf_security/src/utils -I/home/maldus/Source/sdk-nrf/v3.1.1/
    nrf/subsys/nrf_security/src/drivers/cracen/common/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/sxsymcrypt/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/si
    lexpk/target/baremetal_ba414e_with_ik -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/silexpk/include -I/home/maldus/Source/sdk-nrf/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/cracenpsa/include -I/home
    /maldus/Source/sdk-nrf/v3.1.1/modules/crypto/oberon-psa-crypto/include -I/home/maldus/Source/sdk-nrf/v3.1.1/modules/crypto/oberon-psa-crypto/library -I/home/maldus/Source/sdk-nrf/v3.1.1/modules/crypto/mbedtls/library -I/home/maldus/Source/
    sdk-nrf/v3.1.1/modules/crypto/mbedtls/include -I/home/maldus/Source/sdk-nrf/v3.1.1/modules/crypto/mbedtls/include/library -isystem /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/lib/libc/common/include -Wshadow -fno-strict-aliasing -O2 -imacros
     /home/maldus/Projects/Treedom/dive-computer/build/dive-computer/zephyr/include/generated/zephyr/autoconf.h -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -mfp16-format=ieee --sysroot=/home/maldus/
    Local/ncs/toolchains/b2ecd2435d/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi -imacros /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wdouble-pr
    omotion -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-pic -fno-pie -fno-asynchronous-unwind-tables -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop -fmacro-prefi
    x-map=/home/maldus/Projects/Treedom/dive-computer=CMAKE_SOURCE_DIR -fmacro-prefix-map=/home/maldus/Source/sdk-nrf/v3.1.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=/home/maldus/Source/sdk-nrf/v3.1.1=WEST_TOPDIR -ffunction-sections -fdata-sectio
    ns -specs=nano.specs -std=c99 -MD -MT zephyr/drivers/mspi/CMakeFiles/drivers__mspi.dir/home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c.obj -MF zephyr/drivers/mspi/CMakeFiles/drivers__mspi.dir/home/maldus/Source/sdk-nrf/v3.1
    .1/nrf/drivers/mspi/mspi_sqspi.c.obj.d -o zephyr/drivers/mspi/CMakeFiles/drivers__mspi.dir/home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c.obj -c /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c
    In file included from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/toolchain.h:52,
                     from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/sys/__assert.h:11,
                     from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/drivers/mspi.h:19,
                     from /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:9:
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c: In function 'dev_init':
    /home/maldus/Projects/Treedom/dive-computer/build/dive-computer/zephyr/include/generated/zephyr/devicetree_generated.h:16548:48: error: 'DT_N_S_soc_S_peripheral_50000000_S_vpr_4c000_IRQ_IDX_0_VAL_priority' undeclared (first use in this fun
    ction); did you mean 'DT_N_S_soc_S_peripheral_50000000_S_spi_4a000_IRQ_IDX_0_VAL_priority'?
    16548 | #define DT_N_NODELABEL_cpuflpr_vpr             DT_N_S_soc_S_peripheral_50000000_S_vpr_4c000
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/toolchain/gcc.h:87:52: note: in definition of macro 'BUILD_ASSERT'
       87 | #define BUILD_ASSERT(EXPR, MSG...) _Static_assert((EXPR), "" MSG)
          |                                                    ^~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/arch/arm/irq.h:123:9: note: in expansion of macro '_CHECK_PRIO'
      123 |         _CHECK_PRIO(priority_p, flags_p) \
          |         ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/irq.h:49:9: note: in expansion of macro 'ARCH_IRQ_CONNECT'
       49 |         ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p)
          |         ^~~~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:9: note: in expansion of macro 'IRQ_CONNECT'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |         ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:2679:9: note: in expansion of macro 'DT_CAT5'
     2679 |         DT_CAT5(node_id, _IRQ_IDX_, idx, _VAL_, cell)
          |         ^~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:2706:31: note: in expansion of macro 'DT_IRQ_BY_IDX'
     2706 | #define DT_IRQ(node_id, cell) DT_IRQ_BY_IDX(node_id, 0, cell)
          |                               ^~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:40: note: in expansion of macro 'DT_IRQ'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |                                        ^~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:5269:24: note: in expansion of macro 'DT_N_NODELABEL_cpuflpr_vpr'
     5269 | #define DT_CAT(a1, a2) a1 ## a2
          |                        ^~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:196:29: note: in expansion of macro 'DT_CAT'
      196 | #define DT_NODELABEL(label) DT_CAT(DT_N_NODELABEL_, label)
          |                             ^~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:28:18: note: in expansion of macro 'DT_NODELABEL'
       28 | #define VPR_NODE DT_NODELABEL(cpuflpr_vpr)
          |                  ^~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:47: note: in expansion of macro 'VPR_NODE'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |                                               ^~~~~~~~
    /home/maldus/Projects/Treedom/dive-computer/build/dive-computer/zephyr/include/generated/zephyr/devicetree_generated.h:16548:48: note: each undeclared identifier is reported only once for each function it appears in
    16548 | #define DT_N_NODELABEL_cpuflpr_vpr             DT_N_S_soc_S_peripheral_50000000_S_vpr_4c000
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/toolchain/gcc.h:87:52: note: in definition of macro 'BUILD_ASSERT'
       87 | #define BUILD_ASSERT(EXPR, MSG...) _Static_assert((EXPR), "" MSG)
          |                                                    ^~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/arch/arm/irq.h:123:9: note: in expansion of macro '_CHECK_PRIO'
      123 |         _CHECK_PRIO(priority_p, flags_p) \
          |         ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/irq.h:49:9: note: in expansion of macro 'ARCH_IRQ_CONNECT'
       49 |         ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p)
          |         ^~~~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:9: note: in expansion of macro 'IRQ_CONNECT'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |         ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:2679:9: note: in expansion of macro 'DT_CAT5'
     2679 |         DT_CAT5(node_id, _IRQ_IDX_, idx, _VAL_, cell)
          |         ^~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:2706:31: note: in expansion of macro 'DT_IRQ_BY_IDX'
     2706 | #define DT_IRQ(node_id, cell) DT_IRQ_BY_IDX(node_id, 0, cell)
          |                               ^~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:40: note: in expansion of macro 'DT_IRQ'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |                                        ^~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:5269:24: note: in expansion of macro 'DT_N_NODELABEL_cpuflpr_vpr'
     5269 | #define DT_CAT(a1, a2) a1 ## a2
          |                        ^~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:196:29: note: in expansion of macro 'DT_CAT'
      196 | #define DT_NODELABEL(label) DT_CAT(DT_N_NODELABEL_, label)
          |                             ^~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:28:18: note: in expansion of macro 'DT_NODELABEL'
       28 | #define VPR_NODE DT_NODELABEL(cpuflpr_vpr)
          |                  ^~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:47: note: in expansion of macro 'VPR_NODE'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |                                               ^~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/toolchain/gcc.h:87:51: error: expression in static assertion is not an integer
       87 | #define BUILD_ASSERT(EXPR, MSG...) _Static_assert((EXPR), "" MSG)
          |                                                   ^
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/arch/arm/irq.h:100:9: note: in expansion of macro 'BUILD_ASSERT'
      100 |         BUILD_ASSERT(((flags_p & IRQ_ZERO_LATENCY) && \
          |         ^~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/arch/arm/irq.h:123:9: note: in expansion of macro '_CHECK_PRIO'
      123 |         _CHECK_PRIO(priority_p, flags_p) \
          |         ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/irq.h:49:9: note: in expansion of macro 'ARCH_IRQ_CONNECT'
       49 |         ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p)
          |         ^~~~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:9: note: in expansion of macro 'IRQ_CONNECT'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |         ^~~~~~~~~~~
    In file included from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/arch/arm/irq.h:19,
                     from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/arch/arm/arch.h:24,
                     from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/arch/cpu.h:19,
                     from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/kernel_includes.h:36,
                     from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/kernel.h:17,
                     from /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/drivers/mspi.h:21:
    /home/maldus/Projects/Treedom/dive-computer/build/dive-computer/zephyr/include/generated/zephyr/devicetree_generated.h:16548:48: error: 'DT_N_S_soc_S_peripheral_50000000_S_vpr_4c000_IRQ_IDX_0_VAL_irq' undeclared (first use in this function
    ); did you mean 'DT_N_S_soc_S_peripheral_50000000_S_spi_4a000_IRQ_IDX_0_VAL_irq'?
    16548 | #define DT_N_NODELABEL_cpuflpr_vpr             DT_N_S_soc_S_peripheral_50000000_S_vpr_4c000
          |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/sw_isr_table.h:276:26: note: in definition of macro 'Z_ISR_DECLARE'
      276 |                         {irq, flags, (void *)&func, (const void *)param}
          |                          ^~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/irq.h:49:9: note: in expansion of macro 'ARCH_IRQ_CONNECT'
       49 |         ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p)
          |         ^~~~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:9: note: in expansion of macro 'IRQ_CONNECT'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |         ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/sys/util_internal.h:69:53: note: in expansion of macro '__DEBRACKET'
       69 | #define __GET_ARG2_DEBRACKET(ignore_this, val, ...) __DEBRACKET val
          |                                                     ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/sys/util_internal.h:64:9: note: in expansion of macro '__GET_ARG2_DEBRACKET'
       64 |         __GET_ARG2_DEBRACKET(one_or_two_args _if_code, _else_code)
          |         ^~~~~~~~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/sys/util_internal.h:59:9: note: in expansion of macro '__COND_CODE'
       59 |         __COND_CODE(_XXXX##_flag, _if_1_code, _else_code)
          |         ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/sys/util_macro.h:204:9: note: in expansion of macro 'Z_COND_CODE_1'
      204 |         Z_COND_CODE_1(_flag, _if_1_code, _else_code)
          |         ^~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:2880:9: note: in expansion of macro 'COND_CODE_1'
     2880 |         COND_CODE_1(IS_ENABLED(CONFIG_MULTI_LEVEL_INTERRUPTS),                                     \
          |         ^~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:2679:9: note: in expansion of macro 'DT_CAT5'
     2679 |         DT_CAT5(node_id, _IRQ_IDX_, idx, _VAL_, cell)
          |         ^~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:2882:22: note: in expansion of macro 'DT_IRQ_BY_IDX'
     2882 |                     (DT_IRQ_BY_IDX(node_id, idx, irq)))
          |                      ^~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:2894:26: note: in expansion of macro 'DT_IRQN_BY_IDX'
     2894 | #define DT_IRQN(node_id) DT_IRQN_BY_IDX(node_id, 0)
          |                          ^~~~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:21: note: in expansion of macro 'DT_IRQN'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |                     ^~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:5269:24: note: in expansion of macro 'DT_N_NODELABEL_cpuflpr_vpr'
     5269 | #define DT_CAT(a1, a2) a1 ## a2
          |                        ^~
    /home/maldus/Source/sdk-nrf/v3.1.1/zephyr/include/zephyr/devicetree.h:196:29: note: in expansion of macro 'DT_CAT'
      196 | #define DT_NODELABEL(label) DT_CAT(DT_N_NODELABEL_, label)
          |                             ^~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:28:18: note: in expansion of macro 'DT_NODELABEL'
       28 | #define VPR_NODE DT_NODELABEL(cpuflpr_vpr)
          |                  ^~~~~~~~~~~~
    /home/maldus/Source/sdk-nrf/v3.1.1/nrf/drivers/mspi/mspi_sqspi.c:510:29: note: in expansion of macro 'VPR_NODE'
      510 |         IRQ_CONNECT(DT_IRQN(VPR_NODE), DT_IRQ(VPR_NODE, priority),
          |                             ^~~~~~~~
    [291/688] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj
    ninja: build stopped: subcommand failed.
    FAILED: _sysbuild/sysbuild/images/dive-computer-prefix/src/dive-computer-stamp/dive-computer-build /home/maldus/Projects/Treedom/dive-computer/build/_sysbuild/sysbuild/images/dive-computer-prefix/src/dive-computer-stamp/dive-computer-build
     
    cd /home/maldus/Projects/Treedom/dive-computer/build/dive-computer && /home/maldus/Local/ncs/toolchains/b2ecd2435d/usr/local/bin/cmake --build .
    ninja: build stopped: subcommand failed.
    FATAL ERROR: command exited with status 1: /home/maldus/Local/ncs/toolchains/b2ecd2435d/usr/local/bin/cmake --build /home/maldus/Projects/Treedom/dive-computer/build

    I have setup a similar DTS tree, with a coredump_partition in cpuapp_rram:

    &cpuapp_rram {
    	partitions {
    		compatible = "fixed-partitions";
    		#address-cells = <1>;
    		#size-cells = <1>;
    		boot_partition: partition@0 {
    			label = "mcuboot";
    			reg = <0x0 DT_SIZE_K(64)>;
    		};
    		slot0_partition: partition@10000 {
    			label = "image-0";
    			reg = <0x10000 DT_SIZE_K(324)>;
    		};
    		slot1_partition: partition@61000 {
    			label = "image-1";
    			reg = <0x61000 DT_SIZE_K(324)>;
    		};
                    coredump_partition: partition@b2000 {
                            label = "coredump-partition";
                            reg = <0xb2000 DT_SIZE_K(4)>;
                    };
    	};
    };
    

  • The errors are related to the sQSPI peripheral which is not used by coredump, but it means you can free up the 64K of RAM allocated to FLPR as I did in my test sample. 

    Maldus512 said:
    I upgraded to v3.1.1. The course I linked however displays a version range between 2.7.0 and 3.1.0, is it a documentation issue?

    SDK v3.1.0 introduced a new backend for coredump that is better suited for handling NV storage in the fault handler, but the course has not been updated to reflect this change yet, so it is still suggesting the old backend which does still work if you dont have CONFIG_ASSSERT enabled.

    The configurations below are wrong and should not be used. Not sure when they got added there. I will report it internally. 

Reply
  • The errors are related to the sQSPI peripheral which is not used by coredump, but it means you can free up the 64K of RAM allocated to FLPR as I did in my test sample. 

    Maldus512 said:
    I upgraded to v3.1.1. The course I linked however displays a version range between 2.7.0 and 3.1.0, is it a documentation issue?

    SDK v3.1.0 introduced a new backend for coredump that is better suited for handling NV storage in the fault handler, but the course has not been updated to reflect this change yet, so it is still suggesting the old backend which does still work if you dont have CONFIG_ASSSERT enabled.

    The configurations below are wrong and should not be used. Not sure when they got added there. I will report it internally. 

Children
No Data
Related