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

📄 os_mutex.txt

📁 一个电力系统谐波检测的程序
💻 TXT
📖 第 1 页 / 共 4 页
字号:
000648  e5d11030          LDRB     r1,[r1,#0x30]         ;430
00064c  e1c00001          BIC      r0,r0,r1              ;430
000650  e21000ff          ANDS     r0,r0,#0xff           ;430
000654  e59f1240          LDR      r1,|L1.2204|          ;430
000658  e5911000          LDR      r1,[r1,#0]            ;430  ; OSTCBCur
00065c  e5d1102f          LDRB     r1,[r1,#0x2f]         ;430
000660  e59f2240          LDR      r2,|L1.2216|          ;430
000664  e7c20001          STRB     r0,[r2,r1]            ;430
000668  1a000007          BNE      |L1.1676|             ;430
00066c  e59f0228          LDR      r0,|L1.2204|          ;431
000670  e5900000          LDR      r0,[r0,#0]            ;431  ; OSTCBCur
000674  e5d00031          LDRB     r0,[r0,#0x31]         ;431
000678  e59f122c          LDR      r1,|L1.2220|          ;431
00067c  e5d11000          LDRB     r1,[r1,#0]            ;431  ; OSRdyGrp
000680  e1c10000          BIC      r0,r1,r0              ;431
000684  e59f1220          LDR      r1,|L1.2220|          ;431
000688  e5c10000          STRB     r0,[r1,#0]            ;431  ; OSRdyGrp
                  |L1.1676|
00068c  e59f0208          LDR      r0,|L1.2204|          ;433
000690  e5900000          LDR      r0,[r0,#0]            ;433  ; OSTCBCur
000694  e5c0602d          STRB     r6,[r0,#0x2d]         ;433
000698  e1a001c6          ASR      r0,r6,#3              ;434
00069c  e59f11f8          LDR      r1,|L1.2204|          ;434
0006a0  e5911000          LDR      r1,[r1,#0]            ;434  ; OSTCBCur
0006a4  e5c1002f          STRB     r0,[r1,#0x2f]         ;434
0006a8  e59f01ec          LDR      r0,|L1.2204|          ;435
0006ac  e5900000          LDR      r0,[r0,#0]            ;435  ; OSTCBCur
0006b0  e5d0002f          LDRB     r0,[r0,#0x2f]         ;435
0006b4  e59f11f4          LDR      r1,|L1.2224|          ;435
0006b8  e7d10000          LDRB     r0,[r1,r0]            ;435
0006bc  e59f11d8          LDR      r1,|L1.2204|          ;435
0006c0  e5911000          LDR      r1,[r1,#0]            ;435  ; OSTCBCur
0006c4  e5c10031          STRB     r0,[r1,#0x31]         ;435
0006c8  e2060007          AND      r0,r6,#7              ;436
0006cc  e59f11c8          LDR      r1,|L1.2204|          ;436
0006d0  e5911000          LDR      r1,[r1,#0]            ;436  ; OSTCBCur
0006d4  e5c1002e          STRB     r0,[r1,#0x2e]         ;436
0006d8  e59f01bc          LDR      r0,|L1.2204|          ;437
0006dc  e5900000          LDR      r0,[r0,#0]            ;437  ; OSTCBCur
0006e0  e5d0002e          LDRB     r0,[r0,#0x2e]         ;437
0006e4  e59f11c4          LDR      r1,|L1.2224|          ;437
0006e8  e7d10000          LDRB     r0,[r1,r0]            ;437
0006ec  e59f11a8          LDR      r1,|L1.2204|          ;437
0006f0  e5911000          LDR      r1,[r1,#0]            ;437  ; OSTCBCur
0006f4  e5c10030          STRB     r0,[r1,#0x30]         ;437
0006f8  e59f019c          LDR      r0,|L1.2204|          ;438
0006fc  e5900000          LDR      r0,[r0,#0]            ;438  ; OSTCBCur
000700  e5d00031          LDRB     r0,[r0,#0x31]         ;438
000704  e59f11a0          LDR      r1,|L1.2220|          ;438
000708  e5d11000          LDRB     r1,[r1,#0]            ;438  ; OSRdyGrp
00070c  e1800001          ORR      r0,r0,r1              ;438
000710  e59f1194          LDR      r1,|L1.2220|          ;438
000714  e5c10000          STRB     r0,[r1,#0]            ;438  ; OSRdyGrp
000718  e59f017c          LDR      r0,|L1.2204|          ;439
00071c  e5900000          LDR      r0,[r0,#0]            ;439  ; OSTCBCur
000720  e5d0002f          LDRB     r0,[r0,#0x2f]         ;439
000724  e59f117c          LDR      r1,|L1.2216|          ;439
000728  e7d10000          LDRB     r0,[r1,r0]            ;439
00072c  e59f1168          LDR      r1,|L1.2204|          ;439
000730  e5911000          LDR      r1,[r1,#0]            ;439  ; OSTCBCur
000734  e5d11030          LDRB     r1,[r1,#0x30]         ;439
000738  e1800001          ORR      r0,r0,r1              ;439
00073c  e59f1158          LDR      r1,|L1.2204|          ;439
000740  e5911000          LDR      r1,[r1,#0]            ;439  ; OSTCBCur
000744  e5d1102f          LDRB     r1,[r1,#0x2f]         ;439
000748  e59f2158          LDR      r2,|L1.2216|          ;439
00074c  e7c20001          STRB     r0,[r2,r1]            ;439
000750  e59f0144          LDR      r0,|L1.2204|          ;440
000754  e5900000          LDR      r0,[r0,#0]            ;440  ; OSTCBCur
000758  e59f1140          LDR      r1,|L1.2208|          ;440
00075c  e7810106          STR      r0,[r1,r6,LSL #2]     ;440
                  |L1.1888|
000760  e3a00001          MOV      r0,#1                 ;442
000764  e59f1134          LDR      r1,|L1.2208|          ;442
000768  e7810105          STR      r0,[r1,r5,LSL #2]     ;442
00076c  e5d40001          LDRB     r0,[r4,#1]            ;443
000770  e3500000          CMP      r0,#0                 ;443
000774  0a000011          BEQ      |L1.1984|             ;443
000778  e3a02010          MOV      r2,#0x10              ;445
00077c  e3a01000          MOV      r1,#0                 ;445
000780  e1a00004          MOV      r0,r4                 ;445
000784  ebfffffe          BL       OS_EventTaskRdy       ;445
000788  e1a06000          MOV      r6,r0                 ;445
00078c  e1d400b2          LDRH     r0,[r4,#2]            ;446
000790  e2000cff          AND      r0,r0,#0xff00         ;446
000794  e1c400b2          STRH     r0,[r4,#2]            ;446
000798  e1d400b2          LDRH     r0,[r4,#2]            ;447
00079c  e1800006          ORR      r0,r0,r6              ;447
0007a0  e1c400b2          STRH     r0,[r4,#2]            ;447
0007a4  e59f00f4          LDR      r0,|L1.2208|          ;448
0007a8  e7900106          LDR      r0,[r0,r6,LSL #2]     ;448
0007ac  e5840004          STR      r0,[r4,#4]            ;448
0007b0  ef000003          SVC      0x3  ; formerly SWI   ;449
0007b4  ebfffffe          BL       OS_Sched              ;450
0007b8  e3a00000          MOV      r0,#0                 ;451
0007bc  eaffff78          B        |L1.1444|             ;451
                  |L1.1984|
0007c0  e1d400b2          LDRH     r0,[r4,#2]            ;453
0007c4  e38000ff          ORR      r0,r0,#0xff           ;453
0007c8  e1c400b2          STRH     r0,[r4,#2]            ;453
0007cc  e3a00000          MOV      r0,#0                 ;454
0007d0  e5840004          STR      r0,[r4,#4]            ;454
0007d4  ef000003          SVC      0x3  ; formerly SWI   ;455
0007d8  e3a00000          MOV      r0,#0                 ;456
0007dc  eaffff70          B        |L1.1444|             ;456
                          ENDP

                  OSMutexQuery PROC
;;;477    INT8U  OSMutexQuery (OS_EVENT *pevent, OS_MUTEX_DATA *pdata)
;;;478    {
0007e0  e92d41f0          PUSH     {r4-r8,lr}
0007e4  e1a06000          MOV      r6,r0
0007e8  e1a04001          MOV      r4,r1
;;;479    #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
;;;480        OS_CPU_SR  cpu_sr;
;;;481    #endif    
;;;482        INT8U     *psrc;
;;;483        INT8U     *pdest;
;;;484    
;;;485    
;;;486        if (OSIntNesting > 0) {                                /* See if called from ISR ...               */
0007ec  e59f00a4          LDR      r0,|L1.2200|
0007f0  e5d00000          LDRB     r0,[r0,#0]  ; OSIntNesting
0007f4  e3500000          CMP      r0,#0
0007f8  da000002          BLE      |L1.2056|
;;;487            return (OS_ERR_QUERY_ISR);                         /* ... can't QUERY mutex from an ISR        */
0007fc  e3a00006          MOV      r0,#6
                  |L1.2048|
000800  e8bd41f0          POP      {r4-r8,lr}
;;;488        }
;;;489    #if OS_ARG_CHK_EN > 0
;;;490        if (pevent == (OS_EVENT *)0) {                         /* Validate 'pevent'                        */
;;;491            return (OS_ERR_PEVENT_NULL);
;;;492        }
;;;493        if (pevent->OSEventType != OS_EVENT_TYPE_MUTEX) {      /* Validate event block type                */
;;;494            return (OS_ERR_EVENT_TYPE);
;;;495        }
;;;496    #endif
;;;497        OS_ENTER_CRITICAL();
;;;498        pdata->OSMutexPIP  = (INT8U)(pevent->OSEventCnt >> 8);
;;;499        pdata->OSOwnerPrio = (INT8U)(pevent->OSEventCnt & OS_MUTEX_KEEP_LOWER_8);
;;;500        if (pdata->OSOwnerPrio == 0xFF) {
;;;501            pdata->OSValue = 1;
;;;502        } else {
;;;503            pdata->OSValue = 0;
;;;504        }
;;;505        pdata->OSEventGrp  = pevent->OSEventGrp;               /* Copy wait list                           */
;;;506        psrc               = &pevent->OSEventTbl[0];
;;;507        pdest              = &pdata->OSEventTbl[0];
;;;508    #if OS_EVENT_TBL_SIZE > 0
;;;509        *pdest++           = *psrc++;
;;;510    #endif
;;;511    
;;;512    #if OS_EVENT_TBL_SIZE > 1
;;;513        *pdest++           = *psrc++;
;;;514    #endif
;;;515    
;;;516    #if OS_EVENT_TBL_SIZE > 2
;;;517        *pdest++           = *psrc++;
;;;518    #endif
;;;519    
;;;520    #if OS_EVENT_TBL_SIZE > 3
;;;521        *pdest++           = *psrc++;
;;;522    #endif
;;;523    
;;;524    #if OS_EVENT_TBL_SIZE > 4
;;;525        *pdest++           = *psrc++;
;;;526    #endif
;;;527    
;;;528    #if OS_EVENT_TBL_SIZE > 5
;;;529        *pdest++           = *psrc++;
;;;530    #endif
;;;531    
;;;532    #if OS_EVENT_TBL_SIZE > 6
;;;533        *pdest++           = *psrc++;
;;;534    #endif
;;;535    
;;;536    #if OS_EVENT_TBL_SIZE > 7
;;;537        *pdest             = *psrc;
;;;538    #endif
;;;539        OS_EXIT_CRITICAL();
;;;540        return (OS_NO_ERR);
;;;541    }
000804  e12fff1e          BX       lr
                  |L1.2056|
000808  e3560000          CMP      r6,#0                 ;490
00080c  1a000001          BNE      |L1.2072|             ;490
000810  e3a00004          MOV      r0,#4                 ;491
000814  eafffff9          B        |L1.2048|             ;491
                  |L1.2072|
000818  e5d60000          LDRB     r0,[r6,#0]            ;493
00081c  e3500004          CMP      r0,#4                 ;493
000820  0a000001          BEQ      |L1.2092|             ;493
000824  e3a00001          MOV      r0,#1                 ;494
000828  eafffff4          B        |L1.2048|             ;494
                  |L1.2092|
00082c  ef000002          SVC      0x2  ; formerly SWI   ;497
000830  e1d600b2          LDRH     r0,[r6,#2]            ;498
000834  e1a00440          ASR      r0,r0,#8              ;498
000838  e5c40005          STRB     r0,[r4,#5]            ;498
00083c  e1d600b2          LDRH     r0,[r6,#2]            ;499
000840  e5c40004          STRB     r0,[r4,#4]            ;499
000844  e5d40004          LDRB     r0,[r4,#4]            ;500
000848  e35000ff          CMP      r0,#0xff              ;500
00084c  1a000002          BNE      |L1.2140|             ;500
000850  e3a00001          MOV      r0,#1                 ;501
000854  e5c40003          STRB     r0,[r4,#3]            ;501
000858  ea000001          B        |L1.2148|             ;501
                  |L1.2140|
00085c  e3a00000          MOV      r0,#0                 ;503
000860  e5c40003          STRB     r0,[r4,#3]            ;503
                  |L1.2148|
000864  e5d60001          LDRB     r0,[r6,#1]            ;505
000868  e5c40002          STRB     r0,[r4,#2]            ;505
00086c  e2867008          ADD      r7,r6,#8              ;506
000870  e1a05004          MOV      r5,r4                 ;507
000874  e4d70001          LDRB     r0,[r7],#1            ;509
000878  e5c50000          STRB     r0,[r5,#0]            ;509
00087c  e1a04005          MOV      r4,r5                 ;509
000880  e2855001          ADD      r5,r5,#1              ;509
000884  e4d70001          LDRB     r0,[r7],#1            ;513
000888  e4c50001          STRB     r0,[r5],#1            ;513
00088c  ef000003          SVC      0x3  ; formerly SWI   ;539
000890  e3a00000          MOV      r0,#0                 ;540
000894  eaffffd9          B        |L1.2048|             ;540
                  |L1.2200|
000898  00000000          DCD      OSIntNesting          ;540
                  |L1.2204|
00089c  00000000          DCD      OSTCBCur              ;540
                  |L1.2208|
0008a0  00000000          DCD      OSTCBPrioTbl          ;540
                  |L1.2212|
0008a4  00000000          DCD      OSEventFreeList       ;540
                  |L1.2216|
0008a8  00000000          DCD      OSRdyTbl              ;540
                  |L1.2220|
0008ac  00000000          DCD      OSRdyGrp              ;540
                  |L1.2224|
0008b0  00000000          DCD      OSMapTbl              ;540
                          ENDP


⌨️ 快捷键说明

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