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

📄 os_cpu_c.txt

📁 ATMEL ARM7 SAM64 Porting ucos / Keil ARM VER3.04。不同于其它
💻 TXT
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\ULINK-RAM\Obj\os_cpu_c.o --device=DARMATS --apcs=interwork -I..\..\..\..\uCOS-II\Source -I..\..\..\..\uCOS-II\Ports\ARM\Generic\KEILRV -I.\APP -I.\BSP -IC:\DEVELOP\Keil\ARM\INC\Atmel\SAM7S ..\..\..\..\uCOS-II\Ports\ARM\Generic\KEILRV\os_cpu_c.c]

                          ARM

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

                  OSInitHookBegin PROC
;;;50     {
;;;51     }
000000  e12fff1e          BX       lr
                          ENDP

                  OSInitHookEnd PROC
;;;71     #endif
;;;72     }
000004  e12fff1e          BX       lr
                          ENDP

                  OSTaskCreateHook PROC
;;;93     #endif
;;;94     }
000008  e12fff1e          BX       lr
                          ENDP

                  OSTaskDelHook PROC
;;;112        (void)ptcb;                        /* Prevent compiler warning                                     */
;;;113    }
00000c  e12fff1e          BX       lr
                          ENDP

                  OSTaskIdleHook PROC
;;;130    {
;;;131    }
000010  e12fff1e          BX       lr
                          ENDP

                  OSTaskStatHook PROC
;;;147    {
;;;148    }
000014  e12fff1e          BX       lr
                          ENDP

                  OSTaskStkInit PROC
;;;180    OS_STK *OSTaskStkInit (void (*task)(void *p_arg), void *p_arg, OS_STK *ptos, INT16U opt)
;;;181    {
000018  e1a03000          MOV      r3,r0
;;;182        OS_STK *stk;
;;;183    
;;;184    
;;;185        opt      = opt;                         /* 'opt' is not used, prevent warning                      */
;;;186        stk      = ptos;                        /* Load stack pointer                                      */
;;;187        *(stk)   = (OS_STK)task;                /* Entry Point                                             */
;;;188        *(--stk) = (INT32U)0x14L;               /* R14 (LR)                                                */
00001c  e5820000          STR      r0,[r2,#0]
000020  e3a0c014          MOV      r12,#0x14
000024  e2420004          SUB      r0,r2,#4
000028  e502c004          STR      r12,[r2,#-4]
;;;189        *(--stk) = (INT32U)0x12L;               /* R12                                                     */
00002c  e3a02012          MOV      r2,#0x12
000030  e5002004          STR      r2,[r0,#-4]
;;;190        *(--stk) = (INT32U)0x11L;               /* R11                                                     */
000034  e3a02011          MOV      r2,#0x11
000038  e5002008          STR      r2,[r0,#-8]
;;;191        *(--stk) = (INT32U)0x10L;               /* R10                                                     */
00003c  e3a02010          MOV      r2,#0x10
000040  e500200c          STR      r2,[r0,#-0xc]
;;;192        *(--stk) = (INT32U)0x09L;               /* R9                                                      */
000044  e3a02009          MOV      r2,#9
000048  e5002010          STR      r2,[r0,#-0x10]
;;;193        *(--stk) = (INT32U)0x08L;               /* R8                                                      */
00004c  e3a02008          MOV      r2,#8
000050  e5002014          STR      r2,[r0,#-0x14]
;;;194        *(--stk) = (INT32U)0x07L;               /* R7                                                      */
000054  e3a02007          MOV      r2,#7
000058  e5002018          STR      r2,[r0,#-0x18]
;;;195        *(--stk) = (INT32U)0x06L;               /* R6                                                      */
00005c  e3a02006          MOV      r2,#6
000060  e500201c          STR      r2,[r0,#-0x1c]
;;;196        *(--stk) = (INT32U)0x05L;               /* R5                                                      */
000064  e3a02005          MOV      r2,#5
000068  e5002020          STR      r2,[r0,#-0x20]
;;;197        *(--stk) = (INT32U)0x04L;               /* R4                                                      */
00006c  e3a02004          MOV      r2,#4
000070  e5002024          STR      r2,[r0,#-0x24]
;;;198        *(--stk) = (INT32U)0x03L;               /* R3                                                      */
000074  e3a02003          MOV      r2,#3
000078  e5002028          STR      r2,[r0,#-0x28]
;;;199        *(--stk) = (INT32U)0x02L;               /* R2                                                      */
00007c  e3a02002          MOV      r2,#2
000080  e500202c          STR      r2,[r0,#-0x2c]
;;;200        *(--stk) = (INT32U)0x01L;               /* R1                                                      */
000084  e3a02001          MOV      r2,#1
;;;201        *(--stk) = (INT32U)p_arg;               /* R0 : argument                                           */
000088  e240c034          SUB      r12,r0,#0x34
00008c  e88c0006          STM      r12,{r1,r2}
;;;202        *(--stk) = (INT32U)ARM_SYS_MODE;        /* CPSR  (Enable both IRQ and FIQ interrupts)              */
000090  e3a0101f          MOV      r1,#0x1f
;;;203    
;;;204        if ((INT32U)task & 0x1)                 /* See if task is Thumb mode                               */
000094  e3130001          TST      r3,#1
000098  e5201038          STR      r1,[r0,#-0x38]!       ;202
;;;205        	*stk = ARM_SYS_MODE|ARM_MODE_THUMB; /* If yes, Set the T-bit                                   */
00009c  13a0103f          MOVNE    r1,#0x3f
0000a0  15801000          STRNE    r1,[r0,#0]
;;;206    
;;;207        return (stk);
;;;208    }
0000a4  e12fff1e          BX       lr
                          ENDP

                  OSTCBInitHook PROC
;;;248        (void)ptcb;                                            /* Prevent Compiler warning                 */
;;;249    }
0000a8  e12fff1e          BX       lr
                          ENDP

                  OSTimeTickHook PROC
;;;269    #endif
;;;270    }
0000ac  e12fff1e          BX       lr
                          ENDP


⌨️ 快捷键说明

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