ibex_demo/startup.s

129 lines
3.0 KiB
ArmAsm
Raw Permalink Normal View History

2020-05-30 14:42:07 +00:00
.section .text
.global Reset_Handler
Reset_Handler:
mv x1, x0
mv x2, x1
mv x3, x1
mv x4, x1
mv x5, x1
mv x6, x1
mv x7, x1
mv x8, x1
mv x9, x1
mv x10, x1
mv x11, x1
mv x12, x1
mv x13, x1
mv x14, x1
mv x15, x1
mv x16, x1
mv x17, x1
mv x18, x1
mv x19, x1
mv x20, x1
mv x21, x1
mv x22, x1
mv x23, x1
mv x24, x1
mv x25, x1
mv x26, x1
mv x27, x1
mv x28, x1
mv x29, x1
mv x30, x1
mv x31, x1
.option push
.option norelax
la gp, __global_pointer$
.option pop
la sp, _estack
la x25, _sidata
la x26, _sdata
la x27, _edata
bge x26, x27, copy_data_end
copy_data:
lw x24, 0(x25)
sw x24, 0(x26)
addi x25, x25, 4
addi x26, x26, 4
blt x26, x27, copy_data
2020-05-30 14:42:07 +00:00
copy_data_end:
/* Zero .bss section */
la x26, _sbss
la x27, _ebss
bge x26, x27, zero_bss_end
zero_bss:
sw x0, 0(x26)
addi x26, x26, 4
blt x26, x27, zero_bss
2020-05-30 14:42:07 +00:00
zero_bss_end:
jal x1, System_Init
addi x10, x0, 0
addi x11, x0, 0
jal x1, main
inf_loop:
jal x0, inf_loop
Default_IRQHandler:
jal x0, Generic_ExceptionCallback
Timer_IRQHandler:
jal x0, Generic_TimerCallback
2020-06-02 13:34:58 +00:00
Trap_Handler:
jal x0, Generic_TrapCallback
2020-05-30 14:42:07 +00:00
/* ISR vector table */
.section .isr_vectors, "ax"
.option norvc;
.org 0x00
2020-06-02 13:34:58 +00:00
jal x0, Trap_Handler /* Trap IRQ (IRQ 0) */
jal x0, Default_IRQHandler /* IRQ 1 */
jal x0, Default_IRQHandler /* IRQ 2 */
jal x0, Default_IRQHandler /* IRQ 3 */
jal x0, Default_IRQHandler /* IRQ 4 */
jal x0, Default_IRQHandler /* IRQ 5 */
jal x0, Default_IRQHandler /* IRQ 6 */
jal x0, Timer_IRQHandler /* Timer IRQ (IRQ 7) */
jal x0, Default_IRQHandler /* IRQ 8 */
jal x0, Default_IRQHandler /* IRQ 9 */
jal x0, Default_IRQHandler /* IRQ 10 */
jal x0, Default_IRQHandler /* External IRQ (IRQ 11) */
jal x0, Default_IRQHandler /* IRQ 12 */
jal x0, Default_IRQHandler /* IRQ 13 */
jal x0, Default_IRQHandler /* IRQ 14 */
jal x0, Default_IRQHandler /* IRQ 15 */
jal x0, Default_IRQHandler /* Fast IRQ 0 (IRQ 16) */
jal x0, Default_IRQHandler /* Fast IRQ 1 (IRQ 17) */
jal x0, Default_IRQHandler /* Fast IRQ 2 (IRQ 18) */
jal x0, Default_IRQHandler /* Fast IRQ 3 (IRQ 19) */
jal x0, Default_IRQHandler /* Fast IRQ 4 (IRQ 20) */
jal x0, Default_IRQHandler /* Fast IRQ 5 (IRQ 21) */
jal x0, Default_IRQHandler /* Fast IRQ 6 (IRQ 22) */
jal x0, Default_IRQHandler /* Fast IRQ 7 (IRQ 23) */
jal x0, Default_IRQHandler /* Fast IRQ 8 (IRQ 24) */
jal x0, Default_IRQHandler /* Fast IRQ 9 (IRQ 25) */
jal x0, Default_IRQHandler /* Fast IRQ 10 (IRQ 26) */
jal x0, Default_IRQHandler /* Fast IRQ 11 (IRQ 27) */
jal x0, Default_IRQHandler /* Fast IRQ 12 (IRQ 28) */
jal x0, Default_IRQHandler /* Fast IRQ 13 (IRQ 29) */
jal x0, Default_IRQHandler /* Fast IRQ 14 (IRQ 30) */
jal x0, NMI_Handler /* Non-Maskable IRQ (IRQ 31) */
2020-05-30 14:42:07 +00:00
jal x0, Reset_Handler