13#if (ARCH == RISCV31) || (ARCH == RISCV70)
21#define WAIT_APPS_DUMP_DELAY_MS_EACH_TIME 16000U
22#define WAIT_APPS_DUMP_DELAY_TIMES 2
23#define WAIT_APPS_REFRESH_FLASH_MS 2000
25#define EXCEP_INFO_FOR_R4_TO_R11 8
26#ifndef LOSCFG_EXC_SIMPLE_INFO
27#if defined(__LITEOS__)
28#define EXC_INFO_SAVE_TP_INDEX 16
30#if defined(__FREERTOS__)
32#define EXC_INFO_SAVE_TP_INDEX 9
34#define EXC_INFO_SAVE_TP_INDEX 8
38#define EXC_INFO_SAVE_X4_INDEX 15
78 IRQ_ID_HARD_FAULT = 16,
100#if (ARCH == CM3) || (ARCH == CM7)
112#ifdef LOSCFG_ARCH_FPU_ENABLE
148#ifdef LOSCFG_ARCH_FPU_ENABLE
181#if (ARCH == RISCV31) || (ARCH == RISCV70)
182#ifdef SUPPORT_CALLSTACK
194#if defined(__LITEOS__)
200#ifndef LOSCFG_EXC_SIMPLE_INFO
214#ifndef LOSCFG_EXC_SIMPLE_INFO
273#ifdef SUPPORT_CALLSTACK
281#define EXC_INFO_SAVE_SIZE sizeof(exc_info_save_t)
284#if defined(__FREERTOS__)
286 uint16_t uw_exc_type;
326#ifdef SUPPORT_CALLSTACK
331#define EXC_INFO_SAVE_SIZE sizeof(exc_info_save_t)
334#if (ARCH == CM3) || (ARCH == CM7)
380#ifdef LOSCFG_BACKTRACE
385#define EXC_INFO_SAVE_SIZE sizeof(exc_info_save_t)
390#if (ARCH == RISCV31) || (ARCH == RISCV70)
402#if (ARCH == RISCV31) || (ARCH == RISCV70)
404#if defined(__LITEOS__)
407#if defined(__FREERTOS__)
408void do_fault_handler_freertos(
void);
440#ifdef CONFIG_SUPPORT_CRASHINFO_SAVE_TO_FLASH
442bool crashinfo_status_get(
void);
443void crashinfo_dump(
void);
444void crashinfo_clr(
void);
447#if (ARCH == RISCV31) || (ARCH == RISCV70)
448#ifndef SUPPORT_CALLSTACK
470void nmi_handler(
void);
474#if CONFIG_DFX_SUPPORT_FILE_SYSTEM == DFX_YES
479int32_t exc_info_write(
const char *path, uint32_t offset,
const uint8_t *buf, uint32_t size);
481#ifdef CFG_DRIVERS_MMC
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
void default_handler(void)
Default handler process.
void back_trace(uint32_t fp)
Definition exception_riscv.c:335
void do_hard_fault_handler(exc_context_t *exc_buf_addr)
Prototype for the assembly language hard-fault handler. This will setup the stack and attempt to gene...
Definition exception_riscv.c:1008
#define EXCEP_INFO_FOR_R4_TO_R11
Definition exception.h:25
void hal_register_exception_dump_callback(hal_exception_dump_callback callback)
Register the exception dump callback
Definition exception_riscv.c:1153
IRQ_ID_FAULT_TYPE_ENMU
Definition exception.h:56
void do_fault_handler(uint32_t exc_type, exc_context_t *exc_buff_addr)
Definition exception_riscv.c:1146
struct excep_info_t exception_info_t
struct stack_frame_t exception_stack_frame_t
Structure which is pushed onto the stack by the Cortex-M0 during exception processing - stack frame.
void(* nmi_proc_func)(exc_context_t *)
Callback to output the exception information.
Definition exception.h:391
INT_ID_FAULT_TYPE_ENUM
Definition exception.h:41
void wait_apps_prepare_for_rebooting(void)
Wait for the apps to finish the preparing for rebooting. eg. notify the apps and finish coredump if t...
Definition exception_riscv.c:412
void hal_save_exception_reset_info(void)
Save the exception reset information for debug after the restart.
void(* hal_exception_dump_callback)(uint32_t irq_id, exc_context_t *exc_buf_addr)
Definition exception.h:392
@ IRQ_ID_LOAD_PAGE_FAULT
Definition exception.h:70
@ IRQ_ID_LOAD_ADDERSS_MISALIGNED
Definition exception.h:61
@ IRQ_ID_STORE_OR_AMO_PAGE_FAULT
Definition exception.h:72
@ IRQ_ID_STORE_OR_AMO_ACCESS_FALUT
Definition exception.h:64
@ IRQ_ID_NMI_INTERRUPT
Definition exception.h:76
@ IRQ_ID_INSTRUCTION_ADDRESS_MISALIGNED
Definition exception.h:57
@ IRQ_ID_STORE_OR_AMO_ADDRESS_MISALIGNED
Definition exception.h:63
@ IRQ_ID_INSTRUCTION_PAGE_FAULT
Definition exception.h:69
@ IRQ_ID_RESERVED_0
Definition exception.h:67
@ IRQ_ID_RESERVED_1
Definition exception.h:71
@ IRQ_ID_ILLEGAL_INSTRUCTION
Definition exception.h:59
@ IRQ_ID_ENVIRONMENT_CALL_FROM_UMODE
Definition exception.h:65
@ IRQ_ID_ENVIRONMENT_CALL_FROM_MMODE
Definition exception.h:68
@ IRQ_ID_ENVIRONMENT_CALL_FROM_SMODE
Definition exception.h:66
@ IRQ_ID_ASYNCHRONOUS_EXCEPTION
Definition exception.h:75
@ IRQ_ID_BREAKPOINT
Definition exception.h:60
@ IRQ_ID_INSTRUCTION_ACCESS_FAULT
Definition exception.h:58
@ IRQ_ID_LOAD_ACCESS_FAULT
Definition exception.h:62
@ INT_ID_WATCHDOG_FAULT
Definition exception.h:48
@ INT_ID_NMI_FAULT
Definition exception.h:42
@ INT_ID_CHIP_WATCHDOG_FAULT
Definition exception.h:47
@ INT_ID_HARD_FAULT
Definition exception.h:43
@ INT_ID_USAGE_FAULT
Definition exception.h:46
@ INT_ID_BUS_FAULT
Definition exception.h:45
@ INT_ID_INDEX_BUTT
Definition exception.h:50
@ INT_ID_MEM_FAULT
Definition exception.h:44
osal_u8 type
Definition oal_net.h:0
Definition exception.h:188
uint32_t sp_addr
Definition exception.h:189
uint32_t sp_content
Definition exception.h:190
Definition exception.h:111
uint32_t r2
Definition exception.h:142
uint32_t r6
Definition exception.h:132
uint32_t r0
Definition exception.h:140
uint32_t r10
Definition exception.h:136
uint32_t r11
Definition exception.h:137
uint32_t primask
Definition exception.h:138
uint32_t r12
Definition exception.h:144
uint32_t r8
Definition exception.h:134
uint32_t r1
Definition exception.h:141
uint32_t r4
Definition exception.h:130
uint32_t xpsr
Definition exception.h:147
uint32_t r5
Definition exception.h:131
uint32_t pc
Definition exception.h:146
uint32_t r7
Definition exception.h:133
uint32_t lr
Definition exception.h:145
uint32_t sp
Definition exception.h:139
uint32_t r3
Definition exception.h:143
uint32_t r9
Definition exception.h:135
Definition exception.h:195
uint32_t backtrace_size
Definition exception.h:277
uint32_t scb_icsr
Definition exception.h:371
uint32_t t6
Definition exception.h:242
uint32_t r0
Definition exception.h:348
uint32_t int_num_or_task_id
Definition exception.h:347
uint32_t mstatus
Definition exception.h:210
uint32_t r7
Definition exception.h:355
uint32_t pc
Definition exception.h:364
uint32_t t4
Definition exception.h:240
uint32_t s9
Definition exception.h:236
uint32_t ccause
Definition exception.h:206
uint32_t task_id
Definition exception.h:341
uint32_t t1
Definition exception.h:217
uint32_t r10
Definition exception.h:358
uint32_t scb_scr
Definition exception.h:372
uint32_t r11
Definition exception.h:359
uint32_t r1
Definition exception.h:349
uint32_t r6
Definition exception.h:354
uint32_t s6
Definition exception.h:233
uint32_t t2
Definition exception.h:218
uint32_t a2
Definition exception.h:223
uint32_t s0
Definition exception.h:219
uint32_t a0
Definition exception.h:221
uint32_t lr
Definition exception.h:363
uint16_t nest_cnt
Definition exception.h:199
uint32_t a7
Definition exception.h:228
uint32_t a4
Definition exception.h:225
uint32_t a1
Definition exception.h:222
uint32_t fault_addr
Definition exception.h:346
uint32_t scb_dfsr
Definition exception.h:376
uint32_t scb_bfsr
Definition exception.h:378
uint32_t scb_cfsr
Definition exception.h:374
uint32_t mcause
Definition exception.h:207
uint32_t r3
Definition exception.h:351
uint32_t mtval
Definition exception.h:208
uint32_t control
Definition exception.h:370
uint32_t s2
Definition exception.h:229
uint32_t ra
Definition exception.h:212
uint32_t a3
Definition exception.h:224
uint32_t scb_hfsr
Definition exception.h:375
uint32_t s5
Definition exception.h:232
uint32_t base_pri
Definition exception.h:369
uint32_t r9
Definition exception.h:357
uint32_t tp
Definition exception.h:215
uint32_t fault_mask
Definition exception.h:368
uint32_t system_mem_addr
Definition exception.h:343
uint32_t r8
Definition exception.h:356
uint32_t a5
Definition exception.h:226
uint32_t t0
Definition exception.h:216
uint32_t psp
Definition exception.h:366
uint32_t scb_shcsr
Definition exception.h:373
uint32_t s10
Definition exception.h:237
uint32_t mepc
Definition exception.h:211
uint32_t scb_mmfar
Definition exception.h:377
uint32_t r2
Definition exception.h:350
uint32_t thrd_pid
Definition exception.h:197
uint32_t scb_afsr
Definition exception.h:379
uint32_t s4
Definition exception.h:231
uint16_t type
Definition exception.h:198
uint32_t pri_mask
Definition exception.h:361
uint32_t gp
Definition exception.h:209
uint32_t s1
Definition exception.h:220
uint32_t r5
Definition exception.h:353
uint32_t pri_mask_scb
Definition exception.h:367
uint32_t s8
Definition exception.h:235
uint32_t a6
Definition exception.h:227
uint32_t xpsr
Definition exception.h:365
uint32_t t3
Definition exception.h:239
uint32_t r12
Definition exception.h:360
uint32_t s11
Definition exception.h:238
uint32_t r4
Definition exception.h:352
uint32_t t5
Definition exception.h:241
uint32_t sp
Definition exception.h:213
uint32_t s7
Definition exception.h:234
uint32_t task_stack_size
Definition exception.h:342
uint32_t s3
Definition exception.h:230
Definition exception.h:170
uint32_t intnum_or_taskid
Definition exception.h:174
exc_content_t * context
Definition exception.h:177
uint16_t type
Definition exception.h:172
uint16_t phase
Definition exception.h:171
uint16_t nest_cnt
Definition exception.h:175
uint16_t reserved
Definition exception.h:176
uint32_t fault_addr
Definition exception.h:173
Definition exception.h:335
uint32_t fp
Definition exception.h:337
uint32_t lr
Definition exception.h:336
Definition exception.h:99
unsigned long task_array
Definition exception.h:106
unsigned long sp_bottom
Definition exception.h:104
unsigned long regs[8]
Definition exception.h:101
unsigned long exp_task_id
Definition exception.h:105
unsigned long task_max_num
Definition exception.h:107
unsigned long sp
Definition exception.h:103
Structure which is pushed onto the stack by the Cortex-M0 during exception processing - stack frame.
Definition exception.h:88
unsigned long stacked_pc
Definition exception.h:95
unsigned long stacked_r1
Definition exception.h:90
unsigned long stacked_psr
Definition exception.h:96
unsigned long stacked_r12
Definition exception.h:93
unsigned long stacked_r2
Definition exception.h:91
unsigned long stacked_r0
Definition exception.h:89
unsigned long stacked_lr
Definition exception.h:94
unsigned long stacked_r3
Definition exception.h:92