亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_q.txt

?? ucos2.86版本結合STM板極支持包
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 914] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\os_q.o --depend=.\rvmdk\os_q.d --device=DARMSTM -O1 -Otime -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 -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -ID:\Keil\ARM\INC\ST\STM32F10x ..\..\..\..\..\uCOS-II\Source\os_q.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  OSQAccept PROC
;;;61     void  *OSQAccept (OS_EVENT *pevent, INT8U *perr)
;;;62     {
000000  b570              PUSH     {r4-r6,lr}
000002  4605              MOV      r5,r0
000004  460c              MOV      r4,r1
;;;63         void      *pmsg;
;;;64         OS_Q      *pq;
;;;65     #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
;;;66         OS_CPU_SR  cpu_sr = 0;
;;;67     #endif
;;;68     
;;;69     
;;;70     
;;;71     #if OS_ARG_CHK_EN > 0
;;;72         if (perr == (INT8U *)0) {                    /* Validate 'perr'                                    */
000006  b90c              CBNZ     r4,|L1.12|
;;;73             return ((void *)0);
000008  2000              MOVS     r0,#0
;;;74         }
;;;75         if (pevent == (OS_EVENT *)0) {               /* Validate 'pevent'                                  */
;;;76             *perr = OS_ERR_PEVENT_NULL;
;;;77             return ((void *)0);
;;;78         }
;;;79     #endif
;;;80         if (pevent->OSEventType != OS_EVENT_TYPE_Q) {/* Validate event block type                          */
;;;81             *perr = OS_ERR_EVENT_TYPE;
;;;82             return ((void *)0);
;;;83         }
;;;84         OS_ENTER_CRITICAL();
;;;85         pq = (OS_Q *)pevent->OSEventPtr;             /* Point at queue control block                       */
;;;86         if (pq->OSQEntries > 0) {                    /* See if any messages in the queue                   */
;;;87             pmsg = *pq->OSQOut++;                    /* Yes, extract oldest message from the queue         */
;;;88             pq->OSQEntries--;                        /* Update the number of entries in the queue          */
;;;89             if (pq->OSQOut == pq->OSQEnd) {          /* Wrap OUT pointer if we are at the end of the queue */
;;;90                 pq->OSQOut = pq->OSQStart;
;;;91             }
;;;92             *perr = OS_ERR_NONE;
;;;93         } else {
;;;94             *perr = OS_ERR_Q_EMPTY;
;;;95             pmsg  = (void *)0;                       /* Queue is empty                                     */
;;;96         }
;;;97         OS_EXIT_CRITICAL();
;;;98         return (pmsg);                               /* Return message received (or NULL)                  */
;;;99     }
00000a  bd70              POP      {r4-r6,pc}
                  |L1.12|
00000c  b91d              CBNZ     r5,|L1.22|
00000e  2004              MOVS     r0,#4
000010  7020              STRB     r0,[r4,#0]
000012  2000              MOVS     r0,#0
000014  bd70              POP      {r4-r6,pc}
                  |L1.22|
000016  7828              LDRB     r0,[r5,#0]
000018  2802              CMP      r0,#2
00001a  d003              BEQ      |L1.36|
00001c  2001              MOVS     r0,#1
00001e  7020              STRB     r0,[r4,#0]
000020  2000              MOVS     r0,#0
000022  bd70              POP      {r4-r6,pc}
                  |L1.36|
000024  f7fff7ff          BL       OS_CPU_SR_Save
000028  6869              LDR      r1,[r5,#4]
00002a  8aca              LDRH     r2,[r1,#0x16]
00002c  b172              CBZ      r2,|L1.76|
00002e  690b              LDR      r3,[r1,#0x10]
000030  1d1a              ADDS     r2,r3,#4
000032  610a              STR      r2,[r1,#0x10]
000034  681d              LDR      r5,[r3,#0]
000036  8acb              LDRH     r3,[r1,#0x16]
000038  1e5b              SUBS     r3,r3,#1
00003a  82cb              STRH     r3,[r1,#0x16]
00003c  688b              LDR      r3,[r1,#8]
00003e  429a              CMP      r2,r3
000040  d101              BNE      |L1.70|
000042  684a              LDR      r2,[r1,#4]
000044  610a              STR      r2,[r1,#0x10]
                  |L1.70|
000046  2100              MOVS     r1,#0
000048  7021              STRB     r1,[r4,#0]
00004a  e002              B        |L1.82|
                  |L1.76|
00004c  211f              MOVS     r1,#0x1f
00004e  7021              STRB     r1,[r4,#0]
000050  2500              MOVS     r5,#0
                  |L1.82|
000052  f7fff7ff          BL       OS_CPU_SR_Restore
000056  4628              MOV      r0,r5
000058  bd70              POP      {r4-r6,pc}
;;;100    #endif
                          ENDP

                  OSQCreate PROC
;;;121    OS_EVENT  *OSQCreate (void **start, INT16U size)
;;;122    {
00005a  e92de92d          PUSH     {r4-r8,lr}
00005e  4606              MOV      r6,r0
000060  460f              MOV      r7,r1
;;;123        OS_EVENT  *pevent;
;;;124        OS_Q      *pq;
;;;125    #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
;;;126        OS_CPU_SR  cpu_sr = 0;
;;;127    #endif
;;;128    
;;;129    
;;;130    
;;;131        if (OSIntNesting > 0) {                      /* See if called from ISR ...                         */
000062  48fc              LDR      r0,|L1.1108|
000064  7800              LDRB     r0,[r0,#0]  ; OSIntNesting
000066  b110              CBZ      r0,|L1.110|
;;;132            return ((OS_EVENT *)0);                  /* ... can't CREATE from an ISR                       */
000068  2000              MOVS     r0,#0
00006a  e8bde8bd          POP      {r4-r8,pc}
                  |L1.110|
;;;133        }
;;;134        OS_ENTER_CRITICAL();
00006e  f7fff7ff          BL       OS_CPU_SR_Save
;;;135        pevent = OSEventFreeList;                    /* Get next free event control block                  */
000072  f8dff8df          LDR      r8,|L1.1112|
000076  f8d8f8d8          LDR      r4,[r8,#0]  ; OSEventFreeList
;;;136        if (OSEventFreeList != (OS_EVENT *)0) {      /* See if pool of free ECB pool was empty             */
00007a  b114              CBZ      r4,|L1.130|
;;;137            OSEventFreeList = (OS_EVENT *)OSEventFreeList->OSEventPtr;
00007c  6861              LDR      r1,[r4,#4]
00007e  f8c8f8c8          STR      r1,[r8,#0]  ; OSEventFreeList
                  |L1.130|
;;;138        }
;;;139        OS_EXIT_CRITICAL();
000082  f7fff7ff          BL       OS_CPU_SR_Restore
;;;140        if (pevent != (OS_EVENT *)0) {               /* See if we have an event control block              */
000086  2c00              CMP      r4,#0
000088  d024              BEQ      |L1.212|
;;;141            OS_ENTER_CRITICAL();
00008a  f7fff7ff          BL       OS_CPU_SR_Save
;;;142            pq = OSQFreeList;                        /* Get a free queue control block                     */
00008e  49f3              LDR      r1,|L1.1116|
000090  680d              LDR      r5,[r1,#0]  ; OSQFreeList
;;;143            if (pq != (OS_Q *)0) {                   /* Were we able to get a queue control block ?        */
000092  b1bd              CBZ      r5,|L1.196|
;;;144                OSQFreeList            = OSQFreeList->OSQPtr; /* Yes, Adjust free list pointer to next free*/
000094  682a              LDR      r2,[r5,#0]
000096  600a              STR      r2,[r1,#0]  ; OSQFreeList
;;;145                OS_EXIT_CRITICAL();
000098  f7fff7ff          BL       OS_CPU_SR_Restore
;;;146                pq->OSQStart           = start;               /*      Initialize the queue                 */
00009c  606e              STR      r6,[r5,#4]
;;;147                pq->OSQEnd             = &start[size];
00009e  eb06eb06          ADD      r0,r6,r7,LSL #2
0000a2  60a8              STR      r0,[r5,#8]
;;;148                pq->OSQIn              = start;
0000a4  60ee              STR      r6,[r5,#0xc]
;;;149                pq->OSQOut             = start;
0000a6  612e              STR      r6,[r5,#0x10]
;;;150                pq->OSQSize            = size;
0000a8  82af              STRH     r7,[r5,#0x14]
;;;151                pq->OSQEntries         = 0;
0000aa  2000              MOVS     r0,#0
0000ac  82e8              STRH     r0,[r5,#0x16]
;;;152                pevent->OSEventType    = OS_EVENT_TYPE_Q;
0000ae  2102              MOVS     r1,#2
0000b0  7021              STRB     r1,[r4,#0]
;;;153                pevent->OSEventCnt     = 0;
0000b2  8120              STRH     r0,[r4,#8]
;;;154                pevent->OSEventPtr     = pq;
0000b4  6065              STR      r5,[r4,#4]
;;;155    #if OS_EVENT_NAME_SIZE > 1
;;;156                pevent->OSEventName[0] = '?';                  /* Unknown name                             */
0000b6  213f              MOVS     r1,#0x3f
0000b8  73e1              STRB     r1,[r4,#0xf]
;;;157                pevent->OSEventName[1] = OS_ASCII_NUL;
0000ba  7420              STRB     r0,[r4,#0x10]
;;;158    #endif
;;;159                OS_EventWaitListInit(pevent);                 /*      Initalize the wait list              */
0000bc  4620              MOV      r0,r4
0000be  f7fff7ff          BL       OS_EventWaitListInit
0000c2  e007              B        |L1.212|
                  |L1.196|
;;;160            } else {
;;;161                pevent->OSEventPtr = (void *)OSEventFreeList; /* No,  Return event control block on error  */
0000c4  f8d8f8d8          LDR      r1,[r8,#0]  ; OSEventFreeList
0000c8  6061              STR      r1,[r4,#4]
;;;162                OSEventFreeList    = pevent;
0000ca  f8c8f8c8          STR      r4,[r8,#0]  ; OSEventFreeList
;;;163                OS_EXIT_CRITICAL();
0000ce  f7fff7ff          BL       OS_CPU_SR_Restore
;;;164                pevent = (OS_EVENT *)0;
0000d2  2400              MOVS     r4,#0
                  |L1.212|
;;;165            }
;;;166        }
;;;167        return (pevent);
0000d4  4620              MOV      r0,r4
;;;168    }
0000d6  e8bde8bd          POP      {r4-r8,pc}
;;;169    /*$PAGE*/
                          ENDP

                  OSQDel PROC
;;;212    OS_EVENT  *OSQDel (OS_EVENT *pevent, INT8U opt, INT8U *perr)
;;;213    {
0000da  e92de92d          PUSH     {r4-r12,lr}
0000de  4604              MOV      r4,r0
0000e0  460f              MOV      r7,r1
0000e2  4615              MOV      r5,r2
;;;214        BOOLEAN    tasks_waiting;
;;;215        OS_EVENT  *pevent_return;
;;;216        OS_Q      *pq;
;;;217    #if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
;;;218        OS_CPU_SR  cpu_sr = 0;
;;;219    #endif
;;;220    
;;;221    
;;;222    
;;;223    #if OS_ARG_CHK_EN > 0
;;;224        if (perr == (INT8U *)0) {                              /* Validate 'perr'                          */
0000e4  b915              CBNZ     r5,|L1.236|
;;;225            return (pevent);
0000e6  4620              MOV      r0,r4
0000e8  e8bde8bd          POP      {r4-r12,pc}
                  |L1.236|
;;;226        }
;;;227        if (pevent == (OS_EVENT *)0) {                         /* Validate 'pevent'                        */
0000ec  b924              CBNZ     r4,|L1.248|
;;;228            *perr = OS_ERR_PEVENT_NULL;
0000ee  2004              MOVS     r0,#4
0000f0  7028              STRB     r0,[r5,#0]
;;;229            return (pevent);
0000f2  4620              MOV      r0,r4
0000f4  e8bde8bd          POP      {r4-r12,pc}
                  |L1.248|
;;;230        }
;;;231    #endif
;;;232        if (pevent->OSEventType != OS_EVENT_TYPE_Q) {          /* Validate event block type                */
0000f8  7820              LDRB     r0,[r4,#0]
0000fa  2802              CMP      r0,#2
0000fc  d004              BEQ      |L1.264|
;;;233            *perr = OS_ERR_EVENT_TYPE;
0000fe  2001              MOVS     r0,#1
000100  7028              STRB     r0,[r5,#0]
;;;234            return (pevent);
000102  4620              MOV      r0,r4
000104  e8bde8bd          POP      {r4-r12,pc}
                  |L1.264|
;;;235        }
;;;236        if (OSIntNesting > 0) {                                /* See if called from ISR ...               */
000108  48d2              LDR      r0,|L1.1108|
00010a  7800              LDRB     r0,[r0,#0]  ; OSIntNesting
00010c  b120              CBZ      r0,|L1.280|

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆精品久久一二三| 一区二区成人在线视频 | 亚洲成人精品一区二区| 国产精品二区一区二区aⅴ污介绍| 日韩精品一区二区三区四区| 欧美一区二区三区婷婷月色| 欧美精品乱码久久久久久按摩| 97精品超碰一区二区三区| 99精品欧美一区二区蜜桃免费 | 国产精品二区一区二区aⅴ污介绍| 久久久国产精品不卡| 国产亚洲欧洲997久久综合 | 亚洲欧美激情一区二区| 自拍偷拍亚洲欧美日韩| 亚洲精品国产a久久久久久| 一区二区三区中文字幕精品精品| 一区二区三区欧美日| 亚洲福利视频一区二区| 免费看欧美美女黄的网站| 国产尤物一区二区在线| 成人av在线播放网址| 日本久久精品电影| 欧美电影影音先锋| 欧美韩日一区二区三区四区| 国产精品嫩草99a| 综合久久综合久久| 日av在线不卡| 成人一级黄色片| 欧美亚洲一区二区三区四区| 日韩精品一区二区三区中文不卡| 国产精品久久午夜| 亚洲午夜电影在线| 国产在线播放一区三区四| 99久久精品免费看| 日韩精品一区二区在线| 1区2区3区精品视频| 日本午夜一区二区| 色综合久久综合中文综合网| 欧美一区二区精品久久911| 国产精品三级av在线播放| 亚洲国产精品麻豆| 国产大陆亚洲精品国产| 欧美日韩激情一区二区| 欧美国产一区二区| 日韩电影在线观看电影| www.欧美亚洲| 26uuu精品一区二区在线观看| 亚洲视频中文字幕| 国产毛片精品视频| 欧美精品视频www在线观看| 中文字幕亚洲成人| 久久国产尿小便嘘嘘| 欧美在线你懂的| 一区二区中文视频| 国产乱子轮精品视频| 日韩一区二区免费在线观看| 一区二区三区中文在线| 韩国成人精品a∨在线观看| 69堂成人精品免费视频| 亚洲欧美日韩国产手机在线| 日韩一区二区三区视频在线| 色综合av在线| 精品影院一区二区久久久| 国产成人99久久亚洲综合精品| 性欧美疯狂xxxxbbbb| 午夜精品福利一区二区蜜股av | 国产·精品毛片| 国产自产2019最新不卡| 全国精品久久少妇| 97久久久精品综合88久久| 一区在线观看视频| 91麻豆产精品久久久久久| 精品免费一区二区三区| 国产精品一品二品| 国产成人综合亚洲网站| 日韩欧美高清dvd碟片| 亚洲福利一区二区| 精品视频色一区| 亚洲444eee在线观看| 欧美性视频一区二区三区| 亚洲一区二区三区视频在线播放| 99久久免费视频.com| 亚洲日本中文字幕区| 欧美在线短视频| 亚洲日本va午夜在线电影| 91在线精品一区二区三区| 亚洲欧美日韩国产中文在线| 色综合久久中文综合久久牛| 一区二区三区不卡视频在线观看| 在线国产电影不卡| 亚洲电影欧美电影有声小说| 欧美一区日韩一区| 精品一区二区三区蜜桃| 日本一区二区三级电影在线观看 | 在线播放中文字幕一区| 麻豆国产欧美日韩综合精品二区| 中文字幕一区免费在线观看| 中文字幕一区二区日韩精品绯色| 视频一区二区中文字幕| 麻豆91免费观看| 欧美综合天天夜夜久久| 精品国产伦理网| 欧美三级日韩三级| 成人免费在线视频| 精品一区二区日韩| 国产一区二区伦理| 国产精品成人免费在线| 日本丰满少妇一区二区三区| 亚洲另类春色国产| 亚洲一区中文在线| 蜜臀99久久精品久久久久久软件| 国产69精品久久久久毛片| 欧美一区二区三区白人| 国产经典欧美精品| 麻豆精品国产91久久久久久| 在线中文字幕一区二区| 亚洲男同性恋视频| 岛国精品一区二区| 最新国产の精品合集bt伙计| 青娱乐精品在线视频| 久久国产精品99精品国产 | 欧美性色综合网| 国产精品天干天干在线综合| 亚洲国产精品尤物yw在线观看| 色综合一个色综合| 久久综合综合久久综合| 精品av久久707| 在线观看不卡一区| 国产精品中文字幕一区二区三区| 亚洲色图欧洲色图| 亚洲精品一区二区三区蜜桃下载| 91婷婷韩国欧美一区二区| 五月天丁香久久| 亚洲免费观看高清在线观看| 欧美一区二区在线观看| 成人黄色777网| 日本女优在线视频一区二区| 精品国产乱码久久久久久牛牛| 9i看片成人免费高清| 精品一区二区三区免费观看| 亚洲成人免费视频| 婷婷国产v国产偷v亚洲高清| 国产精品久久久久一区二区三区| 555夜色666亚洲国产免| 欧美日韩大陆一区二区| 国产伦精品一区二区三区免费迷 | 亚洲福利一区二区| 18欧美亚洲精品| 日日夜夜免费精品| 精品国产免费久久| 国产亚洲婷婷免费| 成人欧美一区二区三区黑人麻豆| 日韩一区二区三区视频在线| 欧美tk丨vk视频| 亚洲视频在线一区观看| 亚洲国产精品久久不卡毛片| 亚洲精品中文字幕乱码三区| 韩日av一区二区| 69成人精品免费视频| 五月激情综合网| 欧美亚洲动漫另类| 一区二区三区欧美在线观看| 国产白丝精品91爽爽久久| 久久久一区二区三区捆绑**| 午夜精品久久久久久不卡8050| 国产自产视频一区二区三区| 欧美午夜精品一区二区蜜桃| 中文乱码免费一区二区| 久久精品国产久精国产爱| 欧美写真视频网站| 丝袜亚洲精品中文字幕一区| 亚洲高清视频的网址| 在线观看一区二区视频| 亚洲成人一区二区| 天天亚洲美女在线视频| 高清在线成人网| 欧美mv和日韩mv的网站| 亚洲精品一区二区三区精华液| 亚洲综合一区二区三区| 成人激情校园春色| 日韩三级视频在线看| 亚洲最大色网站| proumb性欧美在线观看| 久久网这里都是精品| 日韩国产欧美在线播放| 欧美视频一区二区三区在线观看 | 午夜av一区二区三区| 欧美主播一区二区三区美女| 中文字幕中文字幕在线一区| 美脚の诱脚舐め脚责91 | 欧美日韩一区二区三区免费看| 国产人久久人人人人爽| 久久97超碰色| 国产日韩高清在线| 成人黄色电影在线| 中文字幕在线不卡一区| 成人av先锋影音| 亚洲大片在线观看| 欧美一区二区三区免费观看视频| 丝袜亚洲另类欧美综合|