84 lines
811 B
ArmAsm
84 lines
811 B
ArmAsm
.text
|
|
.global _start
|
|
|
|
_start:
|
|
_reset_handler:
|
|
xor r0, r0, r0
|
|
mvhi r1, hi(_start)
|
|
ori r1, r1, lo(_start)
|
|
wcsr eba, r1
|
|
wcsr deba, r1
|
|
mvhi sp, hi(_fstack)
|
|
ori sp, sp, lo(_fstack)
|
|
bi _main
|
|
|
|
_breakpoint_handler:
|
|
ori r25, r25, 1
|
|
addi ra, ba, 4
|
|
ret
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
_instruction_bus_error_handler:
|
|
ori r25, r25, 2
|
|
addi ra, ea, 4
|
|
ret
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
_watchpoint_handler:
|
|
ori r25, r25, 4
|
|
addi ra, ba, 4
|
|
ret
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
_data_bus_error_handler:
|
|
ori r25, r25, 8
|
|
addi ra, ea, 4
|
|
ret
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
_divide_by_zero_handler:
|
|
ori r25, r25, 16
|
|
addi ra, ea, 4
|
|
ret
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
_interrupt_handler:
|
|
ori r25, r25, 32
|
|
addi ra, ea, 4
|
|
ret
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
|
|
_system_call_handler:
|
|
ori r25, r25, 64
|
|
addi ra, ea, 4
|
|
ret
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
|