HPM SDK
HPMicro Software Development Kit
trap.c File Reference
#include "hpm_common.h"
#include "hpm_soc.h"

Macros

#define MCAUSE_INSTR_ADDR_MISALIGNED   (0U)
 Instruction Address misaligned. More...
 
#define MCAUSE_INSTR_ACCESS_FAULT   (1U)
 Instruction access fault. More...
 
#define MCAUSE_ILLEGAL_INSTR   (2U)
 Illegal instruction. More...
 
#define MCAUSE_BREAKPOINT   (3U)
 Breakpoint. More...
 
#define MCAUSE_LOAD_ADDR_MISALIGNED   (4U)
 Load address misaligned. More...
 
#define MCAUSE_LOAD_ACCESS_FAULT   (5U)
 Load access fault. More...
 
#define MCAUSE_STORE_AMO_ADDR_MISALIGNED   (6U)
 Store/AMO address misaligned. More...
 
#define MCAUSE_STORE_AMO_ACCESS_FAULT   (7U)
 Store/AMO access fault. More...
 
#define MCAUSE_ECALL_FROM_USER_MODE   (8U)
 Environment call from User mode. More...
 
#define MCAUSE_ECALL_FROM_SUPERVISOR_MODE   (9U)
 Environment call from Supervisor mode. More...
 
#define MCAUSE_ECALL_FROM_MACHINE_MODE   (11U)
 Environment call from machine mode. More...
 
#define MCAUSE_INSTR_PAGE_FAULT   (12U)
 Instruction page fault. More...
 
#define MCAUSE_LOAD_PAGE_FAULT   (13)
 Load page fault. More...
 
#define MCAUSE_STORE_AMO_PAGE_FAULT   (15U)
 Store/AMO page fault. More...
 
#define IRQ_S_SOFT   1
 
#define IRQ_H_SOFT   2
 
#define IRQ_M_SOFT   3
 
#define IRQ_S_TIMER   5
 
#define IRQ_H_TIMER   6
 
#define IRQ_M_TIMER   7
 
#define IRQ_S_EXT   9
 
#define IRQ_H_EXT   10
 
#define IRQ_M_EXT   11
 
#define IRQ_COP   12
 
#define IRQ_HOST   13
 
#define IRQ_HANDLER_TRAP_AS_ISR   1
 

Functions

HPM_ATTR_MACHINE_INTERRUPT void irq_handler_trap (void)
 

Macro Definition Documentation

◆ IRQ_COP

#define IRQ_COP   12

◆ IRQ_H_EXT

#define IRQ_H_EXT   10

◆ IRQ_H_SOFT

#define IRQ_H_SOFT   2

◆ IRQ_H_TIMER

#define IRQ_H_TIMER   6

◆ IRQ_HANDLER_TRAP_AS_ISR

#define IRQ_HANDLER_TRAP_AS_ISR   1

◆ IRQ_HOST

#define IRQ_HOST   13

◆ IRQ_M_EXT

#define IRQ_M_EXT   11

◆ IRQ_M_SOFT

#define IRQ_M_SOFT   3

◆ IRQ_M_TIMER

#define IRQ_M_TIMER   7

◆ IRQ_S_EXT

#define IRQ_S_EXT   9

◆ IRQ_S_SOFT

#define IRQ_S_SOFT   1

◆ IRQ_S_TIMER

#define IRQ_S_TIMER   5

◆ MCAUSE_BREAKPOINT

#define MCAUSE_BREAKPOINT   (3U)

Breakpoint.

◆ MCAUSE_ECALL_FROM_MACHINE_MODE

#define MCAUSE_ECALL_FROM_MACHINE_MODE   (11U)

Environment call from machine mode.

◆ MCAUSE_ECALL_FROM_SUPERVISOR_MODE

#define MCAUSE_ECALL_FROM_SUPERVISOR_MODE   (9U)

Environment call from Supervisor mode.

◆ MCAUSE_ECALL_FROM_USER_MODE

#define MCAUSE_ECALL_FROM_USER_MODE   (8U)

Environment call from User mode.

◆ MCAUSE_ILLEGAL_INSTR

#define MCAUSE_ILLEGAL_INSTR   (2U)

Illegal instruction.

◆ MCAUSE_INSTR_ACCESS_FAULT

#define MCAUSE_INSTR_ACCESS_FAULT   (1U)

Instruction access fault.

◆ MCAUSE_INSTR_ADDR_MISALIGNED

#define MCAUSE_INSTR_ADDR_MISALIGNED   (0U)

Instruction Address misaligned.

◆ MCAUSE_INSTR_PAGE_FAULT

#define MCAUSE_INSTR_PAGE_FAULT   (12U)

Instruction page fault.

◆ MCAUSE_LOAD_ACCESS_FAULT

#define MCAUSE_LOAD_ACCESS_FAULT   (5U)

Load access fault.

◆ MCAUSE_LOAD_ADDR_MISALIGNED

#define MCAUSE_LOAD_ADDR_MISALIGNED   (4U)

Load address misaligned.

◆ MCAUSE_LOAD_PAGE_FAULT

#define MCAUSE_LOAD_PAGE_FAULT   (13)

Load page fault.

◆ MCAUSE_STORE_AMO_ACCESS_FAULT

#define MCAUSE_STORE_AMO_ACCESS_FAULT   (7U)

Store/AMO access fault.

◆ MCAUSE_STORE_AMO_ADDR_MISALIGNED

#define MCAUSE_STORE_AMO_ADDR_MISALIGNED   (6U)

Store/AMO address misaligned.

◆ MCAUSE_STORE_AMO_PAGE_FAULT

#define MCAUSE_STORE_AMO_PAGE_FAULT   (15U)

Store/AMO page fault.

Function Documentation

◆ irq_handler_trap()

HPM_ATTR_MACHINE_INTERRUPT void irq_handler_trap ( void  )