📄 tmpreset.s
字号:
# 1 "reset.s" # 1 "cpu.h" 1 # 22 "reset.s" 2# 1 "cpuio.h" 1# 23 "reset.s" 2 . 1 .equ MonStackSz, 4096 .equ FiqStackSz, 4096 .equ IrqStackSz, 4096 .equ AbtStackSz, 4096 .equ UndStackSz, 4096 .equ SysStackSz, 4096 .global MonStack .global FiqStack .global IrqStack .global AbtStack .global UndStack .global SysStack .comm MonStack, MonStackSz .comm FiqStack, FiqStackSz .comm IrqStack, IrqStackSz .comm AbtStack, AbtStackSz .comm UndStack, UndStackSz .comm SysStack, SysStackSz .extern undefined_instruction .extern software_interrupt .extern abort_prefetch .extern abort_data .extern not_used .extern interrupt_request .extern fast_interrupt_request .extern start .global reset .global coldstart .global lukewarmstart .global warmstart .global ipaddr .global etheraddr .global moncomptr .text reset: b do_reset b undefined_instruction b software_interrupt b abort_prefetch b abort_data b not_used b interrupt_request b fast_interrupt_request ipaddr: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff etheraddr: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff @@ @@ Pointer to the 'moncom' link function at 0x00000050 @@ moncomptr: .long moncom do_reset: coldstart: mov r1, #0x90000000 add r1, r1, #0x50000 mov r2, #0x0 str r2, [r1, #0x4] mov r1, #0x90000000 add r1, r1, #0x20000 mov r2, #0x0b str r2, [r1, #0x14] # 210 "reset.s" mov r1, #0xA0000000 ldr r2, =0xAAAAAA9F str r2, [r1, #0x04] ldr r2, =0xAAAAAAAA str r2, [r1, #0x08] str r2, [r1, #0x0C] ldr r2, =0xAAAAAA7F str r2, [r1, #0x20] ldr r2, =0xAAAAAAAA str r2, [r1, #0x24] str r2, [r1, #0x28] ldr r2, =0x003001B1 str r2, [r1, #0x1C] ldr r2, =0x72547254 str r2, [r1, #0x00] ldr r1, =0xC0000000.rept 8 ldr r0, [r1].endr mov r1, #0xA0000000 ldr r2, =0x7254a265 str r2, [r1, #0x00] ldr r2, =0x47704770 str r2, [r1, #0x10] ldr r2, =0x22212419 str r2, [r1, #0x14] ldr r2, =0x42196669 str r2, [r1, #0x2C] ldr r2, =0xafccafcc str r2, [r1, #0x30] ldr r2, =0x994a994a str r2, [r1, #0x18] # 348 "reset.s" mov r0, #(3<<4) lukewarmstart: mov r11, r0 mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0x11 msr CPSR_c, r0 ldr sp, =(FiqStack + FiqStackSz - 4) mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0x12 msr CPSR_c, r0 ldr sp, =(IrqStack + IrqStackSz - 4) mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0x17 msr CPSR_c, r0 ldr sp, =(AbtStack + AbtStackSz - 4) mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0x1b msr CPSR_c, r0 ldr sp, =(UndStack + UndStackSz - 4) mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0x1f msr CPSR_c, r0 ldr sp, =(SysStack + SysStackSz - 4) mov r0, r11 b warmstart bailout: mov r0, #(7<<4) b warmstart warmstart: mov r11, r0 mrs r0, cpsr bic r0, r0, #0x1f orr r0, r0, #0x13 msr CPSR_c, r0 ldr sp, =(MonStack + MonStackSz - 4) mov r0, r11jump_to_c: bl start b reset.align 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -