Go to the source code of this file.
Trap (Interrupt) and Exception Handling Definitions.
This file defines the entry point for all processor traps (trap_entry), as well as the C-level dispatchers for Interrupts (trap()) and Exceptions (crash()).
Definition in file mtrap.h.
Macros | |
| #define | STORE "sw" |
| Store Word (32-bit). | |
| #define | LOAD "lw" |
| Load Word (32-bit). | |
| #define | GPR_SIZE "4" |
| #define | STACK_SIZE "64" |
Functions | |
Main Trap Entry Point (Naked). | |
Hardware vector target (written to mtvec). | |
| void | trap_entry (void) |
| The Main Trap Entry Point (Naked). | |
CPU Interrupt Handler. | |
Handle interrupt from external, timer, software interrupts.
| |
| int | irq_handleDefault (void) |
| Default Fallback Interrupt Handler. | |
| int | irq_handleSoft (void) |
| Handlers for CPU interrupts (Software). | |
| int | irq_handleTimer (void) |
| Handlers for CPU interrupts (Timer). | |
| void | irq_handleExt (void) |
| External Interrupt Handler (PLIC). | |
List of Interrupt Handler. | |
List of weak aliases for all PLIC interrupt sources. The user can override any of these by defining a function with the same name.
| |
| int | irq_m_invalid_handler (void) |
| ID: 0, Handler for invalid/unassigned interrupts. | |
| int | irq_m_uart0_handler (void) |
| ID: 1, Handler for UART0 interrupts. | |
| int | irq_m_uart1_handler (void) |
| ID: 2, Handler for UART1 interrupts. | |
| int | irq_m_uart2_handler (void) |
| ID: 3, Handler for UART2 interrupts. | |
| int | irq_m_spi0_handler (void) |
| ID: 6, Handler for SPI0 interrupts. | |
| int | irq_m_spi1_handler (void) |
| ID: 7, Handler for SPI1 interrupts. | |
| int | irq_m_spi2_handler (void) |
| ID: 8, Handler for SPI2 interrupts. | |
| int | irq_m_i2c0_handler (void) |
| ID: 11, Handler for I2C0 interrupts. | |
| int | irq_m_i2c1_handler (void) |
| ID: 12, Handler for I2C1 interrupts. | |
| int | irq_m_i2c2_handler (void) |
| ID: 13, Handler for I2C2 interrupts. | |
| int | irq_m_i2c3_handler (void) |
| ID: 14, Handler for I2C3 interrupts. | |
| int | irq_m_i2c4_handler (void) |
| ID: 15, Handler for I2C4 interrupts. | |
| int | irq_m_gpio0_0_handler (void) |
| ID: 16, Handler for GPIO0_0 interrupts. | |
| int | irq_m_gpio0_1_handler (void) |
| ID: 17, Handler for GPIO0_1 interrupts. | |
| int | irq_m_gpio1_0_handler (void) |
| ID: 18, Handler for GPIO1_0 interrupts. | |
| int | irq_m_gpio1_1_handler (void) |
| ID: 19, Handler for GPIO1_1 interrupts. | |
| int | irq_m_userTimer0_handler (void) |
| ID: 21, Handler for User Timer 0 interrupts. | |
| int | irq_m_userTimer1_handler (void) |
| ID: 22, Handler for User Timer 1 interrupts. | |
| int | irq_m_userTimer2_handler (void) |
| ID: 23, Handler for User Timer 2 interrupts. | |
| int | irq_m_watchDog0_handler (void) |
| ID: 26, Handler for WatchDog Timer interrupts. | |
| int | irq_m_axiA_handler (void) |
| ID: 30, Handler for AXI A interrupts. | |
| int | irq_m_l2Cache_handler (void) |
| ID: 31, Handler for L2 Cache Control interrupts. | |
| int | irq_m_user_a_handler (void) |
| ID: 32, Handler for User-defined Interrupt A. | |
| int | irq_m_user_b_handler (void) |
| ID: 33, Handler for User-defined Interrupt B. | |
| int | irq_m_user_c_handler (void) |
| ID: 34, Handler for User-defined Interrupt C. | |
| int | irq_m_user_d_handler (void) |
| ID: 35, Handler for User-defined Interrupt D. | |
| int | irq_m_user_e_handler (void) |
| ID: 36, Handler for User-defined Interrupt E. | |
| int | irq_m_user_f_handler (void) |
| ID: 37, Handler for User-defined Interrupt F. | |
| int | irq_m_user_g_handler (void) |
| ID: 38, Handler for User-defined Interrupt G. | |
| int | irq_m_user_h_handler (void) |
| ID: 39, Handler for User-defined Interrupt H. | |
Dispatcher/Exception Handlers (Function) | |
Trap Dispatcher mainly for external interrupt and exception handler.
| |
| void | trap (void) |
| Main C Trap Dispatcher. | |
| void | crash (void) |
| Fatal Exception Handler. | |