main.s 1.61 KiB
.file "main.c"
.section .rodata
.align 2
.LC0:
.ascii "main: Active->Priority: %d\012\015\000"
.text
.align 2
.global main
.type main, %function
main:
@ args = 0, pretend = 0, frame = 2780
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
stmfd sp!, {sl, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #2768
sub sp, sp, #12
ldr sl, .L10
.L9:
add sl, pc, sl
bl InitSwi(PLT)
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
bl kernelInit(PLT)
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
mov r1, #4
ldr r3, .L10+4
ldr r3, [sl, r3]
mov r2, r3
bl CreateTask(PLT)
mov r3, r0
str r3, [fp, #-28]
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
ldr r1, [fp, #-28]
bl pushToScheduler(PLT)
mov r3, #0
str r3, [fp, #-20]
.L2:
ldr r3, [fp, #-2796]
cmp r3, #0
bne .L3
mov r3, #0
str r3, [fp, #-20]
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
bl getNextTaskScheduler(PLT)
mov r3, r0
str r3, [fp, #-24]
b .L5
.L3:
ldr r3, [fp, #-2796]
str r3, [fp, #-24]
ldr r3, [fp, #-24]
ldr r3, [r3, #12]
str r3, [fp, #-20]
.L5:
ldr r3, [fp, #-24]
cmp r3, #0
beq .L6
ldr r3, [fp, #-24]
ldr r2, [r3, #32]
mov r0, #1
ldr r3, .L10+8
add r3, sl, r3
mov r1, r3
bl bwprintf(PLT)
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
ldr r1, [fp, #-24]
bl Activate(PLT)
mov r3, r0
str r3, [fp, #-36]
sub r3, fp, #2784
sub r3, r3, #12
mov r0, r3
ldr r1, [fp, #-36]
bl Handle(PLT)
b .L2
.L6:
mov r3, #0
mov r0, r3
sub sp, fp, #16
ldmfd sp, {sl, fp, sp, pc}
.L11:
.align 2
.L10:
.word _GLOBAL_OFFSET_TABLE_-(.L9+8)
.word firstUserTaskChildren(GOT)
.word .LC0(GOTOFF)
.size main, .-main
.ident "GCC: (GNU) 4.0.2"