rt-thread/bsp/hpmicro/hpm6750evk/startup/HPM6750/toolchains/gcc/vectors.S

141 lines
5.7 KiB
ArmAsm
Raw Normal View History

/*
* Copyright (c) 2021-2023 HPMicro
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
.section .vector_table, "a"
.global __vector_table
.align 9
__vector_table:
.weak default_isr_trap
[libcpu][riscv]整合libcpu/riscv中的移植文件 提供一份公共代码于common (#6941) 整合libcpu/riscv中的移植文件 提供一份公共代码于common 在提交本pr时,除hpmicro的内核,rv32内核bsp已完成去除大部分的冗余,大部分代码采用common中的实现。本pr的作用是进一步统一common中的文件,从而提供一份公用代码,新移植的RV32内核的BSP可以全部使用common代码。 - 在common中提供一份公用文件:interrupt_gcc.S - 修改原有的文件,将原有的中断中上下文切换代码替换为interrupt_gcc.S - 基于上述修改,修改仓库中risc-v内核的BSP与移植相关的部分 (主要包含中断入口函数 中断栈等) - 在common中提供一份公用文件:trap_common.c;提供统一中断入口函数,中断入口函数初始化,中断入口注册等函数,并完善异常时的信息输出 - 在common中提供一份公用文件:rt_hw_stack_frame.h;将栈帧结构体剥离,供用户使用 - 在上述工作完成后,在上述工作的基础上测试仓库中risc-v内核的BSP - 完善函数中的命名,完善中断栈的获取 - 提供一份详细的基于现有common文件的移植指南 #### 在什么测试环境下测试通过 - 1.CH32V307V-R1-R0 - 2.CH32V208W-R0-1V4 - 3.HPM6750EVKMINI - 4.GD32VF103V-EVAL - 5.qemu(CORE-V-MCU ) > 与上述开发板使用同样芯片的BSP均测试通过 在CH32V307V-R1-R0与HPM6750EVKMINI上基于现有移植文件进行多线程复杂场景下的长时间测试,测试过程系统运行正常。
2023-03-01 14:32:43 +08:00
.set default_isr_trap, SW_handler
.long default_isr_trap
IRQ_HANDLER 1 /* GPIO0_A IRQ handler */
IRQ_HANDLER 2 /* GPIO0_B IRQ handler */
IRQ_HANDLER 3 /* GPIO0_C IRQ handler */
IRQ_HANDLER 4 /* GPIO0_D IRQ handler */
IRQ_HANDLER 5 /* GPIO0_E IRQ handler */
IRQ_HANDLER 6 /* GPIO0_F IRQ handler */
IRQ_HANDLER 7 /* GPIO0_X IRQ handler */
IRQ_HANDLER 8 /* GPIO0_Y IRQ handler */
IRQ_HANDLER 9 /* GPIO0_Z IRQ handler */
IRQ_HANDLER 10 /* GPIO1_A IRQ handler */
IRQ_HANDLER 11 /* GPIO1_B IRQ handler */
IRQ_HANDLER 12 /* GPIO1_C IRQ handler */
IRQ_HANDLER 13 /* GPIO1_D IRQ handler */
IRQ_HANDLER 14 /* GPIO1_E IRQ handler */
IRQ_HANDLER 15 /* GPIO1_F IRQ handler */
IRQ_HANDLER 16 /* GPIO1_X IRQ handler */
IRQ_HANDLER 17 /* GPIO1_Y IRQ handler */
IRQ_HANDLER 18 /* GPIO1_Z IRQ handler */
IRQ_HANDLER 19 /* ADC0 IRQ handler */
IRQ_HANDLER 20 /* ADC1 IRQ handler */
IRQ_HANDLER 21 /* ADC2 IRQ handler */
IRQ_HANDLER 22 /* ADC3 IRQ handler */
IRQ_HANDLER 23 /* ACMP[0] IRQ handler */
IRQ_HANDLER 24 /* ACMP[1] IRQ handler */
IRQ_HANDLER 25 /* ACMP[2] IRQ handler */
IRQ_HANDLER 26 /* ACMP[3] IRQ handler */
IRQ_HANDLER 27 /* SPI0 IRQ handler */
IRQ_HANDLER 28 /* SPI1 IRQ handler */
IRQ_HANDLER 29 /* SPI2 IRQ handler */
IRQ_HANDLER 30 /* SPI3 IRQ handler */
IRQ_HANDLER 31 /* UART0 IRQ handler */
IRQ_HANDLER 32 /* UART1 IRQ handler */
IRQ_HANDLER 33 /* UART2 IRQ handler */
IRQ_HANDLER 34 /* UART3 IRQ handler */
IRQ_HANDLER 35 /* UART4 IRQ handler */
IRQ_HANDLER 36 /* UART5 IRQ handler */
IRQ_HANDLER 37 /* UART6 IRQ handler */
IRQ_HANDLER 38 /* UART7 IRQ handler */
IRQ_HANDLER 39 /* UART8 IRQ handler */
IRQ_HANDLER 40 /* UART9 IRQ handler */
IRQ_HANDLER 41 /* UART10 IRQ handler */
IRQ_HANDLER 42 /* UART11 IRQ handler */
IRQ_HANDLER 43 /* UART12 IRQ handler */
IRQ_HANDLER 44 /* UART13 IRQ handler */
IRQ_HANDLER 45 /* UART14 IRQ handler */
IRQ_HANDLER 46 /* UART15 IRQ handler */
IRQ_HANDLER 47 /* CAN0 IRQ handler */
IRQ_HANDLER 48 /* CAN1 IRQ handler */
IRQ_HANDLER 49 /* CAN2 IRQ handler */
IRQ_HANDLER 50 /* CAN3 IRQ handler */
IRQ_HANDLER 51 /* PTPC IRQ handler */
IRQ_HANDLER 52 /* WDG0 IRQ handler */
IRQ_HANDLER 53 /* WDG1 IRQ handler */
IRQ_HANDLER 54 /* WDG2 IRQ handler */
IRQ_HANDLER 55 /* WDG3 IRQ handler */
IRQ_HANDLER 56 /* MBX0_CA IRQ handler */
IRQ_HANDLER 57 /* MBX0_CB IRQ handler */
IRQ_HANDLER 58 /* MBX1_CA IRQ handler */
IRQ_HANDLER 59 /* MBX1_CB IRQ handler */
IRQ_HANDLER 60 /* TMR0 IRQ handler */
IRQ_HANDLER 61 /* TMR1 IRQ handler */
IRQ_HANDLER 62 /* TMR2 IRQ handler */
IRQ_HANDLER 63 /* TMR3 IRQ handler */
IRQ_HANDLER 64 /* TMR4 IRQ handler */
IRQ_HANDLER 65 /* TMR5 IRQ handler */
IRQ_HANDLER 66 /* TMR6 IRQ handler */
IRQ_HANDLER 67 /* TMR7 IRQ handler */
IRQ_HANDLER 68 /* I2C0 IRQ handler */
IRQ_HANDLER 69 /* I2C1 IRQ handler */
IRQ_HANDLER 70 /* I2C2 IRQ handler */
IRQ_HANDLER 71 /* I2C3 IRQ handler */
IRQ_HANDLER 72 /* PWM0 IRQ handler */
IRQ_HANDLER 73 /* HAL0 IRQ handler */
IRQ_HANDLER 74 /* ENC0 IRQ handler */
IRQ_HANDLER 75 /* PWM1 IRQ handler */
IRQ_HANDLER 76 /* HAL1 IRQ handler */
IRQ_HANDLER 77 /* ENC1 IRQ handler */
IRQ_HANDLER 78 /* PWM2 IRQ handler */
IRQ_HANDLER 79 /* HAL2 IRQ handler */
IRQ_HANDLER 80 /* ENC2 IRQ handler */
IRQ_HANDLER 81 /* PWM3 IRQ handler */
IRQ_HANDLER 82 /* HAL3 IRQ handler */
IRQ_HANDLER 83 /* ENC3 IRQ handler */
IRQ_HANDLER 84 /* SDP IRQ handler */
IRQ_HANDLER 85 /* XPI0 IRQ handler */
IRQ_HANDLER 86 /* XPI1 IRQ handler */
IRQ_HANDLER 87 /* XDMA IRQ handler */
IRQ_HANDLER 88 /* HDMA IRQ handler */
IRQ_HANDLER 89 /* DRAM IRQ handler */
IRQ_HANDLER 90 /* RNG IRQ handler */
IRQ_HANDLER 91 /* I2S0 IRQ handler */
IRQ_HANDLER 92 /* I2S1 IRQ handler */
IRQ_HANDLER 93 /* I2S2 IRQ handler */
IRQ_HANDLER 94 /* I2S3 IRQ handler */
IRQ_HANDLER 95 /* I2SCLASSD IRQ handler */
IRQ_HANDLER 96 /* I2SPDM IRQ handler */
IRQ_HANDLER 97 /* CAM0 IRQ handler */
IRQ_HANDLER 98 /* CAM1 IRQ handler */
IRQ_HANDLER 99 /* LCD_D0 IRQ handler */
IRQ_HANDLER 100 /* LCD_D1 IRQ handler */
IRQ_HANDLER 101 /* PDMA_D0 IRQ handler */
IRQ_HANDLER 102 /* PDMA_D1 IRQ handler */
IRQ_HANDLER 103 /* JPEG IRQ handler */
IRQ_HANDLER 104 /* NTM0 IRQ handler */
IRQ_HANDLER 105 /* NTM1 IRQ handler */
IRQ_HANDLER 106 /* USB0 IRQ handler */
IRQ_HANDLER 107 /* USB1 IRQ handler */
IRQ_HANDLER 108 /* ENET0 IRQ handler */
IRQ_HANDLER 109 /* ENET1 IRQ handler */
IRQ_HANDLER 110 /* SDXC0 IRQ handler */
IRQ_HANDLER 111 /* SDXC1 IRQ handler */
IRQ_HANDLER 112 /* SEC_EVENT IRQ handler */
IRQ_HANDLER 113 /* PMIC_GPIO IRQ handler */
IRQ_HANDLER 114 /* PMIC_WDG IRQ handler */
IRQ_HANDLER 115 /* PMIC_TMR IRQ handler */
IRQ_HANDLER 116 /* PMIC_UART IRQ handler */
IRQ_HANDLER 117 /* VAD IRQ handler */
IRQ_HANDLER 118 /* FUSE IRQ handler */
IRQ_HANDLER 119 /* SECMON IRQ handler */
IRQ_HANDLER 120 /* BATT_RTC IRQ handler */
IRQ_HANDLER 121 /* BUTTON IRQ handler */
IRQ_HANDLER 122 /* BATT_GPIO IRQ handler */
IRQ_HANDLER 123 /* VIOLATION IRQ handler */
IRQ_HANDLER 124 /* BROWNOUT IRQ handler */
IRQ_HANDLER 125 /* CLK_FAIL IRQ handler */
IRQ_HANDLER 126 /* DEBUG[0] IRQ handler */
IRQ_HANDLER 127 /* DEBUG[1] IRQ handler */