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

📄 os_mutex.txt

📁 IARSOURCECODE是基于LPC2478嵌入式软件IAR EWARM V4.42的应用实例代码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0005e0  e1c400b8          STRH     r0,[r4,#8]
0005e4  e1d400b8          LDRH     r0,[r4,#8]
0005e8  e59f158c          LDR      r1,|L1.2940|
0005ec  e5911000          LDR      r1,[r1,#0]  ; OSTCBCur
0005f0  e5d1102e          LDRB     r1,[r1,#0x2e]
0005f4  e1800001          ORR      r0,r0,r1
0005f8  e1c400b8          STRH     r0,[r4,#8]
0005fc  e59f0578          LDR      r0,|L1.2940|
000600  e5900000          LDR      r0,[r0,#0]  ; OSTCBCur
000604  e5840004          STR      r0,[r4,#4]
000608  e59f056c          LDR      r0,|L1.2940|
00060c  e5900000          LDR      r0,[r0,#0]  ; OSTCBCur
000610  e5d0002e          LDRB     r0,[r0,#0x2e]
000614  e1500007          CMP      r0,r7
000618  ca000004          BGT      |L1.1584|
00061c  e59d0000          LDR      r0,[sp,#0]
000620  ebfffffe          BL       OS_CPU_SR_Restore
000624  e3a00078          MOV      r0,#0x78
000628  e5c60000          STRB     r0,[r6,#0]
00062c  ea000003          B        |L1.1600|
                  |L1.1584|
000630  e59d0000          LDR      r0,[sp,#0]
000634  ebfffffe          BL       OS_CPU_SR_Restore
000638  e3a00000          MOV      r0,#0
00063c  e5c60000          STRB     r0,[r6,#0]
                  |L1.1600|
000640  eaffffc1          B        |L1.1356|
                  |L1.1604|
000644  e1d400b8          LDRH     r0,[r4,#8]
000648  e20080ff          AND      r8,r0,#0xff
00064c  e5940004          LDR      r0,[r4,#4]
000650  e58d0004          STR      r0,[sp,#4]
000654  e59d0004          LDR      r0,[sp,#4]
000658  e5d0002e          LDRB     r0,[r0,#0x2e]
00065c  e1500007          CMP      r0,r7
000660  da00007e          BLE      |L1.2144|
000664  e59f0510          LDR      r0,|L1.2940|
000668  e5900000          LDR      r0,[r0,#0]  ; OSTCBCur
00066c  e5d0002e          LDRB     r0,[r0,#0x2e]
000670  e1500008          CMP      r0,r8
000674  aa000079          BGE      |L1.2144|
000678  e59d0004          LDR      r0,[sp,#4]
00067c  e5d0a030          LDRB     r10,[r0,#0x30]
000680  e59f0500          LDR      r0,|L1.2952|
000684  e7d0000a          LDRB     r0,[r0,r10]
000688  e59d1004          LDR      r1,[sp,#4]
00068c  e5d11031          LDRB     r1,[r1,#0x31]
000690  e1100001          TST      r0,r1
000694  0a000014          BEQ      |L1.1772|
000698  e59f04e8          LDR      r0,|L1.2952|
00069c  e7d0000a          LDRB     r0,[r0,r10]
0006a0  e59d1004          LDR      r1,[sp,#4]
0006a4  e5d11031          LDRB     r1,[r1,#0x31]
0006a8  e1c00001          BIC      r0,r0,r1
0006ac  e59f14d4          LDR      r1,|L1.2952|
0006b0  e7c1000a          STRB     r0,[r1,r10]
0006b4  e2810000          ADD      r0,r1,#0
0006b8  e7d0000a          LDRB     r0,[r0,r10]
0006bc  e3500000          CMP      r0,#0
0006c0  1a000006          BNE      |L1.1760|
0006c4  e59d0004          LDR      r0,[sp,#4]
0006c8  e5d00032          LDRB     r0,[r0,#0x32]
0006cc  e59f14b8          LDR      r1,|L1.2956|
0006d0  e5d11000          LDRB     r1,[r1,#0]  ; OSRdyGrp
0006d4  e1c10000          BIC      r0,r1,r0
0006d8  e59f14ac          LDR      r1,|L1.2956|
0006dc  e5c10000          STRB     r0,[r1,#0]  ; OSRdyGrp
                  |L1.1760|
0006e0  e3a00001          MOV      r0,#1
0006e4  e58d0008          STR      r0,[sp,#8]
0006e8  ea000016          B        |L1.1864|
                  |L1.1772|
0006ec  e59d0004          LDR      r0,[sp,#4]
0006f0  e590901c          LDR      r9,[r0,#0x1c]
0006f4  e3590000          CMP      r9,#0
0006f8  0a000010          BEQ      |L1.1856|
0006fc  e59d0004          LDR      r0,[sp,#4]
000700  e5d00030          LDRB     r0,[r0,#0x30]
000704  e289100b          ADD      r1,r9,#0xb
000708  e7d10000          LDRB     r0,[r1,r0]
00070c  e59d1004          LDR      r1,[sp,#4]
000710  e5d11031          LDRB     r1,[r1,#0x31]
000714  e1d00001          BICS     r0,r0,r1
000718  e59d1004          LDR      r1,[sp,#4]
00071c  e5d11030          LDRB     r1,[r1,#0x30]
000720  e289200b          ADD      r2,r9,#0xb
000724  e7c20001          STRB     r0,[r2,r1]
000728  1a000004          BNE      |L1.1856|
00072c  e5d9000a          LDRB     r0,[r9,#0xa]
000730  e59d1004          LDR      r1,[sp,#4]
000734  e5d11032          LDRB     r1,[r1,#0x32]
000738  e1c00001          BIC      r0,r0,r1
00073c  e5c9000a          STRB     r0,[r9,#0xa]
                  |L1.1856|
000740  e3a00000          MOV      r0,#0
000744  e58d0008          STR      r0,[sp,#8]
                  |L1.1864|
000748  e59d0004          LDR      r0,[sp,#4]
00074c  e5c0702e          STRB     r7,[r0,#0x2e]
000750  e59d0004          LDR      r0,[sp,#4]
000754  e5d0002e          LDRB     r0,[r0,#0x2e]
000758  e1a001c0          ASR      r0,r0,#3
00075c  e59d1004          LDR      r1,[sp,#4]
000760  e5c10030          STRB     r0,[r1,#0x30]
000764  e59d0004          LDR      r0,[sp,#4]
000768  e5d0002e          LDRB     r0,[r0,#0x2e]
00076c  e2000007          AND      r0,r0,#7
000770  e59d1004          LDR      r1,[sp,#4]
000774  e5c1002f          STRB     r0,[r1,#0x2f]
000778  e59d0004          LDR      r0,[sp,#4]
00077c  e5d00030          LDRB     r0,[r0,#0x30]
000780  e3a01001          MOV      r1,#1
000784  e1a00011          LSL      r0,r1,r0
000788  e59d1004          LDR      r1,[sp,#4]
00078c  e5c10032          STRB     r0,[r1,#0x32]
000790  e59d0004          LDR      r0,[sp,#4]
000794  e5d0002f          LDRB     r0,[r0,#0x2f]
000798  e3a01001          MOV      r1,#1
00079c  e1a00011          LSL      r0,r1,r0
0007a0  e20010ff          AND      r1,r0,#0xff
0007a4  e59d0004          LDR      r0,[sp,#4]
0007a8  e5c01031          STRB     r1,[r0,#0x31]
0007ac  e59d0008          LDR      r0,[sp,#8]
0007b0  e3500001          CMP      r0,#1
0007b4  1a000012          BNE      |L1.2052|
0007b8  e59d0004          LDR      r0,[sp,#4]
0007bc  e5d00032          LDRB     r0,[r0,#0x32]
0007c0  e59f13c4          LDR      r1,|L1.2956|
0007c4  e5d11000          LDRB     r1,[r1,#0]  ; OSRdyGrp
0007c8  e1800001          ORR      r0,r0,r1
0007cc  e59f13b8          LDR      r1,|L1.2956|
0007d0  e5c10000          STRB     r0,[r1,#0]  ; OSRdyGrp
0007d4  e59d0004          LDR      r0,[sp,#4]
0007d8  e5d00030          LDRB     r0,[r0,#0x30]
0007dc  e59f13a4          LDR      r1,|L1.2952|
0007e0  e7d10000          LDRB     r0,[r1,r0]
0007e4  e59d1004          LDR      r1,[sp,#4]
0007e8  e5d11031          LDRB     r1,[r1,#0x31]
0007ec  e1800001          ORR      r0,r0,r1
0007f0  e59d1004          LDR      r1,[sp,#4]
0007f4  e5d11030          LDRB     r1,[r1,#0x30]
0007f8  e59f2388          LDR      r2,|L1.2952|
0007fc  e7c20001          STRB     r0,[r2,r1]
000800  ea000013          B        |L1.2132|
                  |L1.2052|
000804  e59d0004          LDR      r0,[sp,#4]
000808  e590901c          LDR      r9,[r0,#0x1c]
00080c  e3590000          CMP      r9,#0
000810  0a00000f          BEQ      |L1.2132|
000814  e5d9000a          LDRB     r0,[r9,#0xa]
000818  e59d1004          LDR      r1,[sp,#4]
00081c  e5d11032          LDRB     r1,[r1,#0x32]
000820  e1800001          ORR      r0,r0,r1
000824  e5c9000a          STRB     r0,[r9,#0xa]
000828  e59d0004          LDR      r0,[sp,#4]
00082c  e5d00030          LDRB     r0,[r0,#0x30]
000830  e289100b          ADD      r1,r9,#0xb
000834  e7d11000          LDRB     r1,[r1,r0]
000838  e59d0004          LDR      r0,[sp,#4]
00083c  e5d00031          LDRB     r0,[r0,#0x31]
000840  e1800001          ORR      r0,r0,r1
000844  e59d1004          LDR      r1,[sp,#4]
000848  e5d11030          LDRB     r1,[r1,#0x30]
00084c  e289200b          ADD      r2,r9,#0xb
000850  e7c20001          STRB     r0,[r2,r1]
                  |L1.2132|
000854  e59f1324          LDR      r1,|L1.2944|
000858  e59d0004          LDR      r0,[sp,#4]
00085c  e7810107          STR      r0,[r1,r7,LSL #2]
                  |L1.2144|
000860  e59f0314          LDR      r0,|L1.2940|
000864  e5900000          LDR      r0,[r0,#0]  ; OSTCBCur
000868  e5d0002c          LDRB     r0,[r0,#0x2c]
00086c  e3800010          ORR      r0,r0,#0x10
000870  e59f1304          LDR      r1,|L1.2940|
000874  e5911000          LDR      r1,[r1,#0]  ; OSTCBCur
000878  e5c1002c          STRB     r0,[r1,#0x2c]
00087c  e3a00000          MOV      r0,#0
000880  e59f12f4          LDR      r1,|L1.2940|
000884  e5911000          LDR      r1,[r1,#0]  ; OSTCBCur
000888  e5c1002d          STRB     r0,[r1,#0x2d]
00088c  e59f02e8          LDR      r0,|L1.2940|
000890  e5900000          LDR      r0,[r0,#0]  ; OSTCBCur
000894  e1c052ba          STRH     r5,[r0,#0x2a]
000898  e1a00004          MOV      r0,r4
00089c  ebfffffe          BL       OS_EventTaskWait
0008a0  e59d0000          LDR      r0,[sp,#0]
0008a4  ebfffffe          BL       OS_CPU_SR_Restore
0008a8  ebfffffe          BL       OS_Sched
0008ac  ebfffffe          BL       OS_CPU_SR_Save
0008b0  e58d0000          STR      r0,[sp,#0]
0008b4  e59f02c0          LDR      r0,|L1.2940|
0008b8  e5900000          LDR      r0,[r0,#0]  ; OSTCBCur
0008bc  e5d0002d          LDRB     r0,[r0,#0x2d]
0008c0  e3500000          CMP      r0,#0
0008c4  0a000016          BEQ      |L1.2340|
0008c8  e59f02ac          LDR      r0,|L1.2940|
0008cc  e5900000          LDR      r0,[r0,#0]  ; OSTCBCur
0008d0  e5d0b02d          LDRB     r11,[r0,#0x2d]
0008d4  e1a00004          MOV      r0,r4
0008d8  ebfffffe          BL       OS_EventTOAbort
0008dc  e59d0000          LDR      r0,[sp,#0]
0008e0  ebfffffe          BL       OS_CPU_SR_Restore
0008e4  e35b0001          CMP      r11,#1
0008e8  0a000002          BEQ      |L1.2296|
0008ec  e35b0002          CMP      r11,#2
0008f0  0a000005          BEQ      |L1.2316|
0008f4  ea000001          B        |L1.2304|
                  |L1.2296|
0008f8  e1a00000          MOV      r0,r0
0008fc  e1a00000          MOV      r0,r0
                  |L1.2304|
000900  e3a0000a          MOV      r0,#0xa
000904  e5c60000          STRB     r0,[r6,#0]
000908  ea000003          B        |L1.2332|
                  |L1.2316|
00090c  e1a00000          MOV      r0,r0
000910  e3a0000e          MOV      r0,#0xe
000914  e5c60000          STRB     r0,[r6,#0]
000918  e1a00000          MOV      r0,r0
                  |L1.2332|
00091c  e1a00000          MOV      r0,r0
000920  eaffff09          B        |L1.1356|
                  |L1.2340|
000924  e3a00000          MOV      r0,#0
000928  e59f124c          LDR      r1,|L1.2940|
00092c  e5911000          LDR      r1,[r1,#0]  ; OSTCBCur
000930  e581001c          STR      r0,[r1,#0x1c]
000934  e59d0000          LDR      r0,[sp,#0]
000938  ebfffffe          BL       OS_CPU_SR_Restore
00093c  e3a00000          MOV      r0,#0
000940  e5c60000          STRB     r0,[r6,#0]
000944  eaffff00          B        |L1.1356|
                          ENDP

                  OSMutexPost PROC
;;;546    INT8U  OSMutexPost (OS_EVENT *pevent)
;;;547    {
000948  e92d41f0          PUSH     {r4-r8,lr}
00094c  e1a04000          MOV      r4,r0
;;;548        INT8U      pip;                                   /* Priority inheritance priority                 */
;;;549        INT8U      prio;
;;;550    #if OS_CRITICAL_METHOD == 3                           /* Allocate storage for CPU status register      */
;;;551        OS_CPU_SR  cpu_sr = 0;
000950  e3a07000          MOV      r7,#0
;;;552    #endif
;;;553    
;;;554    
;;;555    
;;;556        if (OSIntNesting > 0) {                           /* See if called from ISR ...                    */
000954  e59f021c          LDR      r0,|L1.2936|
000958  e5d00000          LDRB     r0,[r0,#0]  ; OSIntNesting
00095c  e3500000          CMP      r0,#0
000960  da000002          BLE      |L1.2416|
;;;557            return (OS_ERR_POST_ISR);                     /* ... can't POST mutex from an ISR              */
000964  e3a00005          MOV      r0,#5
                  |L1.2408|
000968  e8bd41f0          POP      {r4-r8,lr}

⌨️ 快捷键说明

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