📄 os_core.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 919] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\output\os_core.o --depend=.\output\os_core.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_core.crf ..\..\..\..\..\uCOS-II\Source\os_core.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=2
OS_StrCopy PROC
;;;1700
;;;1701 len = 0;
000000 2200 MOVS r2,#0
;;;1702 while (*psrc != OS_ASCII_NUL) {
000002 e004 B |L1.14|
|L1.4|
;;;1703 *pdest++ = *psrc++;
000004 f800f800 STRB r3,[r0],#1
000008 1c49 ADDS r1,r1,#1
;;;1704 len++;
00000a 1c52 ADDS r2,r2,#1
00000c b2d2 UXTB r2,r2
|L1.14|
00000e 780b LDRB r3,[r1,#0] ;1702
000010 2b00 CMP r3,#0 ;1702
000012 d1f7 BNE |L1.4|
;;;1705 }
;;;1706 *pdest = OS_ASCII_NUL;
000014 2100 MOVS r1,#0
000016 7001 STRB r1,[r0,#0]
;;;1707 return (len);
000018 4610 MOV r0,r2
;;;1708 }
00001a 4770 BX lr
;;;1709 #endif
ENDP
OSEventNameGet PROC
;;;109 INT8U OSEventNameGet (OS_EVENT *pevent, INT8U *pname, INT8U *perr)
;;;110 {
00001c e92de92d PUSH {r4-r8,lr}
000020 4605 MOV r5,r0
000022 460e MOV r6,r1
000024 4614 MOV r4,r2
;;;111 INT8U len;
;;;112 #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
;;;113 OS_CPU_SR cpu_sr = 0;
;;;114 #endif
;;;115
;;;116
;;;117
;;;118 #if OS_ARG_CHK_EN > 0
;;;119 if (perr == (INT8U *)0) { /* Validate 'perr' */
;;;120 return (0);
;;;121 }
;;;122 if (pevent == (OS_EVENT *)0) { /* Is 'pevent' a NULL pointer? */
;;;123 *perr = OS_ERR_PEVENT_NULL;
;;;124 return (0);
;;;125 }
;;;126 if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer? */
;;;127 *perr = OS_ERR_PNAME_NULL;
;;;128 return (0);
;;;129 }
;;;130 #endif
;;;131 if (OSIntNesting > 0) { /* See if trying to call from an ISR */
000026 48ff LDR r0,|L1.1060|
000028 7880 LDRB r0,[r0,#2] ; OSIntNesting
00002a b120 CBZ r0,|L1.54|
;;;132 *perr = OS_ERR_NAME_GET_ISR;
00002c 2011 MOVS r0,#0x11
00002e 7020 STRB r0,[r4,#0]
;;;133 return (0);
000030 2000 MOVS r0,#0
|L1.50|
;;;134 }
;;;135 switch (pevent->OSEventType) {
;;;136 case OS_EVENT_TYPE_SEM:
;;;137 case OS_EVENT_TYPE_MUTEX:
;;;138 case OS_EVENT_TYPE_MBOX:
;;;139 case OS_EVENT_TYPE_Q:
;;;140 break;
;;;141
;;;142 default:
;;;143 *perr = OS_ERR_EVENT_TYPE;
;;;144 return (0);
;;;145 }
;;;146 OS_ENTER_CRITICAL();
;;;147 len = OS_StrCopy(pname, pevent->OSEventName); /* Copy name from OS_EVENT */
;;;148 OS_EXIT_CRITICAL();
;;;149 *perr = OS_ERR_NONE;
;;;150 return (len);
;;;151 }
000032 e8bde8bd POP {r4-r8,pc}
|L1.54|
000036 7828 LDRB r0,[r5,#0] ;135
000038 2801 CMP r0,#1 ;135
00003a d005 BEQ |L1.72|
00003c 2802 CMP r0,#2 ;135
00003e d003 BEQ |L1.72|
000040 2803 CMP r0,#3 ;135
000042 d001 BEQ |L1.72|
000044 2804 CMP r0,#4 ;135
000046 d10f BNE |L1.104|
|L1.72|
000048 f7fff7ff BL OS_CPU_SR_Save
00004c 4607 MOV r7,r0 ;146
00004e f105f105 ADD r1,r5,#0xf ;147
000052 4630 MOV r0,r6 ;147
000054 f7fff7ff BL OS_StrCopy
000058 4605 MOV r5,r0 ;147
00005a 4638 MOV r0,r7 ;148
00005c f7fff7ff BL OS_CPU_SR_Restore
000060 2000 MOVS r0,#0 ;149
000062 7020 STRB r0,[r4,#0] ;149
000064 4628 MOV r0,r5 ;150
000066 e7e4 B |L1.50|
|L1.104|
000068 2001 MOVS r0,#1 ;143
00006a 7020 STRB r0,[r4,#0] ;143
00006c 2000 MOVS r0,#0 ;144
00006e e7e0 B |L1.50|
;;;152 #endif
ENDP
OS_StrLen PROC
;;;1732
;;;1733 len = 0;
000070 2100 MOVS r1,#0
;;;1734 while (*psrc != OS_ASCII_NUL) {
000072 e002 B |L1.122|
|L1.116|
;;;1735 psrc++;
000074 1c40 ADDS r0,r0,#1
;;;1736 len++;
000076 1c49 ADDS r1,r1,#1
000078 b2c9 UXTB r1,r1
|L1.122|
00007a 7802 LDRB r2,[r0,#0] ;1734
00007c 2a00 CMP r2,#0 ;1734
00007e d1f9 BNE |L1.116|
;;;1737 }
;;;1738 return (len);
000080 4608 MOV r0,r1
;;;1739 }
000082 4770 BX lr
;;;1740 #endif
ENDP
OSEventNameSet PROC
;;;183 void OSEventNameSet (OS_EVENT *pevent, INT8U *pname, INT8U *perr)
;;;184 {
000084 e92de92d PUSH {r4-r8,lr}
000088 4605 MOV r5,r0
00008a 460e MOV r6,r1
00008c 4614 MOV r4,r2
;;;185 INT8U len;
;;;186 #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
;;;187 OS_CPU_SR cpu_sr = 0;
;;;188 #endif
;;;189
;;;190
;;;191
;;;192 #if OS_ARG_CHK_EN > 0
;;;193 if (perr == (INT8U *)0) { /* Validate 'perr' */
;;;194 return;
;;;195 }
;;;196 if (pevent == (OS_EVENT *)0) { /* Is 'pevent' a NULL pointer? */
;;;197 *perr = OS_ERR_PEVENT_NULL;
;;;198 return;
;;;199 }
;;;200 if (pname == (INT8U *)0) { /* Is 'pname' a NULL pointer? */
;;;201 *perr = OS_ERR_PNAME_NULL;
;;;202 return;
;;;203 }
;;;204 #endif
;;;205 if (OSIntNesting > 0) { /* See if trying to call from an ISR */
00008e 48e5 LDR r0,|L1.1060|
000090 7880 LDRB r0,[r0,#2] ; OSIntNesting
000092 b110 CBZ r0,|L1.154|
;;;206 *perr = OS_ERR_NAME_SET_ISR;
000094 2012 MOVS r0,#0x12
000096 7020 STRB r0,[r4,#0]
;;;207 return;
;;;208 }
;;;209 switch (pevent->OSEventType) {
;;;210 case OS_EVENT_TYPE_SEM:
;;;211 case OS_EVENT_TYPE_MUTEX:
;;;212 case OS_EVENT_TYPE_MBOX:
;;;213 case OS_EVENT_TYPE_Q:
;;;214 break;
;;;215
;;;216 default:
;;;217 *perr = OS_ERR_EVENT_TYPE;
;;;218 return;
;;;219 }
;;;220 OS_ENTER_CRITICAL();
;;;221 len = OS_StrLen(pname); /* Can we fit the string in the storage area? */
;;;222 if (len > (OS_EVENT_NAME_SIZE - 1)) { /* No */
;;;223 OS_EXIT_CRITICAL();
;;;224 *perr = OS_ERR_EVENT_NAME_TOO_LONG;
;;;225 return;
;;;226 }
;;;227 (void)OS_StrCopy(pevent->OSEventName, pname); /* Yes, copy name to the event control block */
;;;228 OS_EXIT_CRITICAL();
;;;229 *perr = OS_ERR_NONE;
;;;230 }
000098 e7cb B |L1.50|
|L1.154|
00009a 7828 LDRB r0,[r5,#0] ;209
00009c 2801 CMP r0,#1 ;209
00009e d005 BEQ |L1.172|
0000a0 2802 CMP r0,#2 ;209
0000a2 d003 BEQ |L1.172|
0000a4 2803 CMP r0,#3 ;209
0000a6 d001 BEQ |L1.172|
0000a8 2804 CMP r0,#4 ;209
0000aa d10d BNE |L1.200|
|L1.172|
0000ac f7fff7ff BL OS_CPU_SR_Save
0000b0 4607 MOV r7,r0 ;220
0000b2 4630 MOV r0,r6 ;221
0000b4 f7fff7ff BL OS_StrLen
0000b8 280f CMP r0,#0xf ;222
0000ba d908 BLS |L1.206|
0000bc 4638 MOV r0,r7 ;223
0000be f7fff7ff BL OS_CPU_SR_Restore
0000c2 200b MOVS r0,#0xb ;224
0000c4 7020 STRB r0,[r4,#0] ;224
0000c6 e7b4 B |L1.50|
|L1.200|
0000c8 2001 MOVS r0,#1 ;217
0000ca 7020 STRB r0,[r4,#0] ;217
0000cc e7b1 B |L1.50|
|L1.206|
0000ce 4631 MOV r1,r6 ;227
0000d0 f105f105 ADD r0,r5,#0xf ;227
0000d4 f7fff7ff BL OS_StrCopy
0000d8 4638 MOV r0,r7 ;228
0000da f7fff7ff BL OS_CPU_SR_Restore
0000de 2000 MOVS r0,#0 ;229
0000e0 7020 STRB r0,[r4,#0] ;229
0000e2 e7a6 B |L1.50|
;;;231 #endif
ENDP
OS_EventTaskRemoveMulti PROC
;;;1165 OS_EVENT **pevents_multi)
;;;1166 {
0000e4 b570 PUSH {r4-r6,lr}
;;;1167 OS_EVENT **pevents;
;;;1168 OS_EVENT *pevent;
;;;1169 INT8U y;
;;;1170 #if (OS_LOWEST_PRIO <= 63)
;;;1171 INT8U bity;
;;;1172 INT8U bitx;
;;;1173 #else
;;;1174 INT16U bity;
;;;1175 INT16U bitx;
;;;1176 #endif
;;;1177
;;;1178
;;;1179 y = ptcb->OSTCBY;
0000e6 f810f810 LDRB r4,[r0,#0x34]!
;;;1180 bity = ptcb->OSTCBBitY;
0000ea 7885 LDRB r5,[r0,#2]
;;;1181 bitx = ptcb->OSTCBBitX;
0000ec 7846 LDRB r6,[r0,#1]
;;;1182 pevents = pevents_multi;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -