1/* 2 * Copyright (C) 2017-2019 Alibaba Group Holding Limited 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2020-08-20 zx.chen startup file. Should use with 9 * GCC for T-HEAD Embedded Processors 10 */ 11 12#include <csi_config.h> 13 14 15.section .vectors, "aw", @progbits 16 .align 6 17 .globl __Vectors 18 .type __Vectors, @object 19__Vectors: 20 .long Default_Handler 21 .long Default_Handler 22 .long Default_Handler 23 .long PendSV_Handler 24 .long Default_Handler 25 .long Default_Handler 26 .long Default_Handler 27 .long SysTick_Handler 28 .long Default_Handler 29 .long Default_Handler 30 .long Default_Handler 31 .long Default_Handler 32 .long Default_Handler 33 .long Default_Handler 34 .long Default_Handler 35 .long Default_Handler 36 37 /* External interrupts */ 38 .long USART_IRQHandler 39 .long Default_Handler 40 .long TIM0_IRQHandler 41 .long Default_Handler 42 .long Default_Handler 43 .long Default_Handler 44 .long Default_Handler 45 .long Default_Handler 46 .long Default_Handler 47 .long Default_Handler 48 .long Default_Handler 49 .long Default_Handler 50 .long Default_Handler 51 .long Default_Handler 52 .long Default_Handler 53 .long Default_Handler 54 .long Default_Handler 55 .long Default_Handler 56 .long Default_Handler 57 .long Default_Handler 58 .long Default_Handler 59 .long Default_Handler 60 .long Default_Handler 61 .long Default_Handler 62 .long Default_Handler 63 .long Default_Handler 64 .long Default_Handler 65 .long Default_Handler 66 .long Default_Handler 67 .long Default_Handler 68 .long Default_Handler 69 .long Default_Handler 70 .size __Vectors,.-__Vectors 71 72 .text 73 .align 2 74_start: 75 .text 76 .align 2 77 .globl Reset_Handler 78 .type Reset_Handler, %function 79Reset_Handler: 80.option push 81.option norelax 82 la gp, __global_pointer$ 83.option pop 84 la a0, Default_Handler 85 ori a0, a0, 3 86 csrw mtvec, a0 87 la a0, __Vectors 88 csrw mtvt, a0 89 la sp, __StackTop 90 csrw mscratch, sp 91 92 /* Load data section */ 93 la a0, __erodata 94 la a1, __data_start__ 95 la a2, __data_end__ 96 bgeu a1, a2, 2f 971: 98 lw t0, (a0) 99 sw t0, (a1) 100 addi a0, a0, 4 101 addi a1, a1, 4 102 bltu a1, a2, 1b 1032: 104 105 /* Clear bss section */ 106 la a0, __bss_start__ 107 la a1, __bss_end__ 108 bgeu a0, a1, 2f 1091: 110 sw zero, (a0) 111 addi a0, a0, 4 112 bltu a0, a1, 1b 1132: 114 115#ifndef __NO_SYSTEM_INIT 116 jal SystemInit 117#endif 118 119 jal entry 120 121 .size Reset_Handler, . - Reset_Handler 122 123__exit: 124 j __exit 125 126.section .bss 127 128 .align 3 129 .global g_base_irqstack 130 .global g_top_irqstack 131g_base_irqstack: 132 .space CONFIG_ARCH_INTERRUPTSTACK 133g_top_irqstack: 134