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

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

?? os_task.lis

?? ucos如何移植到單片機mega128
?? LIS
?? 第 1 頁 / 共 5 頁
字號:
 01D8           ;         OS_ENTER_CRITICAL();                                    /* ... disabled HERE!                  */
 01D8 0A93              st -y,r16
 01DA 0FB7              in r16,0x3F
 01DC F894              cli
 01DE 0F93              push r16
 01E0 0991              ld r16,y+
 01E2                   .dbline 415
 01E2                   .dbline 416
 01E2           ;               if (OSLockNesting > 0) {
 01E2 2224              clr R2
 01E4 30900000          lds R3,_OSLockNesting
 01E8 2314              cp R2,R3
 01EA 20F4              brsh L29
 01EC                   .dbline 416
 01EC                   .dbline 417
 01EC           ;             OSLockNesting--;
 01EC 832D              mov R24,R3
 01EE 8150              subi R24,1
 01F0 80930000          sts _OSLockNesting,R24
 01F4                   .dbline 418
 01F4           ;               }
 01F4           L29:
 01F4                   .dbline 419
 01F4           ;         OSTaskDelHook(ptcb);                                    /* Call user defined hook              */
 01F4 8A01              movw R16,R20
 01F6 0E940000          xcall _OSTaskDelHook
 01FA                   .dbline 420
 01FA           ;         OSTaskCtr--;                                            /* One less task being managed         */
 01FA 80910000          lds R24,_OSTaskCtr
 01FE 8150              subi R24,1
 0200 80930000          sts _OSTaskCtr,R24
 0204                   .dbline 421
 0204           ;         OSTCBPrioTbl[prio] = (OS_TCB *)0;                       /* Clear old priority entry            */
 0204 82E0              ldi R24,2
 0206 869F              mul R24,R22
 0208 F001              movw R30,R0
 020A 80E0              ldi R24,<_OSTCBPrioTbl
 020C 90E0              ldi R25,>_OSTCBPrioTbl
 020E E80F              add R30,R24
 0210 F91F              adc R31,R25
 0212 2224              clr R2
 0214 3324              clr R3
 0216 3182              std z+1,R3
 0218 2082              std z+0,R2
 021A                   .dbline 422
 021A           ;         if (ptcb->OSTCBPrev == (OS_TCB *)0) {                   /* Remove from TCB chain               */
 021A FA01              movw R30,R20
 021C 2480              ldd R2,z+4
 021E 3580              ldd R3,z+5
 0220 2220              tst R2
 0222 91F4              brne L31
 0224 3320              tst R3
 0226 81F4              brne L31
 0228           X5:
 0228                   .dbline 422
 0228                   .dbline 423
 0228           ;             ptcb->OSTCBNext->OSTCBPrev = (OS_TCB *)0;
 0228 2224              clr R2
 022A 3324              clr R3
 022C FA01              movw R30,R20
 022E A281              ldd R26,z+2
 0230 B381              ldd R27,z+3
 0232 1496              adiw R26,4
 0234 2D92              st x+,R2
 0236 3C92              st x,R3
 0238                   .dbline 424
 0238           ;             OSTCBList                  = ptcb->OSTCBNext;
 0238 FA01              movw R30,R20
 023A 2280              ldd R2,z+2
 023C 3380              ldd R3,z+3
 023E 30920100          sts _OSTCBList+1,R3
 0242 20920000          sts _OSTCBList,R2
 0246                   .dbline 425
 0246 12C0              xjmp L32
 0248           L31:
 0248                   .dbline 425
 0248           ;         } else {
 0248                   .dbline 426
 0248           ;             ptcb->OSTCBPrev->OSTCBNext = ptcb->OSTCBNext;
 0248 FA01              movw R30,R20
 024A 2280              ldd R2,z+2
 024C 3380              ldd R3,z+3
 024E FA01              movw R30,R20
 0250 A481              ldd R26,z+4
 0252 B581              ldd R27,z+5
 0254 1296              adiw R26,2
 0256 2D92              st x+,R2
 0258 3C92              st x,R3
 025A                   .dbline 427
 025A           ;             ptcb->OSTCBNext->OSTCBPrev = ptcb->OSTCBPrev;
 025A FA01              movw R30,R20
 025C 2480              ldd R2,z+4
 025E 3580              ldd R3,z+5
 0260 FA01              movw R30,R20
 0262 A281              ldd R26,z+2
 0264 B381              ldd R27,z+3
 0266 1496              adiw R26,4
 0268 2D92              st x+,R2
 026A 3C92              st x,R3
 026C                   .dbline 428
 026C           ;         }
 026C           L32:
 026C                   .dbline 429
 026C           ;         ptcb->OSTCBNext = OSTCBFreeList;                        /* Return TCB to free TCB list         */
 026C 20900000          lds R2,_OSTCBFreeList
 0270 30900100          lds R3,_OSTCBFreeList+1
 0274 FA01              movw R30,R20
 0276 3382              std z+3,R3
 0278 2282              std z+2,R2
 027A                   .dbline 430
 027A           ;         OSTCBFreeList   = ptcb;
 027A 50930100          sts _OSTCBFreeList+1,R21
 027E 40930000          sts _OSTCBFreeList,R20
 0282                   .dbline 431
 0282           ;         OS_EXIT_CRITICAL();
 0282 0A93              st -y,r16
 0284 0F91              pop r16
 0286 0FBF              out 0x3F,r16
 0288 0991              ld r16,y+
 028A                   .dbline 431
 028A                   .dbline 432
 028A           ;         OS_Sched();                                             /* Find new highest priority task      */
 028A 0E940000          xcall _OS_Sched
 028E                   .dbline 433
 028E           ;         return (OS_NO_ERR);
 028E 0027              clr R16
 0290 05C0              xjmp L12
 0292           L21:
 0292                   .dbline 435
 0292           ;     }
 0292           ;     OS_EXIT_CRITICAL();
 0292 0A93              st -y,r16
 0294 0F91              pop r16
 0296 0FBF              out 0x3F,r16
 0298 0991              ld r16,y+
 029A                   .dbline 435
 029A                   .dbline 436
 029A           ;     return (OS_TASK_DEL_ERR);
 029A 0CE3              ldi R16,60
 029C                   .dbline -2
 029C           L12:
 029C 0E940000          xcall pop_gset3
 02A0                   .dbline 0 ; func end
 02A0 0895              ret
 02A2                   .dbsym l self 1 c
 02A2                   .dbsym r pnode 10 pS[.2]
 02A2                   .dbsym r ptcb 20 pS[os_tcb]
 02A2                   .dbsym r prio 22 c
 02A2                   .dbend
 02A2                   .dbfunc e OSTaskDelReq _OSTaskDelReq fc
 02A2           ;           stat -> R20
 02A2           ;            err -> R20
 02A2           ;           ptcb -> R20,R21
 02A2           ;           prio -> R16
                        .even
 02A2           _OSTaskDelReq::
 02A2 0E940000          xcall push_gset1
 02A6                   .dbline -1
 02A6                   .dbline 487
 02A6           ; }
 02A6           ; #endif
 02A6           ; /*$PAGE*/
 02A6           ; /*
 02A6           ; *********************************************************************************************************
 02A6           ; *                                    REQUEST THAT A TASK DELETE ITSELF
 02A6           ; *
 02A6           ; * Description: This function is used to:
 02A6           ; *                   a) notify a task to delete itself.
 02A6           ; *                   b) to see if a task requested that the current task delete itself.
 02A6           ; *              This function is a little tricky to understand.  Basically, you have a task that needs
 02A6           ; *              to be deleted however, this task has resources that it has allocated (memory buffers,
 02A6           ; *              semaphores, mailboxes, queues etc.).  The task cannot be deleted otherwise these
 02A6           ; *              resources would not be freed.  The requesting task calls OSTaskDelReq() to indicate that
 02A6           ; *              the task needs to be deleted.  Deleting of the task is however, deferred to the task to
 02A6           ; *              be deleted.  For example, suppose that task #10 needs to be deleted.  The requesting task
 02A6           ; *              example, task #5, would call OSTaskDelReq(10).  When task #10 gets to execute, it calls
 02A6           ; *              this function by specifying OS_PRIO_SELF and monitors the returned value.  If the return
 02A6           ; *              value is OS_TASK_DEL_REQ, another task requested a task delete.  Task #10 would look like
 02A6           ; *              this:
 02A6           ; *
 02A6           ; *                   void Task(void *data)
 02A6           ; *                   {
 02A6           ; *                       .
 02A6           ; *                       .
 02A6           ; *                       while (1) {
 02A6           ; *                           OSTimeDly(1);
 02A6           ; *                           if (OSTaskDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ) {
 02A6           ; *                               Release any owned resources;
 02A6           ; *                               De-allocate any dynamic memory;
 02A6           ; *                               OSTaskDel(OS_PRIO_SELF);
 02A6           ; *                           }
 02A6           ; *                       }
 02A6           ; *                   }
 02A6           ; *
 02A6           ; * Arguments  : prio    is the priority of the task to request the delete from
 02A6           ; *
 02A6           ; * Returns    : OS_NO_ERR          if the task exist and the request has been registered
 02A6           ; *              OS_TASK_NOT_EXIST  if the task has been deleted.  This allows the caller to know whether
 02A6           ; *                                 the request has been executed.
 02A6           ; *              OS_TASK_DEL_IDLE   if you requested to delete uC/OS-II's idle task
 02A6           ; *              OS_PRIO_INVALID    if the priority you specify is higher that the maximum allowed
 02A6           ; *                                 (i.e. >= OS_LOWEST_PRIO) or, you have not specified OS_PRIO_SELF.
 02A6           ; *              OS_TASK_DEL_REQ    if a task (possibly another task) requested that the running task be
 02A6           ; *                                 deleted.
 02A6           ; *********************************************************************************************************
 02A6           ; */
 02A6           ; /*$PAGE*/
 02A6           ; #if OS_TASK_DEL_EN > 0
 02A6           ; INT8U  OSTaskDelReq (INT8U prio)
 02A6           ; {
 02A6                   .dbline 497
 02A6           ; #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
 02A6           ;     OS_CPU_SR  cpu_sr;
 02A6           ; #endif
 02A6           ;     BOOLEAN    stat;
 02A6           ;     INT8U      err;
 02A6           ;     OS_TCB    *ptcb;
 02A6           ; 
 02A6           ; 
 02A6           ; #if OS_ARG_CHK_EN > 0
 02A6           ;     if (prio == OS_IDLE_PRIO) {                                 /* Not allowed to delete idle task     */
 02A6 0431              cpi R16,20
 02A8 11F4              brne L34
 02AA                   .dbline 497
 02AA                   .dbline 498
 02AA           ;         return (OS_TASK_DEL_IDLE);
 02AA 0DE3              ldi R16,61
 02AC 34C0              xjmp L33
 02AE           L34:
 02AE                   .dbline 500
 02AE           ;     }
 02AE           ;     if (prio >= OS_LOWEST_PRIO && prio != OS_PRIO_SELF) {       /* Task priority valid ?               */
 02AE 0431              cpi R16,20
 02B0 20F0              brlo L36
 02B2 0F3F              cpi R16,255
 02B4 11F0              breq L36
 02B6                   .dbline 500
 02B6                   .dbline 501
 02B6           ;         return (OS_PRIO_INVALID);
 02B6 0AE2              ldi R16,42
 02B8 2EC0              xjmp L33
 02BA           L36:
 02BA                   .dbline 504
 02BA           ;     }
 02BA           ; #endif
 02BA           ;     if (prio == OS_PRIO_SELF) {                                 /* See if a task is requesting to ...  */
 02BA 0F3F              cpi R16,255
 02BC 81F4              brne L38
 02BE                   .dbline 504
 02BE                   .dbline 505
 02BE           ;         OS_ENTER_CRITICAL();                                    /* ... this task to delete itself      */
 02BE 0A93              st -y,r16
 02C0 0FB7              in r16,0x3F
 02C2 F894              cli
 02C4 0F93              push r16
 02C6 0991              ld r16,y+
 02C8                   .dbline 505
 02C8                   .dbline 506
 02C8           ;         stat = OSTCBCur->OSTCBDelReq;                           /* Return request status to caller     */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品污网站| 国产精品一级黄| 精品亚洲欧美一区| 91丝袜美女网| 精品区一区二区| 亚洲网友自拍偷拍| 成人精品小蝌蚪| 久久这里只有精品视频网| 亚洲一区二区不卡免费| 国产999精品久久| 欧美电影免费提供在线观看| 亚洲麻豆国产自偷在线| 国产激情视频一区二区三区欧美| 欧美日韩成人综合| 亚洲码国产岛国毛片在线| 国产成人综合视频| 精品999在线播放| 日本不卡一二三| 欧美日韩在线观看一区二区| 亚洲丝袜精品丝袜在线| 国产乱一区二区| 精品久久一二三区| 蜜桃精品视频在线| 91麻豆精品国产91久久久久久久久| 亚洲男人天堂av网| 99在线热播精品免费| 中国色在线观看另类| 国产精品一级二级三级| 久久综合色综合88| 精品一区二区三区日韩| 日韩精品一区二区三区老鸭窝| 五月婷婷欧美视频| 欧美伦理影视网| 日本成人超碰在线观看| 91精品国产手机| 美女网站在线免费欧美精品| 日韩视频一区二区在线观看| 日韩激情视频在线观看| 日韩视频在线永久播放| 精品一区免费av| 国产女主播在线一区二区| 国产91清纯白嫩初高中在线观看| 欧美激情综合五月色丁香| 成人精品国产福利| 亚洲日韩欧美一区二区在线| 在线一区二区三区四区五区 | 日韩av不卡一区二区| 91激情在线视频| 午夜精品影院在线观看| 91精品国产色综合久久不卡电影 | 成人国产免费视频| 亚洲欧洲在线观看av| 91丨九色丨蝌蚪丨老版| 午夜天堂影视香蕉久久| 欧美电影免费观看高清完整版在| 免费观看久久久4p| 国产欧美一区二区精品性色超碰 | 欧美一区二区三区性视频| 蜜臀国产一区二区三区在线播放| 久久久国产一区二区三区四区小说 | 国产一区二区三区av电影| 欧美激情在线观看视频免费| 色悠悠久久综合| 美女视频免费一区| 中文字幕亚洲电影| 这里只有精品视频在线观看| 国产精品99久久久久| 亚洲综合图片区| 久久蜜桃av一区二区天堂| 在线免费观看日本欧美| 久久精品久久综合| 亚洲免费三区一区二区| 精品成人在线观看| 欧美影视一区二区三区| 国产一区二区调教| 亚洲成va人在线观看| 中文字幕不卡的av| 日韩精品一区二区三区中文精品| 91免费视频观看| 久久精品理论片| 亚洲国产另类av| 国产情人综合久久777777| 51午夜精品国产| 91亚洲国产成人精品一区二三 | 日韩亚洲欧美在线观看| av中文字幕不卡| 国产一区日韩二区欧美三区| 亚洲大片精品永久免费| 国产精品色哟哟| 精品日本一线二线三线不卡| 欧美日韩久久久| 99久久精品免费看| 狠狠色综合日日| 秋霞国产午夜精品免费视频| 亚洲精品一二三| 国产精品成人一区二区艾草 | 国产精品伊人色| 亚洲激情自拍视频| 久久久精品免费观看| 91精品福利在线一区二区三区 | 亚洲香肠在线观看| 中文字幕免费在线观看视频一区| 欧美高清性hdvideosex| 欧美偷拍一区二区| 91麻豆.com| 色综合视频一区二区三区高清| 国产传媒日韩欧美成人| 国产伦精品一区二区三区免费迷 | 日韩欧美你懂的| 欧美日韩免费电影| 欧美亚洲动漫另类| 欧洲另类一二三四区| 91色在线porny| 日本道免费精品一区二区三区| 91在线无精精品入口| 99精品国产99久久久久久白柏| 成人一区二区三区视频| 成人午夜碰碰视频| 成人午夜av电影| 99精品视频在线播放观看| 91在线无精精品入口| 91老司机福利 在线| 精品视频999| 在线综合视频播放| 26uuu精品一区二区三区四区在线| 欧美tickling网站挠脚心| 日韩天堂在线观看| 久久久影视传媒| 国产精品麻豆网站| 亚洲综合丁香婷婷六月香| 亚洲午夜成aⅴ人片| 日日夜夜免费精品| 精品一区二区三区久久久| 国产成人丝袜美腿| 91一区二区在线| 91精品国产综合久久香蕉的特点| 欧美xfplay| 国产精品大尺度| 天堂一区二区在线| 国产电影一区二区三区| 色综合一区二区| 777欧美精品| 中文字幕不卡三区| 亚洲一级不卡视频| 黄色小说综合网站| 成人精品电影在线观看| 欧美日韩高清一区二区不卡| 精品免费99久久| 亚洲国产精品传媒在线观看| 一区二区三区在线观看动漫 | 精品三级在线看| 国产精品久久久久久妇女6080| 一级精品视频在线观看宜春院| 久久精品国产成人一区二区三区| 成人黄色免费短视频| 欧美久久久久久久久久| 日本一区二区电影| 麻豆91精品91久久久的内涵| 成人精品国产一区二区4080 | 欧美日韩专区在线| 久久―日本道色综合久久| 亚洲乱码国产乱码精品精小说 | 亚洲午夜国产一区99re久久| 久久99蜜桃精品| 色婷婷亚洲综合| 国产亚洲精品7777| 石原莉奈在线亚洲三区| 成人app网站| 欧美成人三级在线| 亚洲成人av中文| 不卡av免费在线观看| 精品剧情在线观看| 夜夜嗨av一区二区三区四季av| 国产一区二区三区免费在线观看| 色哦色哦哦色天天综合| 2023国产精品视频| 午夜视频在线观看一区二区三区| 99久久99久久综合| 国产亚洲欧美日韩日本| 丝袜亚洲精品中文字幕一区| 91亚洲精品久久久蜜桃网站| 国产免费久久精品| 国模套图日韩精品一区二区| 欧美一区二区在线免费播放| 亚洲国产精品影院| 色先锋资源久久综合| 国产精品久久久久久亚洲毛片 | 国产精品免费久久| 国产乱色国产精品免费视频| 日韩女优毛片在线| 日韩福利视频导航| 欧美精品在线观看播放| 性做久久久久久免费观看| 欧美在线色视频| 亚洲狼人国产精品| 欧美剧情片在线观看| 首页国产丝袜综合| 欧美一区二区视频观看视频| 日本成人中文字幕| 日韩一区二区三区视频在线观看|