WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
log_oml_exception.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2018-2020. All rights reserved.
3 * Description: log OML exception producer interface
4 */
5
6#ifndef LOG_OML_EXCEPTION_H
7#define LOG_OML_EXCEPTION_H
8
9#if ((ARCH == RISCV31) || (ARCH == RISCV32) || (ARCH == RISCV70))
10#define AULREG_VALUE_INDEX 32
11#elif (ARCH == CM3) || (ARCH == CM7)
12#define AULREG_VALUE_INDEX 16
13#endif
14
15#include "log_oam_logger.h"
16#if ((ARCH == RISCV31) || (ARCH == RISCV32) || (ARCH == RISCV70))
17#include "vectors.h"
18#elif (ARCH == CM7)
19#include "exception.h"
20#endif
21typedef struct {
22 om_msg_header_stru_t msg_header;
23 uint32_t stack_limit;
24 uint32_t fault_type;
25 uint32_t fault_reason;
26 uint32_t address;
27 uint32_t reg_value[AULREG_VALUE_INDEX];
28 uint32_t psp_value;
29 uint32_t lr_value;
30 uint32_t pc_value;
31 uint32_t psps_value;
32 uint32_t primask_value;
34 uint32_t bserpri_value;
35 uint32_t control_value;
36 uint8_t msg_tail;
37} __attribute__((packed)) om_exception_info_stru_t;
38
48
82
117
128
139
140#if (USE_COMPRESS_LOG_INSTEAD_OF_SDT_LOG == NO)
141#define DUMP_MAX_LENGTH_PER_TRANS (5000U - 15U)
142#endif
143
147void log_oml_dump_stack(void);
148
154void log_exception_send_data(const uint8_t *data, uint16_t length);
155
159void log_oml_memory_dump(void);
160
161#if ((ARCH == RISCV31) || (ARCH == RISCV32) || (ARCH == RISCV70))
167void log_exception_dump(uint32_t irq_id, exc_context_t *exc_buf_addr);
168#else
176void log_exception_dump(uint32_t int_id, uint32_t reason, uint32_t addr, exc_info_t *exc_info);
177#endif
178
179#if ((ARCH == RISCV31) || (ARCH == RISCV32) || (ARCH == RISCV70))
185void log_oml_exception_info_send(uint32_t irq_id, const exc_context_t *exc_buf_addr);
186#else
194void log_oml_exception_info_send(uint32_t address, uint32_t fault_type, uint32_t fault_reason,
195 const exc_info_t *exc_info);
196#endif
197
202
203#endif
OM_FAULT_TYPE_ENUM
Definition log_oml_exception.h:39
@ OM_INDEX_BUTT
Definition log_oml_exception.h:46
@ OM_HARD_FAULT
Definition log_oml_exception.h:40
@ OM_MEM_FAULT
Definition log_oml_exception.h:41
@ OM_WDT_TIMEOUT
Definition log_oml_exception.h:45
@ OM_LOOP_DEAD
Definition log_oml_exception.h:44
@ OM_USAGE_FAULT
Definition log_oml_exception.h:43
@ OM_BUS_FAULT
Definition log_oml_exception.h:42
OM_RISCV_FAULT_TYPE_ENMU
Definition log_oml_exception.h:49
@ OM_ENVIRONMENT_CALL_FROM_UMODE
Definition log_oml_exception.h:60
@ OM_LOAD_ADDERSS_MISALIGNED
Definition log_oml_exception.h:56
@ OM_ILLEGAL_INSTRUCTION
Definition log_oml_exception.h:54
@ OM_INSTRUCTION_ACCESS_FAULT
Definition log_oml_exception.h:53
@ OM_RESERVED_0
Definition log_oml_exception.h:62
@ OM_NMI_INTERRUPT
Definition log_oml_exception.h:75
@ OM_LOAD_PAGE_FAULT
Definition log_oml_exception.h:65
@ OM_LOAD_ACCESS_FAULT
Definition log_oml_exception.h:57
@ OM_APPLICATION_XIP_CTRL_INTERRUPT
Definition log_oml_exception.h:77
@ OM_RESERVED_1
Definition log_oml_exception.h:66
@ OM_LOCK_UP
Definition log_oml_exception.h:70
@ OM_INSTRUCTION_PAGE_FAULT
Definition log_oml_exception.h:64
@ OM_STORE_OR_AMO_ADDRESS_MISALIGNED
Definition log_oml_exception.h:58
@ OM_APPLICATION_MDMA_INTERRUPT
Definition log_oml_exception.h:79
@ OM_STORE_OR_AMO_PAGE_FAULT
Definition log_oml_exception.h:67
@ OM_APPLICATION_XIP_CACHE_INTERRUPT
Definition log_oml_exception.h:78
@ OM_STORE_OR_AMO_ACCESS_FALUT
Definition log_oml_exception.h:59
@ OM_INSTRUCTION_ADDRESS_MISALIGNED
Definition log_oml_exception.h:52
@ OM_RISCV_HARD_FAULT
Definition log_oml_exception.h:69
@ OM_ENVIRONMENT_CALL_FROM_MMODE
Definition log_oml_exception.h:63
@ OM_UNKNOW_FAULT
Definition log_oml_exception.h:50
@ OM_BREAKPOINT
Definition log_oml_exception.h:55
@ OM_WDT_TIMEOUT_INTERRUPT
Definition log_oml_exception.h:76
@ OM_APPLICATION_SMDMA_INTERRUPT
Definition log_oml_exception.h:80
@ OM_ENVIRONMENT_CALL_FROM_SMODE
Definition log_oml_exception.h:61
void log_exception_send_data(const uint8_t *data, uint16_t length)
Dump the ram when hardfault or watchdog.
Definition log_oml_exception.c:352
#define AULREG_VALUE_INDEX
Definition log_oml_exception.h:10
REG_NUM_INDEX
Definition log_oml_exception.h:83
@ REG_NUM_3
Definition log_oml_exception.h:87
@ REG_NUM_26
Definition log_oml_exception.h:110
@ REG_NUM_23
Definition log_oml_exception.h:107
@ REG_NUM_19
Definition log_oml_exception.h:103
@ REG_NUM_8
Definition log_oml_exception.h:92
@ REG_NUM_10
Definition log_oml_exception.h:94
@ REG_NUM_0
Definition log_oml_exception.h:84
@ REG_NUM_6
Definition log_oml_exception.h:90
@ REG_NUM_15
Definition log_oml_exception.h:99
@ REG_NUM_20
Definition log_oml_exception.h:104
@ REG_NUM_11
Definition log_oml_exception.h:95
@ REG_NUM_24
Definition log_oml_exception.h:108
@ REG_NUM_28
Definition log_oml_exception.h:112
@ REG_NUM_25
Definition log_oml_exception.h:109
@ REG_NUM_16
Definition log_oml_exception.h:100
@ REG_NUM_2
Definition log_oml_exception.h:86
@ REG_NUM_18
Definition log_oml_exception.h:102
@ REG_NUM_13
Definition log_oml_exception.h:97
@ REG_NUM_29
Definition log_oml_exception.h:113
@ REG_NUM_30
Definition log_oml_exception.h:114
@ REG_NUM_21
Definition log_oml_exception.h:105
@ REG_NUM_1
Definition log_oml_exception.h:85
@ REG_NUM_12
Definition log_oml_exception.h:96
@ REG_NUM_5
Definition log_oml_exception.h:89
@ REG_NUM_14
Definition log_oml_exception.h:98
@ REG_NUM_31
Definition log_oml_exception.h:115
@ REG_NUM_4
Definition log_oml_exception.h:88
@ REG_NUM_22
Definition log_oml_exception.h:106
@ REG_NUM_27
Definition log_oml_exception.h:111
@ REG_NUM_7
Definition log_oml_exception.h:91
@ REG_NUM_17
Definition log_oml_exception.h:101
@ REG_NUM_9
Definition log_oml_exception.h:93
PARA1_INDEX
Definition log_oml_exception.h:118
@ PARA1_INDEX_2
Definition log_oml_exception.h:121
@ PARA1_INDEX_5
Definition log_oml_exception.h:124
@ PARA1_INDEX_1
Definition log_oml_exception.h:120
@ PARA1_INDEX_3
Definition log_oml_exception.h:122
@ PARA1_INDEX_6
Definition log_oml_exception.h:125
@ PARA1_INDEX_0
Definition log_oml_exception.h:119
@ PARA1_INDEX_4
Definition log_oml_exception.h:123
@ PARA1_INDEX_7
Definition log_oml_exception.h:126
void log_exception_dump(uint32_t irq_id, exc_context_t *exc_buf_addr)
Invoked by exception to dump exception information.
Definition log_oml_exception.c:258
void default_register_hal_exception_dump_callback(void)
Register exception dump to fault interrupt.
Definition log_oml_exception.c:642
PARA2_INDEX
Definition log_oml_exception.h:129
@ PARA2_INDEX_1
Definition log_oml_exception.h:131
@ PARA2_INDEX_2
Definition log_oml_exception.h:132
@ PARA2_INDEX_5
Definition log_oml_exception.h:135
@ PARA2_INDEX_6
Definition log_oml_exception.h:136
@ PARA2_INDEX_7
Definition log_oml_exception.h:137
@ PARA2_INDEX_3
Definition log_oml_exception.h:133
@ PARA2_INDEX_0
Definition log_oml_exception.h:130
@ PARA2_INDEX_4
Definition log_oml_exception.h:134
void log_oml_exception_info_send(uint32_t irq_id, const exc_context_t *exc_buf_addr)
SDT interface to send SDT format fault message.
Definition log_oml_exception.c:542
void log_oml_memory_dump(void)
Dump the whole rom when hardfault or watchdog.
Definition log_oml_exception.c:454
void log_oml_dump_stack(void)
Dump the current task stack when in systemfaults and watchdog timeout.
Definition log_oml_exception.c:410
Log message information header.
Definition log_oam_logger.h:564
uint32_t lr_value
Definition log_oml_exception.h:29
uint32_t fault_reason
Definition log_oml_exception.h:25
uint32_t fault_type
Definition log_oml_exception.h:24
uint32_t control_value
Definition log_oml_exception.h:35
uint32_t psp_value
Definition log_oml_exception.h:28
uint32_t address
Definition log_oml_exception.h:26
uint32_t pc_value
Definition log_oml_exception.h:30
uint32_t primask_value
Definition log_oml_exception.h:32
uint32_t stack_limit
Definition log_oml_exception.h:23
uint32_t bserpri_value
Definition log_oml_exception.h:34
uint32_t fault_mask_value
Definition log_oml_exception.h:33
uint32_t psps_value
Definition log_oml_exception.h:31
om_msg_header_stru_t msg_header
Definition log_oml_exception.h:22
uint8_t msg_tail
Definition log_oml_exception.h:36
Definition vectors.h:229
Definition exception.h:170
Definition vectors.h:237
Definition hal_uart_v151_regs_def.h:38