diff options
Diffstat (limited to 'libgloss/xstormy16/crt0_stub.s')
-rw-r--r-- | libgloss/xstormy16/crt0_stub.s | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/libgloss/xstormy16/crt0_stub.s b/libgloss/xstormy16/crt0_stub.s deleted file mode 100644 index 14ec47146..000000000 --- a/libgloss/xstormy16/crt0_stub.s +++ /dev/null @@ -1,151 +0,0 @@ -# XSTORMY16 startup code for GDB stub. - -# CPU Data for Sanyo EVA debugger at 0x7F00 - .section .cpudata,"ax" - .byte 0x00,0x02,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x44,0x35,0x39,0x52,0x30,0x30,0x30,0x30,0x2E,0x4F,0x50,0x54,0x00,0x00,0x00,0x00 - .byte 0x4c,0x43,0x35,0x39,0x52,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x80,0x00,0x20,0x48,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x01,0x12,0x31,0x23,0x59 - -# Interrupt vectors at 0x8000. - .section .int_vec,"ax" - .global _start - .align 1 -_start: - ;; Reset, watchdog timer interrupt - jmpf _int_reset - ;; base timer interrupt - jmpf _int_basetimer - ;; timer 0 - jmpf _int_timer0 - ;; timer 1 - jmpf _int_timer1 - ;; SIO0 interrupt - jmpf _int_sio0 - ;; SIO1 interrupt - jmpf _int_sio1 - ;; port0 interrupt - jmpf _int_port0 - ;; port1 interrupt - jmpf _int_port1 - - .org 0x80 - ;; sys interrupt (0x8080) - jmpf _int_sys - - ;; Application void write(char *buf, int nbytes) - ;; This jmps to a stub function to packetize the buf for GDB - jmpf gdb_write - ;; Application int read(char *buf, int nbytes) - jmpf gdb_read - - .text -# Reset code, set up memory and call main. -_int_reset: - ;; Set up the application stack pointer. - mov sp,#0x002 - - ;; Zero the data space - mov r0,#_edata - mov r1,#_end - mov r2,#0 -0: mov.w (r0++),r2 - blt r0,r1,0b - - ;; Init the UART - callf uart_init - - ;; Turn on illegal insn trap - mov r0,r14 - set1 r0,#11 - mov r14,r0 - mov.b 0x7f08,#0x11 - mov.b 0x7f09,#0x10 - - ;; "breakpoint" sends us into stub. -0: - .hword 0x0006 - br 0b - -_int_sys: - push r13 - mov r13,#registers - mov.w (r13++),r0 - mov.w (r13++),r1 - mov.w (r13++),r2 - mov.w (r13++),r3 - mov.w (r13++),r4 - mov.w (r13++),r5 - mov.w (r13++),r6 - mov.w (r13++),r7 - mov r0,r8 - mov.w (r13++),r0 - mov r0,r9 - mov.w (r13++),r0 - mov r0,r10 - mov.w (r13++),r0 - mov r0,r11 - mov.w (r13++),r0 - mov r0,r12 - mov.w (r13++),r0 - pop r0 - mov.w (r13++),r0 ; R13 - pop r0 - mov.w (r13++),r0 ; PSW - mov r0,r15 - sub r0,#4 - mov.w (r13++),r0 ; SP - pop r0 - pop r1 - mov.w (r13++),r1 ; PCL - mov.w (r13++),r0 ; PCH - - ;; switch to stub stack and invoke stub - mov sp,#0x700 - callf handle_exception - - mov r0,#registers+34 - mov.w r1,(r0) ; PCH - mov.w r2,(--r0) ; PCL - mov.w r3,(--r0) ; SP - mov r15,r3 - push r2 - push r1 - mov.w r1,(--r0) ; PSW - push r1 - mov.w r1,(--r0) - mov r13,r1 - mov.w r1,(--r0) - mov r12,r1 - mov.w r1,(--r0) - mov r11,r1 - mov.w r1,(--r0) - mov r10,r1 - mov.w r1,(--r0) - mov r9,r1 - mov.w r1,(--r0) - mov r8,r1 - mov.w r7,(--r0) - mov.w r6,(--r0) - mov.w r5,(--r0) - mov.w r4,(--r0) - mov.w r3,(--r0) - mov.w r2,(--r0) - mov.w r1,(--r0) - mov.w r0,(--r0) - iret -1: .size _int_sys,1b-_int_sys - - |