Hi Nordic
I am working with nrf52840 and nrf52832 using ncs v2.8.0
I am trying to save coredump to flash according to instructions on this link - https://docs.nordicsemi.com/bundle/ncs-2.8.0/page/zephyr/services/debugging/coredump.html
I added this to my pm_static_my_board.yml
coredump_partition: address: 0xCF000 size: 0x8000 region: flash_primary
And this to my_board.overlay
&flash0 {
/*
* For more information, see:
* http: //docs.zephyrproject.org/latest/guides/dts/index.html#flash-partitions
*/
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
...
coredump_partition: partition@000080000 { //THIS IS NOT LEGIT ADDRESS(END OF FLASH) BUT IT IS NOT TAKEN TO ACOUNT BECAUS PM_STATIC IS
label = "coredump-partition";
reg = <0x000080000 DT_SIZE_K(4)>;
};
};
A side note is that this is strange that I need to set it in the overlay which is basically ignored because pm_static partitions is the one that actually matters (unless i got something wrong ? )
And this configs to my prj.conf
# Coredump CONFIG_DEBUG_COREDUMP=y CONFIG_DEBUG_COREDUMP_BACKEND_FLASH_PARTITION=y CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_THREADS=y
In my my_board/my_app/zephyr/.config i see this coredump related configs
CONFIG_ARCH_SUPPORTS_COREDUMP=y CONFIG_ARCH_SUPPORTS_COREDUMP_THREADS=y # CONFIG_COREDUMP_DEVICE is not set CONFIG_DEBUG_THREAD_INFO=y CONFIG_DEBUG_COREDUMP=y # CONFIG_DEBUG_COREDUMP_BACKEND_LOGGING is not set CONFIG_DEBUG_COREDUMP_BACKEND_FLASH_PARTITION=y # CONFIG_DEBUG_COREDUMP_BACKEND_OTHER is not set # CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_MIN is not set CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_THREADS=y # CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_LINKER_RAM is not set CONFIG_DEBUG_COREDUMP_FLASH_CHUNK_SIZE=64 CONFIG_DEBUG_COREDUMP_THREADS_METADATA=y
I am generating a coredump using this implementation
void trigger_coredump(void)
{
__ASSERT(0, "Forcing coredump");
}
When i try to read the flash area after generating the coredump with nrfjprog --memrd 0xCF000 --w 32 --n 0x8000
i get all 0xFF
what i am missing ?
I also tried to check myself by replacing CONFIG_DEBUG_COREDUMP_BACKEND_FLASH_PARTITION=y
With CONFIG_DEBUG_COREDUMP_BACKEND_LOGGING=y
Hopping to see the coredump on my open rtt but nothing .. when coredump is triggered prints just stop
- What am I missing? Why can't I find a coredump on the flash partition or in the rtt log ?
- Can it be that the device does not have the time to write the coredump before the actual crash ? If so, how can I manage that ?
- Is there some auto deletion of the flash partition with the coredump so new coredumps can be saved or is it something i have to manage myself after i read the coredump from flash ?
Hope to read you soon
Best regards
Ziv

