os_cpu_c.txt

来自「针对STM32F103的UCOS移植」· 文本 代码 · 共 185 行

TXT
185
字号
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 942] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\os_cpu_c.o --depend=.\rvmdk\os_cpu_c.d --device=DARMSTM --apcs=interwork -O1 -Otime -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\..\..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\RealView\os_cpu_c.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  OSInitHookBegin PROC
;;;53     #if OS_TMR_EN > 0
;;;54         OSTmrCtr = 0;
000000  492d              LDR      r1,|L1.184|
000002  2000              MOVS     r0,#0
000004  8008              STRH     r0,[r1,#0]  ; OSTmrCtr
;;;55     #endif
;;;56     }
000006  4770              BX       lr
;;;57     #endif
                          ENDP

                  OSInitHookEnd PROC
;;;73     {
;;;74     }
000008  4770              BX       lr
;;;75     #endif
                          ENDP

                  OSTaskCreateHook PROC
;;;91     #if OS_APP_HOOKS_EN > 0
;;;92         App_TaskCreateHook(ptcb);
00000a  f7ffbffe          B.W      App_TaskCreateHook
;;;93     #else
;;;94         (void)ptcb;                                                         /* Prevent compiler warning                                 */
;;;95     #endif
;;;96     }
;;;97     #endif
                          ENDP

                  OSTaskDelHook PROC
;;;114    #if OS_APP_HOOKS_EN > 0
;;;115        App_TaskDelHook(ptcb);
00000e  f7ffbffe          B.W      App_TaskDelHook
;;;116    #else
;;;117        (void)ptcb;                                                         /* Prevent compiler warning                                 */
;;;118    #endif
;;;119    }
;;;120    #endif
                          ENDP

                  OSTaskIdleHook PROC
;;;137    #if OS_APP_HOOKS_EN > 0
;;;138        App_TaskIdleHook();
000012  f7ffbffe          B.W      App_TaskIdleHook
;;;139    #endif
;;;140    }
;;;141    #endif
                          ENDP

                  OSTaskStatHook PROC
;;;157    #if OS_APP_HOOKS_EN > 0
;;;158        App_TaskStatHook();
000016  f7ffbffe          B.W      App_TaskStatHook
;;;159    #endif
;;;160    }
;;;161    #endif
                          ENDP

                  OSTaskStkInit PROC
