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

📄 os_cpu_c.s

📁 杭州立宇泰豪华型44B0开发板
💻 S
字号:
; generated by Norcroft  ARM C vsn 4.90 (ARM Ltd SDT2.50) [Build number 80]
;input para: a4,a3,a2,a1;opt,*ptos,*pada,*task,
        AREA |C$$code|, CODE, READONLY

|x$codeseg| DATA

OSTaskStkInit
        SUB      a4,a3,#4         ;stk=(unsigned int *)ptos,stk--
        STR      a1,[a4],#-4      ;*--stk = (unsigned int) task;
        STR      a1,[a4],#-4      ;*--stk = (unsigned int) task;
        STR      a3,[a4,#0]       ;a3->[a4|0]
        SUB      a3,a4,#4         ;a3=a4-4
        MOV      a1,#0            ;
        STR      a1,[a3],#-4      ;*--stk = 0;
        STR      a1,[a3],#-4      ;*--stk = 0;
        STR      a1,[a3],#-4
        STR      a1,[a3],#-4
        STR      a1,[a3],#-4
        STR      a1,[a3],#-4
        STR      a1,[a3],#-4
        STR      a1,[a3],#-4
        STR      a1,[a3],#-4
        STR      a1,[a3],#-4
        STR      a1,[a3],#-4      
        STR      a1,[a3,#0]       
        MOV      a1,a2            
        SUB      a2,a3,#4         
        STR      a1,[a2],#-4      ;*--stk = (unsigned int) pdata;
        MOV      a1,#0x13         ;a1=0x13 SVCmode
        STR      a1,[a2,#0]       ;*--stk = (SVC32MODE|0x0);
        MOV      a3,a1            
        SUB      a1,a2,#4         
        STR      a3,[a1,#0]       ;*--stk = (SVC32MODE|0x0);
        MOV      pc,lr

OSTaskCreateHook
        MOV      pc,lr     ;return

OSTaskDelHook
        MOV      pc,lr     ;return

OSTaskSwHook
        MOV      pc,lr     ;return

OSTaskStatHook
        MOV      pc,lr     ;return

OSTimeTickHook
        MOV      pc,lr     ;return

ARMTargetInit
        STR      lr,[sp,#-4]!
        ADD      a1,pc,#L0000d8-.-8
        BL       uHALr_printf
        ADD      a1,pc,#L0000f0-.-8
        BL       uHALr_printf
        ADD      a1,pc,#L000100-.-8
        BL       uHALr_printf
        ADD      a1,pc,#L000114-.-8
        BL       uHALr_printf
        ADD      a1,pc,#L000118-.-8
        BL       uHALr_printf
        ADD      a1,pc,#L000114-.-8
        BL       uHALr_printf
        BL       uHALr_ResetMMU
        BL       ARMDisableInt
        LDR      a2,[pc, #L00012c-.-8]
        LDR      a1,[pc, #L000130-.-8]
        MOV      a3,#0
        BL       uHALir_DefineIRQ
        BL       uHALr_InitInterrupts
        LDR      lr,[sp],#4
        B        uHALr_InitTimers
L0000d8
        DCB      "uCOS"
        DCB      "-II "
        DCB      "Runn"
        DCB      "ing "
        DCB      "on a"
        DCB      "\0\0\0\0"
L0000f0
        DCB      " SAM"
        DCB      "SUNG"
        DCB      " boa"
        DCB      "rd\n\0"
L000100
        DCB      "Vers"
        DCB      "ion "
        DCB      "0.01"
        DCB      "  CO"
        DCB      "iNS\0"
L000114
        DCB      "\n\0\0\0"
L000118
        DCB      "Date"
        DCB      ": Fe"
        DCB      "b 22"
        DCB      " 200"
        DCB      "1\n\0\0"
L00012c
        DCD      IrqFinish
L000130
        DCD      IrqStart

ARMTargetStart
        STR      lr,[sp,#-4]!
        LDR      a1,[pc, #L000158-.-8]
        ADD      a2,pc,#L00015c-.-8
        BL       uHALr_RequestSystemTimer
        CMP      a1,#0
        ADDLE    a1,pc,#L000164-.-8
        BLLE     uHALr_printf
        LDR      lr,[sp],#4
        B        uHALr_InstallSystemTimer
L000158
        DCD      OSTimeTick
L00015c
        DCB      "uCOS"
        DCB      "-II\0"
L000164
        DCB      "Time"
        DCB      "r/IR"
        DCB      "Q bu"
        DCB      "sy\n\0"

OSIntCtxSw
|L000174.J2.OSIntCtxSw|
        LDR      a1,[pc, #L000184-.-8]
        MOV      a2,#1
        STR      a2,[a1,#0]
        MOV      pc,lr
L000184
        DCD      |x$dataseg|

IrqStart
        LDR      a1,[pc, #L00019c-.-8]
        LDRB     a2,[a1,#0]
        ADD      a2,a2,#1
        STRB     a2,[a1,#0]
        MOV      pc,lr
L00019c
        DCD      OSIntNesting

IrqFinish
        STR      lr,[sp,#-4]!
        BL       OSIntExit
        LDR      a1,[pc, #L000184-.-8]
        LDR      a1,[a1,#0]
        CMP      a1,#0
        LDRNE    a1,[pc, #L0001bc-.-8]
        LDR      pc,[sp],#4
L0001bc
        DCD      IRQContextSwap

        AREA |C$$data|, DATA

|x$dataseg|
need_to_swap_context
        DCD      0x00000000

        EXPORT OSIntCtxSw
        EXPORT need_to_swap_context
        EXPORT ARMTargetStart
        EXPORT IrqStart
        EXPORT IrqFinish
        EXPORT ARMTargetInit
        EXPORT OSTimeTickHook
        EXPORT OSTaskStatHook
        EXPORT OSTaskSwHook
        EXPORT OSTaskDelHook
        EXPORT OSTaskCreateHook
        EXPORT OSTaskStkInit

        IMPORT IRQContextSwap
        IMPORT OSIntExit
        IMPORT OSIntNesting
        IMPORT uHALr_InstallSystemTimer
        IMPORT uHALr_RequestSystemTimer
        IMPORT OSTimeTick
        IMPORT uHALr_InitTimers
        IMPORT uHALr_InitInterrupts
        IMPORT uHALir_DefineIRQ
        IMPORT ARMDisableInt
        IMPORT uHALr_ResetMMU
        IMPORT uHALr_printf
        IMPORT |Lib$$Request$$armlib$$_cn.32l|, WEAK

        END

⌨️ 快捷键说明

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