Add hardfault log progmem flash backend

This commit is contained in:
Peter van der Perk
2023-01-04 12:52:01 -05:00
committed by Daniel Agar
parent ca9ae80b10
commit fa87375d0c
21 changed files with 1142 additions and 38 deletions
+1
View File
@@ -43,6 +43,7 @@ CONFIG_MODULES_VTOL_ATT_CONTROL=y
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
CONFIG_SYSTEMCMDS_DMESG=y
CONFIG_SYSTEMCMDS_DUMPFILE=y
CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y
CONFIG_SYSTEMCMDS_NETMAN=y
CONFIG_SYSTEMCMDS_NSHTERM=y
CONFIG_SYSTEMCMDS_PERF=y
@@ -71,6 +71,7 @@ CONFIG_ARMV7M_ICACHE=y
CONFIG_ARMV7M_MEMCPY=y
CONFIG_ARMV7M_USEBASEPRI=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_CRASHDUMP=y
CONFIG_BOARD_LOOPSPERMSEC=14539
CONFIG_BUILTIN=y
CONFIG_DEBUG_BUSFAULT=y
@@ -247,6 +248,7 @@ CONFIG_S32K3XX_LPUART9=y
CONFIG_S32K3XX_LPUART_INVERT=y
CONFIG_S32K3XX_LPUART_SINGLEWIRE=y
CONFIG_S32K3XX_PROGMEM=y
CONFIG_S32K3XX_PROGMEM_SIZE=120
CONFIG_S32K3XX_QSPI=y
CONFIG_S32K3XX_WKPUINTS=y
CONFIG_SCHED_HPWORK=y
+18
View File
@@ -38,6 +38,7 @@ __BEGIN_DECLS
#include "hardware/s32k344_pinmux.h"
#include "s32k3xx_periphclocks.h"
#include "s32k3xx_pin.h"
#include "s32k3xx_progmem.h"
#include <arch/board/board.h>
/****************************************************************************
@@ -92,6 +93,23 @@ __BEGIN_DECLS
#define BOARD_ENABLE_CONSOLE_BUFFER
/*
* Hardfault log to progmem
*/
#define PROGMEM_CRASHDUMP 1
#define SAVE_CRASHDUMP 1
#define PROGMEM_DUMP_BASE ((CONFIG_S32K3XX_PROGMEM_SIZE * 1024) + S32K3XX_PROGMEM_START_ADDR)
#define PROGMEM_DUMP_SIZE ((DFLASH_SIZE - CONFIG_S32K3XX_PROGMEM_SIZE) * 1024)
#define PROGMEM_DUMP_ALIGNMENT (S32K3XX_PROGMEM_WRITE_SIZE)
#define PROGMEM_DUMP_UNIT_SIZE (S32K3XX_PROGMEM_DFLASH_WRITE_UNIT_SIZE)
#define PROGMEM_DUMP_HEADER_PAD (108)
#define PROGMEM_DUMP_ERASE_VALUE (0xFF)
#define PROGMEM_DUMP_STACK_SIZE (6656)
#define BOARD_CRASHDUMP_BSS 1
/* Reboot and ulog we store on a wear-level filesystem */
#define HARDFAULT_REBOOT_PATH "/mnt/progmem/reboot"
/****************************************************************************
* Public Data
****************************************************************************/
@@ -309,5 +309,7 @@ int s32k3xx_bringup(void)
# endif /* CONFIG_S32K3XX_FLEXCAN5 */
#endif /* CONFIG_NETDEV_LATEINIT */
board_hardfault_init(2, true);
return ret;
}