;;;200                                                   /* Registers stacked as if auto-saved on exception        */
;;;201        *(stk)    = (INT32U)0x01000000L;           /* xPSR                                                   */
00001a  f04f7380          MOV      r3,#0x1000000
00001e  6013              STR      r3,[r2,#0]
;;;202        *(--stk)  = (INT32U)task;                  /* Entry Point                                            */
000020  f8420d04          STR      r0,[r2,#-4]!
;;;203        *(--stk)  = (INT32U)0xFFFFFFFEL;           /* R14 (LR) (init value will cause fault if ever used)    */
000024  f06f0301          MVN      r3,#1
000028  1f10              SUBS     r0,r2,#4
00002a  f8423c04          STR      r3,[r2,#-4]
;;;204        *(--stk)  = (INT32U)0x12121212L;           /* R12                                                    */
00002e  f04f3212          MOV      r2,#0x12121212
000032  f8402d04          STR      r2,[r0,#-4]!
;;;205        *(--stk)  = (INT32U)0x03030303L;           /* R3                                                     */
000036  f04f3203          MOV      r2,#0x3030303
00003a  f8402d04          STR      r2,[r0,#-4]!
;;;206        *(--stk)  = (INT32U)0x02020202L;           /* R2                                                     */
00003e  f04f3202          MOV      r2,#0x2020202
000042  f8402d04          STR      r2,[r0,#-4]!
;;;207        *(--stk)  = (INT32U)0x01010101L;           /* R1                                                     */
000046  1052              ASRS     r2,r2,#1
000048  f8402d04          STR      r2,[r0,#-4]!
;;;208        *(--stk)  = (INT32U)p_arg;                 /* R0 : argument                                          */
00004c  f8401d04          STR      r1,[r0,#-4]!
;;;209    
;;;210                                                   /* Remaining registers saved on process stack             */
;;;211        *(--stk)  = (INT32U)0x11111111L;           /* R11                                                    */
000050  f04f3111          MOV      r1,#0x11111111
000054  f8401d04          STR      r1,[r0,#-4]!
;;;212        *(--stk)  = (INT32U)0x10101010L;           /* R10                                                    */
000058  0111              LSLS     r1,r2,#4
00005a  f8401d04          STR      r1,[r0,#-4]!
;;;213        *(--stk)  = (INT32U)0x09090909L;           /* R9                                                     */
00005e  f04f3109          MOV      r1,#0x9090909
000062  f8401d04          STR      r1,[r0,#-4]!
;;;214        *(--stk)  = (INT32U)0x08080808L;           /* R8                                                     */
000066  00d1              LSLS     r1,r2,#3
000068  f8401d04          STR      r1,[r0,#-4]!
;;;215        *(--stk)  = (INT32U)0x07070707L;           /* R7                                                     */
00006c  f04f3107          MOV      r1,#0x7070707
000070  f8401d04          STR      r1,[r0,#-4]!
;;;216        *(--stk)  = (INT32U)0x06060606L;           /* R6                                                     */
000074  f04f3106          MOV      r1,#0x6060606
000078  f8401d04          STR      r1,[r0,#-4]!
;;;217        *(--stk)  = (INT32U)0x05050505L;           /* R5                                                     */
00007c  f04f3105          MOV      r1,#0x5050505
000080  f8401d04          STR      r1,[r0,#-4]!
;;;218        *(--stk)  = (INT32U)0x04040404L;           /* R4                                                     */
000084  0091              LSLS     r1,r2,#2
000086  f8401d04          STR      r1,[r0,#-4]!
;;;219    
;;;220        return (stk);
;;;221    }
00008a  4770              BX       lr
;;;222    
                          ENDP

                  OSTaskSwHook PROC
;;;241    #if OS_APP_HOOKS_EN > 0
;;;242        App_TaskSwHook();
00008c  f7ffbffe          B.W      App_TaskSwHook
;;;243    #endif
;;;244    }
;;;245    #endif
                          ENDP

                  OSTCBInitHook PROC
;;;261    #if OS_APP_HOOKS_EN > 0
;;;262        App_TCBInitHook(ptcb);
000090  f7ffbffe          B.W      App_TCBInitHook
;;;263    #else
;;;264        (void)ptcb;                                                         /* Prevent compiler warning                                 */
;;;265    #endif
;;;266    }
;;;267    #endif
                          ENDP

                  OSTimeTickHook PROC
;;;282    void  OSTimeTickHook (void)
;;;283    {
000094  b510              PUSH     {r4,lr}
;;;284    #if OS_APP_HOOKS_EN > 0
;;;285        App_TimeTickHook();
000096  f7fffffe          BL       App_TimeTickHook
;;;286    #endif
;;;287    
;;;288    #if OS_TMR_EN > 0
;;;289        OSTmrCtr++;
00009a  4907              LDR      r1,|L1.184|
00009c  8808              LDRH     r0,[r1,#0]  ; OSTmrCtr
00009e  1c40              ADDS     r0,r0,#1
0000a0  b280              UXTH     r0,r0
0000a2  8008              STRH     r0,[r1,#0]  ; OSTmrCtr
;;;290        if (OSTmrCtr >= (OS_TICKS_PER_SEC / OS_TMR_CFG_TICKS_PER_SEC)) {
0000a4  280a              CMP      r0,#0xa
0000a6  d305              BCC      |L1.180|
;;;291            OSTmrCtr = 0;
0000a8  2000              MOVS     r0,#0
0000aa  8008              STRH     r0,[r1,#0]  ; OSTmrCtr
;;;292            OSTmrSignal();
0000ac  e8bd4010          POP      {r4,lr}
0000b0  f7ffbffe          B.W      OSTmrSignal
                  |L1.180|
;;;293        }
;;;294    #endif
;;;295    }
0000b4  bd10              POP      {r4,pc}
;;;296    #endif
                          ENDP

0000b6  0000              DCW      0x0000
                  |L1.184|
0000b8  00000000          DCD      ||.data||

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

                  OSTmrCtr
000000  0000              DCB      0x00,0x00

⌨️ 快捷键说明

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