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

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

?? os_task.lis

?? ucos如何移植到單片機mega128
?? LIS
?? 第 1 頁 / 共 5 頁
字號:
 0116           ;         if (((opt & OS_TASK_OPT_STK_CHK) != 0x0000) ||   /* See if stack checking has been enabled     */
 0116           ;             ((opt & OS_TASK_OPT_STK_CLR) != 0x0000)) {   /* See if stack needs to be cleared           */
 0116           ;             #if OS_STK_GROWTH == 1
 0116           ;             (void)memset(pbos, 0, stk_size * sizeof(OS_STK));
 0116           ;             #else
 0116           ;             (void)memset(ptos, 0, stk_size * sizeof(OS_STK));
 0116           ;             #endif
 0116           ;         }
 0116           ; 
 0116           ;         psp = (OS_STK *)OSTaskStkInit(task, pdata, ptos, opt); /* Initialize the task's stack          */
 0116           ;         err = OS_TCBInit(prio, psp, pbos, id, stk_size, pext, opt);
 0116           ;         if (err == OS_NO_ERR) {
 0116           ;             OS_ENTER_CRITICAL();
 0116           ;             OSTaskCtr++;                                       /* Increment the #tasks counter         */
 0116           ;             OS_EXIT_CRITICAL();
 0116           ;             if (OSRunning == TRUE) {                           /* Find HPT if multitasking has started */
 0116           ;                 OS_Sched();
 0116           ;             }
 0116           ;         } else {
 0116           ;             OS_ENTER_CRITICAL();
 0116           ;             OSTCBPrioTbl[prio] = (OS_TCB *)0;                  /* Make this priority avail. to others  */
 0116           ;             OS_EXIT_CRITICAL();
 0116           ;         }
 0116           ;         return (err);
 0116           ;     }
 0116           ;     OS_EXIT_CRITICAL();
 0116           ;     return (OS_PRIO_EXIST);
 0116           ; }
 0116           ; #endif
 0116           ; /*$PAGE*/
 0116           ; /*
 0116           ; *********************************************************************************************************
 0116           ; *                                            DELETE A TASK
 0116           ; *
 0116           ; * Description: This function allows you to delete a task.  The calling task can delete itself by
 0116           ; *              its own priority number.  The deleted task is returned to the dormant state and can be
 0116           ; *              re-activated by creating the deleted task again.
 0116           ; *
 0116           ; * Arguments  : prio    is the priority of the task to delete.  Note that you can explicitely delete
 0116           ; *                      the current task without knowing its priority level by setting 'prio' to
 0116           ; *                      OS_PRIO_SELF.
 0116           ; *
 0116           ; * Returns    : OS_NO_ERR           if the call is successful
 0116           ; *              OS_TASK_DEL_IDLE    if you attempted to delete uC/OS-II's idle task
 0116           ; *              OS_PRIO_INVALID     if the priority you specify is higher that the maximum allowed
 0116           ; *                                  (i.e. >= OS_LOWEST_PRIO) or, you have not specified OS_PRIO_SELF.
 0116           ; *              OS_TASK_DEL_ERR     if the task you want to delete does not exist
 0116           ; *              OS_TASK_DEL_ISR     if you tried to delete a task from an ISR
 0116           ; *
 0116           ; * Notes      : 1) To reduce interrupt latency, OSTaskDel() 'disables' the task:
 0116           ; *                    a) by making it not ready
 0116           ; *                    b) by removing it from any wait lists
 0116           ; *                    c) by preventing OSTimeTick() from making the task ready to run.
 0116           ; *                 The task can then be 'unlinked' from the miscellaneous structures in uC/OS-II.
 0116           ; *              2) The function OS_Dummy() is called after OS_EXIT_CRITICAL() because, on most processors,
 0116           ; *                 the next instruction following the enable interrupt instruction is ignored.  
 0116           ; *              3) An ISR cannot delete a task.
 0116           ; *              4) The lock nesting counter is incremented because, for a brief instant, if the current
 0116           ; *                 task is being deleted, the current task would not be able to be rescheduled because it
 0116           ; *                 is removed from the ready list.  Incrementing the nesting counter prevents another task
 0116           ; *                 from being schedule.  This means that an ISR would return to the current task which is
 0116           ; *                 being deleted.  The rest of the deletion would thus be able to be completed.
 0116           ; *********************************************************************************************************
 0116           ; */
 0116           ; /*$PAGE*/
 0116           ; #if OS_TASK_DEL_EN > 0
 0116           ; INT8U  OSTaskDel (INT8U prio)
 0116           ; {
 0116                   .dbline 374
 0116           ; #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
 0116           ;     OS_CPU_SR     cpu_sr;
 0116           ; #endif
 0116           ; 
 0116           ; #if OS_EVENT_EN > 0
 0116           ;     OS_EVENT     *pevent;
 0116           ; #endif    
 0116           ; #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0)
 0116           ;     OS_FLAG_NODE *pnode;
 0116           ; #endif
 0116           ;     OS_TCB       *ptcb;
 0116           ;     BOOLEAN       self;
 0116           ; 
 0116           ; 
 0116           ; 
 0116           ;     if (OSIntNesting > 0) {                                     /* See if trying to delete from ISR    */
 0116 2224              clr R2
 0118 30900000          lds R3,_OSIntNesting
 011C 2314              cp R2,R3
 011E 10F4              brsh L13
 0120                   .dbline 374
 0120                   .dbline 375
 0120           ;         return (OS_TASK_DEL_ISR);
 0120 0FE3              ldi R16,63
 0122 BCC0              xjmp L12
 0124           L13:
 0124                   .dbline 378
 0124           ;     }
 0124           ; #if OS_ARG_CHK_EN > 0
 0124           ;     if (prio == OS_IDLE_PRIO) {                                 /* Not allowed to delete idle task     */
 0124 6431              cpi R22,20
 0126 11F4              brne L15
 0128                   .dbline 378
 0128                   .dbline 379
 0128           ;         return (OS_TASK_DEL_IDLE);
 0128 0DE3              ldi R16,61
 012A B8C0              xjmp L12
 012C           L15:
 012C                   .dbline 381
 012C           ;     }
 012C           ;     if (prio >= OS_LOWEST_PRIO && prio != OS_PRIO_SELF) {       /* Task priority valid ?               */
 012C 6431              cpi R22,20
 012E 20F0              brlo L17
 0130 6F3F              cpi R22,255
 0132 11F0              breq L17
 0134                   .dbline 381
 0134                   .dbline 382
 0134           ;         return (OS_PRIO_INVALID);
 0134 0AE2              ldi R16,42
 0136 B2C0              xjmp L12
 0138           L17:
 0138                   .dbline 385
 0138           ;     }
 0138           ; #endif
 0138           ;     OS_ENTER_CRITICAL();
 0138 0A93              st -y,r16
 013A 0FB7              in r16,0x3F
 013C F894              cli
 013E 0F93              push r16
 0140 0991              ld r16,y+
 0142                   .dbline 385
 0142                   .dbline 386
 0142           ;     if (prio == OS_PRIO_SELF) {                                 /* See if requesting to delete self    */
 0142 6F3F              cpi R22,255
 0144 29F4              brne L19
 0146                   .dbline 386
 0146                   .dbline 387
 0146           ;         prio = OSTCBCur->OSTCBPrio;                             /* Set priority to delete to current   */
 0146 E0910000          lds R30,_OSTCBCur
 014A F0910100          lds R31,_OSTCBCur+1
 014E 6485              ldd R22,z+12
 0150                   .dbline 388
 0150           ;     }
 0150           L19:
 0150                   .dbline 389
 0150           ;     ptcb = OSTCBPrioTbl[prio];
 0150 82E0              ldi R24,2
 0152 869F              mul R24,R22
 0154 F001              movw R30,R0
 0156 80E0              ldi R24,<_OSTCBPrioTbl
 0158 90E0              ldi R25,>_OSTCBPrioTbl
 015A E80F              add R30,R24
 015C F91F              adc R31,R25
 015E 4081              ldd R20,z+0
 0160 5181              ldd R21,z+1
 0162                   .dbline 390
 0162           ;     if (ptcb != (OS_TCB *)0) {                                       /* Task to delete must exist      */
 0162 4030              cpi R20,0
 0164 4507              cpc R20,R21
 0166 09F4              brne X6
 0168 94C0              xjmp L21
 016A           X6:
 016A           X3:
 016A                   .dbline 390
 016A                   .dbline 391
 016A           ;         if ((OSRdyTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX) == 0x00) {  /* Make task not ready            */
 016A 80E0              ldi R24,<_OSRdyTbl
 016C 90E0              ldi R25,>_OSRdyTbl
 016E FA01              movw R30,R20
 0170 2684              ldd R2,z+14
 0172 3324              clr R3
 0174 280E              add R2,R24
 0176 391E              adc R3,R25
 0178 FA01              movw R30,R20
 017A 4784              ldd R4,z+15
 017C 4094              com R4
 017E F101              movw R30,R2
 0180 5080              ldd R5,z+0
 0182 5420              and R5,R4
 0184 452C              mov R4,R5
 0186 4082              std z+0,R4
 0188 5520              tst R5
 018A 41F4              brne L23
 018C                   .dbline 391
 018C                   .dbline 392
 018C           ;             OSRdyGrp &= ~ptcb->OSTCBBitY;
 018C FA01              movw R30,R20
 018E 2088              ldd R2,z+16
 0190 2094              com R2
 0192 30900000          lds R3,_OSRdyGrp
 0196 3220              and R3,R2
 0198 30920000          sts _OSRdyGrp,R3
 019C                   .dbline 393
 019C           ;         }
 019C           L23:
 019C                   .dbline 403
 019C           ; #if OS_EVENT_EN > 0
 019C           ;         pevent = ptcb->OSTCBEventPtr;
 019C           ;         if (pevent != (OS_EVENT *)0) {                          /* If task is waiting on event         */
 019C           ;             if ((pevent->OSEventTbl[ptcb->OSTCBY] &= ~ptcb->OSTCBBitX) == 0) { /* ... remove task from */
 019C           ;                 pevent->OSEventGrp &= ~ptcb->OSTCBBitY;                        /* ... event ctrl block */
 019C           ;             }
 019C           ;         }
 019C           ; #endif
 019C           ; #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0)
 019C           ;         pnode = ptcb->OSTCBFlagNode;
 019C FA01              movw R30,R20
 019E A680              ldd R10,z+6
 01A0 B780              ldd R11,z+7
 01A2                   .dbline 404
 01A2           ;         if (pnode != (OS_FLAG_NODE *)0) {                       /* If task is waiting on event flag    */
 01A2 AA20              tst R10
 01A4 11F4              brne X4
 01A6 BB20              tst R11
 01A8 19F0              breq L25
 01AA           X4:
 01AA                   .dbline 404
 01AA                   .dbline 405
 01AA           ;             OS_FlagUnlink(pnode);                               /* Remove from wait list               */
 01AA 8501              movw R16,R10
 01AC 0E940000          xcall _OS_FlagUnlink
 01B0                   .dbline 406
 01B0           ;         }
 01B0           L25:
 01B0                   .dbline 408
 01B0           ; #endif
 01B0           ;         ptcb->OSTCBDly  = 0;                                    /* Prevent OSTimeTick() from updating  */
 01B0 2224              clr R2
 01B2 3324              clr R3
 01B4 FA01              movw R30,R20
 01B6 3286              std z+10,R3
 01B8 2186              std z+9,R2
 01BA                   .dbline 409
 01BA           ;         ptcb->OSTCBStat = OS_STAT_RDY;                          /* Prevent task from being resumed     */
 01BA FA01              movw R30,R20
 01BC 2386              std z+11,R2
 01BE                   .dbline 410
 01BE           ;               if (OSLockNesting < 255) {
 01BE 80910000          lds R24,_OSLockNesting
 01C2 8F3F              cpi R24,255
 01C4 18F4              brsh L27
 01C6                   .dbline 410
 01C6                   .dbline 411
 01C6           ;             OSLockNesting++;
 01C6 8F5F              subi R24,255    ; addi 1
 01C8 80930000          sts _OSLockNesting,R24
 01CC                   .dbline 412
 01CC           ;               }
 01CC           L27:
 01CC                   .dbline 413
 01CC           ;         OS_EXIT_CRITICAL();                                     /* Enabling INT. ignores next instruc. */
 01CC 0A93              st -y,r16
 01CE 0F91              pop r16
 01D0 0FBF              out 0x3F,r16
 01D2 0991              ld r16,y+
 01D4                   .dbline 413
 01D4                   .dbline 414
 01D4           ;         OS_Dummy();                                             /* ... Dummy ensures that INTs will be */
 01D4 0E940000          xcall _OS_Dummy
 01D8                   .dbline 415

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产女主播视频一区二区| 欧美综合天天夜夜久久| 欧美精品一区二区在线播放| 日本成人在线电影网| 欧美男男青年gay1069videost| 午夜国产不卡在线观看视频| 日韩午夜精品视频| 国产一区二区三区久久久| 中文在线免费一区三区高中清不卡| 成人高清视频在线| 亚洲靠逼com| 日韩视频免费观看高清完整版在线观看 | 久久久蜜桃精品| 成人精品在线视频观看| 亚洲综合网站在线观看| 日韩一区二区三区视频在线| 国产剧情在线观看一区二区| 国产精品久久久久久久久动漫 | 国产乱码精品一区二区三| 亚洲国产激情av| 欧美亚洲一区三区| 激情欧美一区二区| 国产精品麻豆99久久久久久| 欧洲一区在线观看| 久久精品国产亚洲a| 国产精品国产三级国产专播品爱网 | 亚洲欧洲日产国产综合网| 欧美欧美午夜aⅴ在线观看| 国产精品主播直播| 亚洲国产精品一区二区尤物区| 日韩精品一区二区三区在线观看| 成人av午夜影院| 日韩国产欧美视频| 日韩理论在线观看| 日韩女优电影在线观看| 99re这里都是精品| 九一久久久久久| 亚洲精品中文字幕乱码三区| 日韩一区二区不卡| 在线看日韩精品电影| 国产成人精品一区二区三区网站观看 | 91色视频在线| 国产乱人伦精品一区二区在线观看| 亚洲猫色日本管| 久久美女艺术照精彩视频福利播放| 色欧美乱欧美15图片| 国产精品夜夜爽| 日韩福利电影在线| 亚洲精品国产a| 国产精品国产三级国产普通话蜜臀 | 亚洲综合激情小说| 国产精品妹子av| 精品成人一区二区| 欧美一区二区视频在线观看2020| 91网站在线播放| 国产精品99久久久久久久vr| 美女诱惑一区二区| 日本中文字幕一区二区视频| 综合激情成人伊人| 亚洲人亚洲人成电影网站色| 久久精品人人做人人综合| 日韩一区二区三区四区| 欧美精品电影在线播放| 欧美性生活影院| 91啪在线观看| 91在线免费视频观看| 99久久免费精品高清特色大片| 国产高清亚洲一区| 国产精品一区二区无线| 国产一区二区伦理片| 久久99久久99| 精一区二区三区| 另类专区欧美蜜桃臀第一页| 琪琪久久久久日韩精品| 久久国产精品99久久人人澡| 日本伊人午夜精品| 久久精品噜噜噜成人av农村| 麻豆精品蜜桃视频网站| 国产综合色精品一区二区三区| 精品一区二区国语对白| 狠狠色伊人亚洲综合成人| 精品一区二区三区不卡| 精品一区二区三区视频在线观看| 男人的j进女人的j一区| 激情综合网av| 成人午夜电影久久影院| www.日韩大片| 精品视频一区 二区 三区| 欧美另类变人与禽xxxxx| 日韩三级在线观看| 久久久亚洲国产美女国产盗摄| 久久影音资源网| 国产精品理论片| 亚洲一区二区偷拍精品| 首页国产欧美久久| 国产一区二区三区黄视频| 成人久久18免费网站麻豆| 91国模大尺度私拍在线视频| 欧美一a一片一级一片| 欧美一区二区三区视频在线 | 欧美一卡在线观看| 精品久久99ma| 国产精品毛片高清在线完整版| 亚洲乱码日产精品bd| 视频在线观看91| 国产一区不卡视频| 色菇凉天天综合网| 欧美成人一区二区三区| 中文字幕制服丝袜成人av | 日韩电影一区二区三区四区| 精品午夜一区二区三区在线观看| 成人黄色小视频在线观看| 欧美日韩一区二区在线视频| 精品国产一区久久| 亚洲欧美日韩国产综合| 全国精品久久少妇| 91视频观看视频| 欧美哺乳videos| 亚洲精品一卡二卡| 精品亚洲欧美一区| 欧美色网站导航| 欧美—级在线免费片| 偷拍与自拍一区| 99精品视频在线免费观看| 欧美一区二区三区小说| 亚洲婷婷综合久久一本伊一区| 日韩成人午夜精品| 91小视频在线观看| 久久这里只有精品视频网| 亚洲妇女屁股眼交7| 福利一区在线观看| 日韩一区二区免费高清| 中文字幕视频一区二区三区久| 免费成人小视频| 欧美影院精品一区| 中文字幕一区三区| 国产精品99久久久| 日韩手机在线导航| 亚洲高清免费观看| 色久综合一二码| 国产精品看片你懂得| 国产一区二区三区精品视频| 6080yy午夜一二三区久久| 亚洲免费观看高清| 99视频精品在线| 国产视频一区二区在线观看| 美女一区二区三区在线观看| 欧美色综合影院| 亚洲一区二区三区四区在线| av在线这里只有精品| 欧美国产综合色视频| 国内成人自拍视频| 日韩欧美国产成人一区二区| 午夜av电影一区| 欧美日韩一区小说| 亚洲一区影音先锋| 91久久国产综合久久| 亚洲免费三区一区二区| 99久久久久久99| 成人欧美一区二区三区白人| 成人性视频网站| 国产精品国产馆在线真实露脸 | 久久久精品人体av艺术| 精品在线免费观看| 亚洲精品一区二区三区蜜桃下载 | 欧美疯狂做受xxxx富婆| 亚洲国产综合91精品麻豆 | 欧美va亚洲va香蕉在线| 奇米四色…亚洲| 国产精品国产自产拍在线| 国产精品羞羞答答xxdd| 久久久亚洲国产美女国产盗摄| 国产一区二区在线免费观看| 久久综合九色综合97婷婷女人| 狠狠色丁香婷婷综合| 久久久久亚洲蜜桃| 成人激情电影免费在线观看| 中文字幕中文字幕一区| 99国产一区二区三精品乱码| 亚洲女同一区二区| 欧美精品在线一区二区| 美国十次了思思久久精品导航| 精品播放一区二区| zzijzzij亚洲日本少妇熟睡| 亚洲视频 欧洲视频| 欧美日韩视频一区二区| 麻豆91免费看| 国产欧美一区二区精品婷婷| voyeur盗摄精品| 亚洲成人7777| 欧美岛国在线观看| 成人免费视频播放| 亚洲黄色av一区| 日韩久久久精品| 成人少妇影院yyyy| 夜色激情一区二区| 欧美不卡在线视频| 99热精品一区二区| 日韩国产欧美在线视频| 中文字幕成人av|