📄 rtx_config.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--thumb --debug -c --asm --interleave -o.\output\rtx_config.o --feedback=.\output\Testat45db161.fed --device=DARMST --apcs=interwork -O0 -Id:\Keil\ARM\INC\ST\71x src\configuration\RTX_Config.c]
THUMB
AREA ||.text.7||, CODE, READONLY, ALIGN=2
os_idle_demon PROC
;;;210
;;;211 for (;;) {
000000 46c0 MOV r8,r8
|L1.2|
000002 e7fe B |L1.2|
;;;212 /* HERE: include here optional user code to be executed when no task runs.*/
;;;213 }
;;;214 } /* end of os_idle_demon */
ENDP
os_tmr_call PROC
;;;222 /* HERE: include here optional user code to be executed on timeout. */
;;;223 info = info;
000004 46c0 MOV r8,r8
;;;224 } /* end of os_tmr_call */
000006 4770 BX lr
ENDP
os_stk_overflow PROC
;;;228 #if (OS_STKCHECK == 1)
;;;229 static void os_stk_overflow (void) {
000008 b510 PUSH {r4,lr}
;;;230 /* This function is called when a stack overflow is detected. */
;;;231 /* 'os_runtask' points to a TCB of a task which has a stack overflow */
;;;232 /* 'task_id' holds a task id for this task */
;;;233 /* HERE: include here optional code to be executed on stack overflow. */
;;;234 static volatile OS_TID task_id;
;;;235
;;;236 /* Get a task identification for a task with stack problem to 'task_id'.*/
;;;237 task_id = os_get_TID (os_runtask);
00000a 48ae LDR r0,|L1.708|
00000c 6800 LDR r0,[r0,#0] ; os_runtask
00000e f7ff fffe BL os_get_TID
000012 49ad LDR r1,|L1.712|
000014 6008 STR r0,[r1,#0] ; task_id@os_stk_overflow_0
;;;238 /* Use a uVision 'RTX Kernel' debug dialog page 'Active Tasks' to */
;;;239 /* check which task has got a stack overflow and needs a bigger stack. */
;;;240 for (;;);
000016 46c0 MOV r8,r8
|L1.24|
000018 e7fe B |L1.24|
;;;241 }
ENDP
os_clock_interrupt0 PROC
;;;245
;;;246 U32 os_clock_interrupt0 (U32 stack) {
00001a b510 PUSH {r4,lr}
00001c 0004 MOVS r4,r0
;;;247 /* Do task switch to clock demon: entered upon a clock interrupt. Saving */
;;;248 /* and restoring context is written in assembly (module: Irq_RTX.s) */
;;;249 OS_TIACK();
00001e 48ab LDR r0,|L1.716|
000020 8b00 LDRH r0,[r0,#0x18]
000022 2101 MOVS r1,#1
000024 0349 LSLS r1,r1,#13
000026 4388 BICS r0,r0,r1
000028 49a8 LDR r1,|L1.716|
00002a 8308 STRH r0,[r1,#0x18]
00002c 48a8 LDR r0,|L1.720|
00002e 8388 STRH r0,[r1,#0x1c]
000030 2001 MOVS r0,#1
000032 49a8 LDR r1,|L1.724|
000034 6008 STR r0,[r1,#0]
;;;250 OS_LOCK();
000036 48a7 LDR r0,|L1.724|
000038 3840 SUBS r0,r0,#0x40
00003a 6800 LDR r0,[r0,#0]
00003c 0840 LSRS r0,r0,#1
00003e 0040 LSLS r0,r0,#1
000040 49a4 LDR r1,|L1.724|
000042 3940 SUBS r1,r1,#0x40
000044 6008 STR r0,[r1,#0]
;;;251 os_runtask->tsk_stack = stack;
000046 489f LDR r0,|L1.708|
000048 6800 LDR r0,[r0,#0] ; os_runtask
00004a 6244 STR r4,[r0,#0x24]
;;;252 os_runtask->full_ctx = __TRUE;
00004c 2101 MOVS r1,#1
00004e 489d LDR r0,|L1.708|
000050 6800 LDR r0,[r0,#0] ; os_runtask
000052 3020 ADDS r0,r0,#0x20
000054 7041 STRB r1,[r0,#1]
;;;253 os_runtask->state = READY;
000056 2001 MOVS r0,#1
000058 499a LDR r1,|L1.708|
00005a 6809 LDR r1,[r1,#0] ; os_runtask
00005c 7048 STRB r0,[r1,#1]
;;;254 os_put_rdy_first (os_runtask);
00005e 4899 LDR r0,|L1.708|
000060 6800 LDR r0,[r0,#0] ; os_runtask
000062 f7ff fffe BL os_put_rdy_first
;;;255 os_runtask = &os_clock_TCB;
000066 489c LDR r0,|L1.728|
000068 4996 LDR r1,|L1.708|
00006a 6008 STR r0,[r1,#0] ; os_runtask
;;;256 os_clock_TCB.state = RUNNING;
00006c 2002 MOVS r0,#2
00006e 499a LDR r1,|L1.728|
000070 7048 STRB r0,[r1,#1] ; os_clock_TCB
;;;257 return (os_runtask->tsk_stack);
000072 4894 LDR r0,|L1.708|
000074 6800 LDR r0,[r0,#0] ; os_runtask
000076 6a40 LDR r0,[r0,#0x24]
;;;258 } /* end of os_clock_interrupt0 */
000078 bc10 POP {r4}
00007a bc08 POP {r3}
00007c 4718 BX r3
ENDP
os_tmr_init PROC
;;;271 /* called at the system startup. */
;;;272 OS_TINIT();
00007e 4897 LDR r0,|L1.732|
000080 4992 LDR r1,|L1.716|
000082 8188 STRH r0,[r1,#0xc]
000084 4896 LDR r0,|L1.736|
000086 8308 STRH r0,[r1,#0x18]
000088 4896 LDR r0,|L1.740|
00008a 8288 STRH r0,[r1,#0x14]
00008c 4896 LDR r0,|L1.744|
00008e 1489 ASRS r1,r1,#18
000090 6188 STR r0,[r1,#0x18]
000092 0400 LSLS r0,r0,#16
000094 2101 MOVS r1,#1
000096 4308 ORRS r0,r0,r1
000098 498e LDR r1,|L1.724|
00009a 6208 STR r0,[r1,#0x20]
00009c 488d LDR r0,|L1.724|
00009e 3840 SUBS r0,r0,#0x40
0000a0 6a00 LDR r0,[r0,#0x20]
0000a2 2101 MOVS r1,#1
0000a4 4308 ORRS r0,r0,r1
0000a6 498b LDR r1,|L1.724|
0000a8 3940 SUBS r1,r1,#0x40
0000aa 6208 STR r0,[r1,#0x20]
;;;273 #if (OS_ROBIN == 1)
;;;274 os_robin_time = OS_ROBINTOUT;
0000ac 2005 MOVS r0,#5
0000ae 4986 LDR r1,|L1.712|
0000b0 1d09 ADDS r1,r1,#4
0000b2 8008 STRH r0,[r1,#0] ; os_robin_time
;;;275 #endif
;;;276 } /* end of os_tmr_init */
0000b4 4770 BX lr
ENDP
os_tmr_reload PROC
;;;282 OS_TREL();
;;;283 } /* end of os_tmr_reload */
0000b6 4770 BX lr
ENDP
os_tmr_inspect_cnt PROC
;;;295 /* Inspect current value of rtx timer. */
;;;296 return (OS_TVAL);
0000b8 4884 LDR r0,|L1.716|
0000ba 8a00 LDRH r0,[r0,#0x10]
0000bc 1d00 ADDS r0,r0,#4
0000be 0400 LSLS r0,r0,#16
0000c0 0c00 LSRS r0,r0,#16
;;;297 } /* end of os_tmr_inspect_cnt */
0000c2 4770 BX lr
ENDP
__SWI_7 PROC
;;;312 /* pheripheral may run with a slower clock than CPU. */
;;;313 OS_LOCK();
0000c4 4883 LDR r0,|L1.724|
0000c6 3840 SUBS r0,r0,#0x40
0000c8 6800 LDR r0,[r0,#0]
0000ca 0840 LSRS r0,r0,#1
0000cc 0040 LSLS r0,r0,#1
0000ce 4981 LDR r1,|L1.724|
0000d0 3940 SUBS r1,r1,#0x40
0000d2 6008 STR r0,[r1,#0]
;;;314 /* Wait for 'OS_LOCK' to become active. */
;;;315 __nop();
0000d4 46c0 MOV r8,r8
;;;316 __nop();
0000d6 46c0 MOV r8,r8
;;;317 __nop();
0000d8 46c0 MOV r8,r8
;;;318 }
0000da 4770 BX lr
ENDP
tsk_lock PROC
;;;321
;;;322 void tsk_lock (void) {
0000dc b510 PUSH {r4,lr}
;;;323 /* Lock out tasks: prevents task switching by locking out scheduler */
;;;324 /* activation on interrupt. . */
;;;325 os_lock ();
0000de df07 SVC 0x7 ; formerly SWI
;;;326 } /* end of tsk_lock */
0000e0 bc10 POP {r4}
0000e2 bc08 POP {r3}
0000e4 4718 BX r3
ENDP
tsk_unlock PROC
;;;331 /* Enable AR System Tick Timer Interrupts. */
;;;332 OS_UNLOCK();
0000e6 487b LDR r0,|L1.724|
0000e8 3840 SUBS r0,r0,#0x40
0000ea 6800 LDR r0,[r0,#0]
0000ec 2101 MOVS r1,#1
0000ee 4308 ORRS r0,r0,r1
0000f0 4978 LDR r1,|L1.724|
0000f2 3940 SUBS r1,r1,#0x40
0000f4 6008 STR r0,[r1,#0]
;;;333 } /* end of tsk_unlock */
0000f6 4770 BX lr
ENDP
os_init_mem PROC
;;;336
;;;337 void os_init_mem (void) {
0000f8 b510 PUSH {r4,lr}
;;;338 U32 i;
;;;339
;;;340 for (i = 0; i < OS_TASKCNT; i++) {
0000fa 2400 MOVS r4,#0
0000fc e004 B |L1.264|
;;;341 os_active_TCB[i] = NULL;
|L1.254|
0000fe 2000 MOVS r0,#0
000100 00a1 LSLS r1,r4,#2
000102 4a7a LDR r2,|L1.748|
000104 5050 STR r0,[r2,r1]
000106 1c64 ADDS r4,r4,#1 ;340
|L1.264|
000108 2c06 CMP r4,#6 ;340
00010a d3f8 BCC |L1.254| ;340
;;;342 }
;;;343 _init_box (&m_tcb, sizeof(m_tcb), sizeof(struct OS_TCB));
00010c 2230 MOVS r2,#0x30
00010e 21ff MOVS r1,#0xff
000110 312d ADDS r1,r1,#0x2d
000112 4877 LDR r0,|L1.752|
000114 f7ff fffe BL _init_box
;;;344 _init_box8 (&m_stk, sizeof(m_stk), OS_STKSIZE*4);
000118 4a76 LDR r2,|L1.756|
00011a 4977 LDR r1,|L1.760|
00011c 4877 LDR r0,|L1.764|
00011e f7ff fffe BL _init_box
;;;345 #if (OS_TIMERCNT != 0)
;;;346 _init_box (&m_tmr, sizeof(m_tmr), sizeof(struct OS_TMR));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -