📄 os_cpu_c.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 919] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\output\os_cpu_c.o --depend=.\output\os_cpu_c.d --device=DARMSTM --apcs=interwork -O1 -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 -IC:\Keil\ARM\INC\ST\STM32F10x --omf_browse=.\output\os_cpu_c.crf ..\..\..\..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\RealView\os_cpu_c.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=2
OSInitHookBegin PROC
;;;71 #endif
;;;72 }
000000 4770 BX lr
;;;73 #endif
ENDP
OSInitHookEnd PROC
;;;89 {
;;;90 }
000002 4770 BX lr
;;;91 #endif
ENDP
OSTaskCreateHook PROC
;;;107 #if OS_APP_HOOKS_EN > 0
;;;108 App_TaskCreateHook(ptcb);
000004 f7fff7ff B.W App_TaskCreateHook
;;;109 #else
;;;110 (void)ptcb; /* Prevent compiler warning */
;;;111 #endif
;;;112 }
;;;113 #endif
ENDP
OSTaskDelHook PROC
;;;130 #if OS_APP_HOOKS_EN > 0
;;;131 App_TaskDelHook(ptcb);
000008 f7fff7ff B.W App_TaskDelHook
;;;132 #else
;;;133 (void)ptcb; /* Prevent compiler warning */
;;;134 #endif
;;;135 }
;;;136 #endif
ENDP
OSTaskIdleHook PROC
;;;153 #if OS_APP_HOOKS_EN > 0
;;;154 App_TaskIdleHook();
00000c f7fff7ff B.W App_TaskIdleHook
;;;155 #endif
;;;156 }
;;;157 #endif
ENDP
OSTaskStatHook PROC
;;;173 #if OS_APP_HOOKS_EN > 0
;;;174 App_TaskStatHook();
000010 f7fff7ff B.W App_TaskStatHook
;;;175 #endif
;;;176 }
;;;177 #endif
ENDP
OSTaskStkInit PROC
;;;216 /* Registers stacked as if auto-saved on exception */
;;;217 *(stk) = (INT32U)0x01000000L; /* xPSR */
000014 f04ff04f MOV r3,#0x1000000
000018 6013 STR r3,[r2,#0]
;;;218 *(--stk) = (INT32U)task; /* Entry Point */
00001a f842f842 STR r0,[r2,#-4]!
;;;219 *(--stk) = (INT32U)0xFFFFFFFEL; /* R14 (LR) (init value will cause fault if ever used)*/
00001e 1f12 SUBS r2,r2,#4
000020 f06ff06f MVN r3,#1
000024 4610 MOV r0,r2
000026 6013 STR r3,[r2,#0]
;;;220 *(--stk) = (INT32U)0x12121212L; /* R12 */
000028 f04ff04f MOV r2,#0x12121212
00002c f840f840 STR r2,[r0,#-4]!
;;;221 *(--stk) = (INT32U)0x03030303L; /* R3 */
000030 f04ff04f MOV r2,#0x3030303
000034 f840f840 STR r2,[r0,#-4]!
;;;222 *(--stk) = (INT32U)0x02020202L; /* R2 */
000038 f04ff04f MOV r2,#0x2020202
00003c f840f840 STR r2,[r0,#-4]!
;;;223 *(--stk) = (INT32U)0x01010101L; /* R1 */
000040 1052 ASRS r2,r2,#1
000042 f840f840 STR r2,[r0,#-4]!
;;;224 *(--stk) = (INT32U)p_arg; /* R0 : argument */
000046 f840f840 STR r1,[r0,#-4]!
;;;225
;;;226 /* Remaining registers saved on process stack */
;;;227 *(--stk) = (INT32U)0x11111111L; /* R11 */
00004a f04ff04f MOV r1,#0x11111111
00004e f840f840 STR r1,[r0,#-4]!
;;;228 *(--stk) = (INT32U)0x10101010L; /* R10 */
000052 0111 LSLS r1,r2,#4
000054 f840f840 STR r1,[r0,#-4]!
;;;229 *(--stk) = (INT32U)0x09090909L; /* R9 */
000058 f04ff04f MOV r1,#0x9090909
00005c f840f840 STR r1,[r0,#-4]!
;;;230 *(--stk) = (INT32U)0x08080808L; /* R8 */
000060 00d1 LSLS r1,r2,#3
000062 f840f840 STR r1,[r0,#-4]!
;;;231 *(--stk) = (INT32U)0x07070707L; /* R7 */
000066 f04ff04f MOV r1,#0x7070707
00006a f840f840 STR r1,[r0,#-4]!
;;;232 *(--stk) = (INT32U)0x06060606L; /* R6 */
00006e f04ff04f MOV r1,#0x6060606
000072 f840f840 STR r1,[r0,#-4]!
;;;233 *(--stk) = (INT32U)0x05050505L; /* R5 */
000076 f04ff04f MOV r1,#0x5050505
00007a f840f840 STR r1,[r0,#-4]!
;;;234 *(--stk) = (INT32U)0x04040404L; /* R4 */
00007e 0091 LSLS r1,r2,#2
000080 f840f840 STR r1,[r0,#-4]!
;;;235
;;;236 return (stk);
;;;237 }
000084 4770 BX lr
;;;238
ENDP
OSTaskSwHook PROC
;;;257 #if OS_APP_HOOKS_EN > 0
;;;258 App_TaskSwHook();
000086 f7fff7ff B.W App_TaskSwHook
;;;259 #endif
;;;260 }
;;;261 #endif
ENDP
OSTCBInitHook PROC
;;;277 #if OS_APP_HOOKS_EN > 0
;;;278 App_TCBInitHook(ptcb);
00008a f7fff7ff B.W App_TCBInitHook
;;;279 #else
;;;280 (void)ptcb; /* Prevent compiler warning */
;;;281 #endif
;;;282 }
;;;283 #endif
ENDP
OSTimeTickHook PROC
;;;310 #endif
;;;311 }
00008e 4770 BX lr
;;;312 #endif
ENDP
OS_CPU_SysTickHandler PROC
;;;329 void OS_CPU_SysTickHandler (void)
;;;330 {
000090 b510 PUSH {r4,lr}
;;;331 OS_CPU_SR cpu_sr;
;;;332
;;;333
;;;334 OS_ENTER_CRITICAL(); /* Tell uC/OS-II that we are starting an ISR */
000092 f7fff7ff BL OS_CPU_SR_Save
;;;335 OSIntNesting++;
000096 4a10 LDR r2,|L1.216|
000098 7811 LDRB r1,[r2,#0] ; OSIntNesting
00009a 1c49 ADDS r1,r1,#1
00009c 7011 STRB r1,[r2,#0] ; OSIntNesting
;;;336 OS_EXIT_CRITICAL();
00009e f7fff7ff BL OS_CPU_SR_Restore
;;;337
;;;338 OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */
0000a2 f7fff7ff BL OSTimeTick
;;;339
;;;340 OSIntExit(); /* Tell uC/OS-II that we are leaving the ISR */
0000a6 e8bde8bd POP {r4,lr}
0000aa f7fff7ff B.W OSIntExit
;;;341 }
;;;342
ENDP
OS_CPU_SysTickInit PROC
;;;356 void OS_CPU_SysTickInit (void)
;;;357 {
0000ae b510 PUSH {r4,lr}
;;;358 INT32U cnts;
;;;359
;;;360
;;;361 cnts = OS_CPU_SysTickClkFreq() / OS_TICKS_PER_SEC;
0000b0 f7fff7ff BL OS_CPU_SysTickClkFreq
0000b4 f44ff44f MOV r1,#0x3e8
0000b8 fbb0fbb0 UDIV r1,r0,r1
;;;362
;;;363 OS_CPU_CM3_NVIC_ST_RELOAD = (cnts - 1);
0000bc 1e49 SUBS r1,r1,#1
0000be f04ff04f MOV r0,#0xe000e000
0000c2 6141 STR r1,[r0,#0x14]
;;;364 /* Enable timer. */
;;;365 OS_CPU_CM3_NVIC_ST_CTRL |= OS_CPU_CM3_NVIC_ST_CTRL_CLK_SRC | OS_CPU_CM3_NVIC_ST_CTRL_ENABLE;
0000c4 6901 LDR r1,[r0,#0x10]
0000c6 f041f041 ORR r1,r1,#5
0000ca 6101 STR r1,[r0,#0x10]
;;;366 /* Enable timer interrupt. */
;;;367 OS_CPU_CM3_NVIC_ST_CTRL |= OS_CPU_CM3_NVIC_ST_CTRL_INTEN;
0000cc 6901 LDR r1,[r0,#0x10]
0000ce f041f041 ORR r1,r1,#2
0000d2 6101 STR r1,[r0,#0x10]
;;;368 }
0000d4 bd10 POP {r4,pc}
ENDP
0000d6 0000 DCW 0x0000
|L1.216|
0000d8 00000000 DCD OSIntNesting
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -