⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sched.c.s

📁 ADSV1.2可以编译的早期linux版本
💻 S
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-O0 -browseinfo "0xff
" -S   -g+ -apcs /interwork -fk -J:cw:]
        CODE32

        AREA ||.text||, CODE, READONLY

show_task PROC
|L1.0|
        BX       lr
        ENDP

show_stat PROC
        STR      lr,[sp,#-4]!
        MOV      r2,#0
|L1.12|
        CMP      r2,#0x40
        BGE      |L1.68|
        B        |L1.32|
|L1.24|
        ADD      r2,r2,#1
        B        |L1.12|
|L1.32|
        LDR      r0,|L1.488|
        LDR      r0,[r0,r2,LSL #2]
        CMP      r0,#0
        BEQ      |L1.64|
        LDR      r0,|L1.488|
        LDR      r1,[r0,r2,LSL #2]
        MOV      r0,r2
        BL       show_task
|L1.64|
        B        |L1.24|
|L1.68|
        LDR      lr,[sp],#4
        BX       lr
        ENDP

schedule PROC
        STMFD    sp!,{r3-r7,lr}
        LDR      r4,|L1.492|
|L1.84|
        LDR      r0,|L1.488|
        CMP      r4,r0
        BLS      |L1.256|
        B        |L1.108|
|L1.100|
        SUB      r4,r4,#4
        B        |L1.84|
|L1.108|
        LDR      r0,[r4,#0]
        CMP      r0,#0
        BEQ      |L1.252|
        LDR      r0,[r4,#0]
        LDR      r0,[r0,#0x240]
        CMP      r0,#0
        BEQ      |L1.192|
        LDR      r0,[r4,#0]
        LDR      r0,[r0,#0x240]
        LDR      r1,|L1.496|
        LDR      r1,[r1,#0]  ; jiffies
        CMP      r0,r1
        BGE      |L1.192|
        LDR      r1,[r4,#0]
        ADD      r0,r1,#0x14
        LDR      r1,[r1,#0x14]
        ORR      r1,r1,#0x2000
        STR      r1,[r0,#0]
        MOV      r0,#0
        LDR      r1,[r4,#0]
        STR      r0,[r1,#0x240]
|L1.192|
        LDR      r0,[r4,#0]
        LDR      r0,[r0,#0x14]
        LDR      r1,[r4,#0]
        LDR      r1,[r1,#0x218]
        BIC      r1,r1,#0x40000
        BIC      r1,r1,#0x100
        BICS     r0,r0,r1
        BEQ      |L1.252|
        LDR      r0,[r4,#0]
        LDR      r0,[r0,#8]
        CMP      r0,#1
        BNE      |L1.252|
        MOV      r0,#0
        LDR      r1,[r4,#0]
        STR      r0,[r1,#8]
|L1.252|
        B        |L1.100|
|L1.256|
        NOP      
|L1.260|
        NOP      
        MVN      r6,#0
        MOV      r7,#0
        MOV      r5,#0x40
        LDR      r4,|L1.500|
        NOP      
|L1.284|
        SUB      r0,r5,#1
        MOVS     r5,r0
        BEQ      |L1.368|
        SUB      r0,r4,#4
        MOV      r4,r0
        LDR      r0,[r0,#0]
        CMP      r0,#0
        BNE      |L1.320|
        B        |L1.284|
|L1.320|
        LDR      r0,[r4,#0]
        LDR      r0,[r0,#8]
        CMP      r0,#0
        BNE      |L1.364|
        LDR      r0,[r4,#0]
        LDR      r0,[r0,#0xc]
        CMP      r0,r6
        BLE      |L1.364|
        LDR      r0,[r4,#0]
        LDR      r6,[r0,#0xc]
        MOV      r7,r5
|L1.364|
        B        |L1.284|
|L1.368|
        CMP      r6,#0
        BEQ      |L1.380|
        B        |L1.456|
|L1.380|
        LDR      r4,|L1.492|
|L1.384|
        LDR      r0,|L1.488|
        CMP      r4,r0
        BLS      |L1.452|
        B        |L1.408|
|L1.400|
        SUB      r4,r4,#4
        B        |L1.384|
|L1.408|
        LDR      r0,[r4,#0]
        CMP      r0,#0
        BEQ      |L1.448|
        LDR      r0,[r4,#0]
        LDR      r0,[r0,#0x10]
        LDR      r1,[r4,#0]
        LDR      r1,[r1,#0xc]
        ADD      r0,r0,r1,ASR #1
        LDR      r1,[r4,#0]
        STR      r0,[r1,#0xc]
|L1.448|
        B        |L1.400|
|L1.452|
        B        |L1.260|
|L1.456|
        LDR      r0,|L1.488|
        LDR      r0,[r0,r7,LSL #2]
        LDR      r1,|L1.504|
        STR      r0,[r1,#0]  ; next
        BL       switch_to
        LDMFD    sp!,{r3-r7,lr}
        BX       lr
        ENDP

sched_init PROC
        BX       lr
|L1.488|
        DCD      task
|L1.492|
        DCD      task + 252
|L1.496|
        DCD      ||.bss$2|| + 4
|L1.500|
        DCD      task + 256
|L1.504|
        DCD      ||.bss$2||
        ENDP



        AREA ||.data||, DATA, ALIGN=2

||.data$0||
task0
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x0000000f
        DCD      0x0000000f
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        %        496
        DCD      0x00000000
        DCD      0x00000000
        DCD      0xffffffff
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCW      0x0000
        DCW      0x0000
        DCW      0x0000
        DCW      0x0000
        DCW      0x0000
        DCW      0x0000
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCD      0x00000000
        DCW      0x0000
        DCB      0x00,0x00
        DCD      0x00000000
current
        DCD      task0
task
        DCD      task0
        %        252


        AREA ||.bss||, NOINIT, ALIGN=2

next
||.bss$2||
        % 4
jiffies
        % 4
startup_time
        % 4


        EXPORT sched_init
        EXPORT schedule
        EXPORT show_stat
        EXPORT show_task
        EXPORT startup_time
        EXPORT jiffies
        EXPORT next
        EXPORT task
        EXPORT current
        EXPORT task0

        IMPORT switch_to
        IMPORT ||Lib$$Request$$armlib||, WEAK

        KEEP ||BuildAttributes$$THUMB_ISAv1$M$PE$A:L22$X:L11$S22$IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$PRES8||
||BuildAttributes$$THUMB_ISAv1$M$PE$A:L22$X:L11$S22$IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$PRES8|| EQU 0

        ASSERT {ENDIAN} = "little"
        ASSERT {SWST} = {FALSE}
        ASSERT {NOSWST} = {TRUE}
        ASSERT {INTER} = {TRUE}
        ASSERT {ROPI} = {FALSE}
        ASSERT {RWPI} = {FALSE}
        ASSERT {NOT_SHL} = {TRUE}
        ASSERT {FULL_IEEE} = {FALSE}
        ASSERT {SHL1} = {FALSE}
        ASSERT {SHL2} = {FALSE}
        END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -