summaryrefslogtreecommitdiffstats
path: root/tinyusb/hw/bsp/fomu/crt0-vexriscv.S
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb/hw/bsp/fomu/crt0-vexriscv.S')
-rwxr-xr-xtinyusb/hw/bsp/fomu/crt0-vexriscv.S83
1 files changed, 0 insertions, 83 deletions
diff --git a/tinyusb/hw/bsp/fomu/crt0-vexriscv.S b/tinyusb/hw/bsp/fomu/crt0-vexriscv.S
deleted file mode 100755
index d80a29e0..00000000
--- a/tinyusb/hw/bsp/fomu/crt0-vexriscv.S
+++ /dev/null
@@ -1,83 +0,0 @@
-.global main
-.global isr
-
-.section .text.start
-.global _start
-
-_start:
- j crt_init
-
-.section .text
-.global trap_entry
-trap_entry:
- sw x1, - 1*4(sp)
- sw x5, - 2*4(sp)
- sw x6, - 3*4(sp)
- sw x7, - 4*4(sp)
- sw x10, - 5*4(sp)
- sw x11, - 6*4(sp)
- sw x12, - 7*4(sp)
- sw x13, - 8*4(sp)
- sw x14, - 9*4(sp)
- sw x15, -10*4(sp)
- sw x16, -11*4(sp)
- sw x17, -12*4(sp)
- sw x28, -13*4(sp)
- sw x29, -14*4(sp)
- sw x30, -15*4(sp)
- sw x31, -16*4(sp)
- addi sp,sp,-16*4
- call isr
- lw x1 , 15*4(sp)
- lw x5, 14*4(sp)
- lw x6, 13*4(sp)
- lw x7, 12*4(sp)
- lw x10, 11*4(sp)
- lw x11, 10*4(sp)
- lw x12, 9*4(sp)
- lw x13, 8*4(sp)
- lw x14, 7*4(sp)
- lw x15, 6*4(sp)
- lw x16, 5*4(sp)
- lw x17, 4*4(sp)
- lw x28, 3*4(sp)
- lw x29, 2*4(sp)
- lw x30, 1*4(sp)
- lw x31, 0*4(sp)
- addi sp,sp,16*4
- mret
-
-.text
-crt_init:
- la sp, _estack - 4
- la a0, trap_entry
- csrw mtvec, a0
-
-bss_init:
- la a0, _sbss
- la a1, _ebss + 4
-bss_loop:
- beq a0,a1,bss_done
- sw zero,0(a0)
- add a0,a0,4
- j bss_loop
-bss_done:
-
- /* Load DATA */
- la t0, _etext
- la t1, _srelocate
- la t2, _erelocate + 4
-3:
- lw t3, 0(t0)
- sw t3, 0(t1)
- /* _edata is aligned to 4 bytes. Use word-xfers. */
- addi t0, t0, 4
- addi t1, t1, 4
- bltu t1, t2, 3b
-
- li a0, 0x880 //880 enable timer + external interrupt sources (until mstatus.MIE is set, they will never trigger an interrupt)
- csrw mie,a0
-
- call main
-infinite_loop:
- j infinite_loop