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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ucosii.lst

?? ucos如何移植到單片機(jī)mega128
?? LST
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
(0214)         *err                 = OS_NO_ERR;
    021D 01F9      MOVW	R30,R18
    021E 8220      STD	Z+0,R2
(0215)     } else {
    021F C007      RJMP	0x0227
(0216)         OS_EXIT_CRITICAL();
    0220 930A      ST	R16,-Y
    0221 910F      POP	R16
    0222 BF0F      OUT	0x3F,R16
    0223 9109      LD	R16,Y+
(0217)         *err                 = OS_FLAG_GRP_DEPLETED;
    0224 E98A      LDI	R24,0x9A
    0225 01F9      MOVW	R30,R18
    0226 8380      STD	Z+0,R24
(0218)     }
(0219)     return (pgrp);                                  /* Return pointer to event flag group              */
    0227 018A      MOVW	R16,R20
    0228 940E0DE5  CALL	pop_gset1
    022A 9508      RET
_OSFlagDel:
  tasks_waiting        --> R10
  pnode                --> R12
  err                  --> R22
  opt                  --> R12
  pgrp                 --> R20
    022B 940E0DDC  CALL	push_gset4
    022D 2EC2      MOV	R12,R18
    022E 01A8      MOVW	R20,R16
    022F 8568      LDD	R22,Y+8
    0230 8579      LDD	R23,Y+9
(0220) }
(0221) 
(0222) /*$PAGE*/
(0223) /*
(0224) *********************************************************************************************************
(0225) *                                     DELETE AN EVENT FLAG GROUP
(0226) *
(0227) * Description: This function deletes an event flag group and readies all tasks pending on the event flag
(0228) *              group.
(0229) *
(0230) * Arguments  : pgrp          is a pointer to the desired event flag group.
(0231) *
(0232) *              opt           determines delete options as follows:
(0233) *                            opt == OS_DEL_NO_PEND   Deletes the event flag group ONLY if no task pending
(0234) *                            opt == OS_DEL_ALWAYS    Deletes the event flag group even if tasks are
(0235) *                                                    waiting.  In this case, all the tasks pending will be
(0236) *                                                    readied.
(0237) *
(0238) *              err           is a pointer to an error code that can contain one of the following values:
(0239) *                            OS_NO_ERR               The call was successful and the event flag group was
(0240) *                                                    deleted
(0241) *                            OS_ERR_DEL_ISR          If you attempted to delete the event flag group from
(0242) *                                                    an ISR
(0243) *                            OS_FLAG_INVALID_PGRP    If 'pgrp' is a NULL pointer.
(0244) *                            OS_ERR_EVENT_TYPE       If you didn't pass a pointer to an event flag group
(0245) *                            OS_ERR_INVALID_OPT      An invalid option was specified
(0246) *                            OS_ERR_TASK_WAITING     One or more tasks were waiting on the event flag
(0247) *                                                    group.
(0248) *
(0249) * Returns    : pevent        upon error
(0250) *              (OS_EVENT *)0 if the semaphore was successfully deleted.
(0251) *
(0252) * Note(s)    : 1) This function must be used with care.  Tasks that would normally expect the presence of
(0253) *                 the event flag group MUST check the return code of OSFlagAccept() and OSFlagPend().
(0254) *              2) This call can potentially disable interrupts for a long time.  The interrupt disable
(0255) *                 time is directly proportional to the number of tasks waiting on the event flag group.
(0256) *********************************************************************************************************
(0257) */
(0258) 
(0259) #if OS_FLAG_DEL_EN > 0
(0260) OS_FLAG_GRP  *OSFlagDel (OS_FLAG_GRP *pgrp, INT8U opt, INT8U *err)
(0261) {
(0262) #if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
(0263)     OS_CPU_SR     cpu_sr;
(0264) #endif
(0265)     BOOLEAN       tasks_waiting;
(0266)     OS_FLAG_NODE *pnode;
(0267) 
(0268) 
(0269)     if (OSIntNesting > 0) {                                /* See if called from ISR ...               */
    0231 2422      CLR	R2
    0232 9030032C  LDS	R3,OSIntNesting
    0234 1423      CP	R2,R3
    0235 F428      BCC	0x023B
(0270)         *err = OS_ERR_DEL_ISR;                             /* ... can't DELETE from an ISR             */
    0236 E88C      LDI	R24,0x8C
    0237 01FB      MOVW	R30,R22
    0238 8380      STD	Z+0,R24
(0271)         return (pgrp);
    0239 018A      MOVW	R16,R20
    023A C080      RJMP	0x02BB
(0272)     }
(0273) #if OS_ARG_CHK_EN > 0
(0274)     if (pgrp == (OS_FLAG_GRP *)0) {                        /* Validate 'pgrp'                          */
    023B 3040      CPI	R20,0
    023C 0745      CPC	R20,R21
    023D F429      BNE	0x0243
(0275)         *err = OS_FLAG_INVALID_PGRP;
    023E E986      LDI	R24,0x96
    023F 01FB      MOVW	R30,R22
    0240 8380      STD	Z+0,R24
(0276)         return (pgrp);
    0241 018A      MOVW	R16,R20
    0242 C078      RJMP	0x02BB
(0277)     }
(0278)     if (pgrp->OSFlagType != OS_EVENT_TYPE_FLAG) {          /* Validate event group type                */
    0243 01FA      MOVW	R30,R20
    0244 8180      LDD	R24,Z+0
    0245 3085      CPI	R24,5
    0246 F029      BEQ	0x024C
(0279)         *err = OS_ERR_EVENT_TYPE;
    0247 E081      LDI	R24,1
    0248 01FB      MOVW	R30,R22
    0249 8380      STD	Z+0,R24
(0280)         return (pgrp);
    024A 018A      MOVW	R16,R20
    024B C06F      RJMP	0x02BB
(0281)     }
(0282) #endif
(0283)     OS_ENTER_CRITICAL();
    024C 930A      ST	R16,-Y
    024D B70F      IN	R16,0x3F
    024E 94F8      BCLR	7
    024F 930F      PUSH	R16
    0250 9109      LD	R16,Y+
(0284)     if (pgrp->OSFlagWaitList != (void *)0) {               /* See if any tasks waiting on event flags  */
    0251 01FA      MOVW	R30,R20
    0252 8021      LDD	R2,Z+1
    0253 8032      LDD	R3,Z+2
    0254 2022      TST	R2
    0255 F411      BNE	0x0258
    0256 2033      TST	R3
    0257 F019      BEQ	0x025B
(0285)         tasks_waiting = TRUE;                              /* Yes                                      */
    0258 24AA      CLR	R10
    0259 94A3      INC	R10
(0286)     } else {
    025A C001      RJMP	0x025C
(0287)         tasks_waiting = FALSE;                             /* No                                       */
    025B 24AA      CLR	R10
(0288)     }
(0289)     switch (opt) {
    025C 24DD      CLR	R13
    025D 20CC      TST	R12
    025E F411      BNE	0x0261
    025F 20DD      TST	R13
    0260 F031      BEQ	0x0267
    0261 01C6      MOVW	R24,R12
    0262 3081      CPI	R24,1
    0263 E0E0      LDI	R30,0
    0264 079E      CPC	R25,R30
    0265 F119      BEQ	0x0289
    0266 C04C      RJMP	0x02B3
(0290)         case OS_DEL_NO_PEND:                               /* Delete group if no task waiting          */
(0291)              if (tasks_waiting == FALSE) {
    0267 20AA      TST	R10
    0268 F4B9      BNE	0x0280
(0292)                  pgrp->OSFlagType     = OS_EVENT_TYPE_UNUSED;
    0269 2422      CLR	R2
    026A 01FA      MOVW	R30,R20
    026B 8220      STD	Z+0,R2
(0293)                  pgrp->OSFlagWaitList = (void *)OSFlagFreeList; /* Return group to free list           */
    026C 9020032D  LDS	R2,OSFlagFreeList
    026E 9030032E  LDS	R3,OSFlagFreeList+1
    0270 8232      STD	Z+2,R3
    0271 8221      STD	Z+1,R2
(0294)                  OSFlagFreeList       = pgrp;
    0272 9350032E  STS	OSFlagFreeList+1,R21
    0274 9340032D  STS	OSFlagFreeList,R20
(0295)                  OS_EXIT_CRITICAL();
    0276 930A      ST	R16,-Y
    0277 910F      POP	R16
    0278 BF0F      OUT	0x3F,R16
    0279 9109      LD	R16,Y+
(0296)                  *err                 = OS_NO_ERR;
    027A 2422      CLR	R2
    027B 01FB      MOVW	R30,R22
    027C 8220      STD	Z+0,R2
(0297)                  return ((OS_FLAG_GRP *)0);                /* Event Flag Group has been deleted        */
    027D 2700      CLR	R16
    027E 2711      CLR	R17
    027F C03B      RJMP	0x02BB
(0298)              } else {
(0299)                  OS_EXIT_CRITICAL();
    0280 930A      ST	R16,-Y
    0281 910F      POP	R16
    0282 BF0F      OUT	0x3F,R16
    0283 9109      LD	R16,Y+
(0300)                  *err                 = OS_ERR_TASK_WAITING;
    0284 E088      LDI	R24,0x8
    0285 01FB      MOVW	R30,R22
    0286 8380      STD	Z+0,R24
(0301)                  return (pgrp);
    0287 018A      MOVW	R16,R20
    0288 C032      RJMP	0x02BB
(0302)              }
(0303) 
(0304)         case OS_DEL_ALWAYS:                                /* Always delete the event flag group       */
(0305)              pnode = (OS_FLAG_NODE *)pgrp->OSFlagWaitList;
    0289 01FA      MOVW	R30,R20
    028A 80C1      LDD	R12,Z+1
    028B 80D2      LDD	R13,Z+2
    028C C006      RJMP	0x0293
(0306)              while (pnode != (OS_FLAG_NODE *)0) {          /* Ready ALL tasks waiting for flags        */
(0307)                  OS_FlagTaskRdy(pnode, (OS_FLAGS)0);
    028D 2722      CLR	R18
    028E 0186      MOVW	R16,R12
    028F D31E      RCALL	_OS_FlagTaskRdy
(0308)                  pnode = (OS_FLAG_NODE *)pnode->OSFlagNodeNext;
    0290 01F6      MOVW	R30,R12
    0291 80C0      LDD	R12,Z+0
    0292 80D1      LDD	R13,Z+1
    0293 20CC      TST	R12
    0294 F7C1      BNE	0x028D
    0295 20DD      TST	R13
    0296 F7B1      BNE	0x028D
(0309)              }
(0310)              pgrp->OSFlagType     = OS_EVENT_TYPE_UNUSED;
    0297 2422      CLR	R2
    0298 01FA      MOVW	R30,R20
    0299 8220      STD	Z+0,R2
(0311)              pgrp->OSFlagWaitList = (void *)OSFlagFreeList;/* Return group to free list                */
    029A 9020032D  LDS	R2,OSFlagFreeList
    029C 9030032E  LDS	R3,OSFlagFreeList+1
    029E 8232      STD	Z+2,R3
    029F 8221      STD	Z+1,R2
(0312)              OSFlagFreeList       = pgrp;
    02A0 9350032E  STS	OSFlagFreeList+1,R21
    02A2 9340032D  STS	OSFlagFreeList,R20
(0313)              OS_EXIT_CRITICAL();
    02A4 930A      ST	R16,-Y
    02A5 910F      POP	R16
    02A6 BF0F      OUT	0x3F,R16
    02A7 9109      LD	R16,Y+
(0314)              if (tasks_waiting == TRUE) {                  /* Reschedule only if task(s) were waiting  */
    02A8 2D8A      MOV	R24,R10
    02A9 3081      CPI	R24,1
    02AA F411      BNE	0x02AD
(0315)                  OS_Sched();                               /* Find highest priority task ready to run  */
    02AB 940E0A51  CALL	_OS_Sched
(0316)              }
(0317)              *err = OS_NO_ERR;
    02AD 2422      CLR	R2
    02AE 01FB      MOVW	R30,R22
    02AF 8220      STD	Z+0,R2
(0318)              return ((OS_FLAG_GRP *)0);                    /* Event Flag Group has been deleted        */
    02B0 2700      CLR	R16
    02B1 2711      CLR	R17
    02B2 C008      RJMP	0x02BB
(0319) 
(0320)         default:
(0321)              OS_EXIT_CRITICAL();
    02B3 930A      ST	R16,-Y
    02B4 910F      POP	R16
    02B5 BF0F      OUT	0x3F,R16
    02B6 9109      LD	R16,Y+
(0322)              *err = OS_ERR_INVALID_OPT;
    02B7 E087      LDI	R24,7
    02B8 01FB      MOVW	R30,R22
    02B9 8380      STD	Z+0,R24
(0323)              return (pgrp);
    02BA 018A      MOVW	R16,R20
    02BB 940E0DD4  CALL	pop_gset4
    02BD 9508      RET
_OSFlagPend:
  node                 --> Y+6
  flags_rdy            --> R10
  consume              --> R14
  flags_cur            --> R20
  err                  --> R22
  timeout              --> Y+30
  wait_type            --> R12
  flags                --> Y+26
  pgrp                 --> R6
    02BE 933A      ST	R19,-Y
    02BF 932A      ST	R18,-Y
    02C0 940E0DDA  CALL	push_gset5
    02C2 0138      MOVW	R6,R16
    02C3 9760      SBIW	R28,0x10
    02C4 8CCC      LDD	R12,Y+28
    02C5 A168      LDD	R22,Y+32
    02C6 A179      LDD	R23,Y+33
(0324)     }
(0325) }
(0326) #endif
(0327) /*$PAGE*/
(0328) /*
(0329) *********************************************************************************************************
(0330) *                                        WAIT ON AN EVENT FLAG GROUP
(0331) *
(0332) * Description: This function is called to wait for a combination of bits to be set in an event flag
(0333) *              group.  Your application can wait for ANY bit to be set or ALL bits to be set.
(0334) *
(0335) * Arguments  : pgrp          is a pointer to the desired event flag group.
(0336) *
(0337) *              flags         Is a bit pattern indicating which bit(s) (i.e. flags) you wish to wait for.
(0338) *                            The bits you want are specified by setting the corresponding bits in
(0339) *                            'flags'.  e.g. if your application wants to wait for bits 0 and 1 then
(0340) *                            'flags' would contain 0x03.
(0341) *
(0342) *              wait_type     specifies whether you want ALL bits to be set or ANY of the bits to be set.
(0343) *                            You can specify the following argument:
(0344) *
(0345) *                            OS_FLAG_WAIT_CLR_ALL   You will wait for ALL bits in 'mask' to be clear (0)
(0346) *                            OS_FLAG_WAIT_SET_ALL   You will wait for ALL bits in 'mask' to be set   (1)
(0347) *                            OS_FLAG_WAIT_CLR_ANY   You will wait for ANY bit  in 'mask' to be clear (0)
(0348) *                            OS_FLAG_WAIT_SET_ANY   You will wait for ANY bit  in 'mask' to be set   (1)
(0349) *
(0350) *                            NOTE: Add OS_FLAG_CONSUME if you want the event flag to be 'consumed' by
(0351) *                                  the call.  Example, to wait for any flag in a group AND then clear
(0352) *                                  the flags that are present, set 'wait_type' to:
(0353) *
(0354) *                                  OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME
(0355) *
(0356) *              timeout       is an optional timeout (in clock ticks) that your task will wait for the

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品97视觉盛宴| 中文字幕一区二区在线观看| 色999日韩国产欧美一区二区| 久久成人免费网| 日本sm残虐另类| 日本不卡高清视频| 久久精品国产亚洲一区二区三区| 日韩二区在线观看| 极品美女销魂一区二区三区| 精品一区二区三区免费观看 | 福利电影一区二区三区| 国产精品自拍毛片| 成人av资源在线| 色婷婷久久综合| 在线成人高清不卡| 久久网站热最新地址| 国产精品乱码一区二三区小蝌蚪| 亚洲欧洲日产国码二区| 亚洲一卡二卡三卡四卡| 秋霞av亚洲一区二区三| 国产成人亚洲精品狼色在线| 成人激情免费网站| 欧美日韩精品三区| 久久亚洲综合色一区二区三区| 国产精品国产三级国产普通话99 | 韩国毛片一区二区三区| 国产成人高清在线| 欧美午夜免费电影| 久久日韩精品一区二区五区| 亚洲手机成人高清视频| 蜜桃视频一区二区| 成人97人人超碰人人99| 欧美精品久久久久久久多人混战| 精品国产髙清在线看国产毛片| 国产欧美日韩麻豆91| 亚洲一区免费在线观看| 国模无码大尺度一区二区三区| 91浏览器入口在线观看| 日韩视频一区二区在线观看| 综合精品久久久| 久久精品理论片| 欧美色图一区二区三区| 国产亚洲综合性久久久影院| 亚洲成人av中文| 成人精品免费视频| 日韩欧美国产系列| 亚洲福利视频一区二区| 盗摄精品av一区二区三区| 91精品国产91久久久久久最新毛片| 国产精品污www在线观看| 五月天亚洲婷婷| av在线一区二区| 久久久久久电影| 麻豆精品在线播放| 欧美日韩国产一级| 一区二区高清免费观看影视大全| 国产精品一区二区在线播放| 欧美一区二区三区喷汁尤物| 亚洲免费观看高清完整版在线| 国产一区二区三区高清播放| 91麻豆精品国产无毒不卡在线观看| 日韩美女啊v在线免费观看| 国产毛片精品视频| 精品国产99国产精品| 免费日本视频一区| 56国语精品自产拍在线观看| 亚洲电影中文字幕在线观看| 一本色道久久综合精品竹菊| 国产精品美女视频| 成人久久18免费网站麻豆| 国产欧美日韩另类视频免费观看| 久久99精品久久久久久国产越南| 在线电影一区二区三区| 免费日本视频一区| 欧美videos大乳护士334| 蜜桃传媒麻豆第一区在线观看| 91精品国产黑色紧身裤美女| 三级在线观看一区二区| 91精品国产高清一区二区三区蜜臀| 亚洲一区精品在线| 欧美日韩一区二区三区高清| 午夜国产精品一区| 在线成人av影院| 日韩va欧美va亚洲va久久| 欧美一区三区二区| 午夜久久久久久电影| 欧美一区二区免费视频| 奇米一区二区三区| 久久久久久一二三区| 国产一区二区三区免费在线观看 | 国产精品久久久久影院亚瑟| 国产精品77777| 亚洲免费观看高清在线观看| 在线视频欧美精品| 日韩二区三区四区| 久久免费看少妇高潮| 91免费看`日韩一区二区| 综合色中文字幕| 欧美日韩国产一区二区三区地区| 琪琪久久久久日韩精品| 久久久五月婷婷| 日本精品一区二区三区高清| 午夜久久久久久| 国产亚洲污的网站| 91老司机福利 在线| 视频在线观看一区二区三区| 久久精品视频免费观看| 色网综合在线观看| 蜜臀av一级做a爰片久久| 亚洲国产精品成人综合 | 国产精品无遮挡| 欧美日精品一区视频| 另类小说色综合网站| 中文字幕中文字幕一区二区 | 欧美午夜一区二区三区| 美女视频一区二区三区| 中文字幕在线不卡一区| 成人av午夜影院| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美精品一区二区三区视频| 成人性生交大片免费看在线播放| 一区二区三区不卡视频在线观看 | 激情另类小说区图片区视频区| 国产精品久久久久国产精品日日| 欧美日韩高清在线播放| 不卡视频一二三| 久久精品国产秦先生| 伊人一区二区三区| 久久精品欧美一区二区三区不卡| 欧美亚洲国产一卡| 国产99久久久精品| 久久国产视频网| 亚洲第一精品在线| 一区二区三区四区视频精品免费 | 精品一区二区免费看| 亚洲高清免费观看高清完整版在线观看 | 国产精品一区二区91| 三级精品在线观看| 亚洲一卡二卡三卡四卡五卡| 国产精品电影一区二区三区| 26uuu国产日韩综合| 欧美一区二区在线视频| 欧美综合亚洲图片综合区| www.在线欧美| 成人做爰69片免费看网站| 麻豆freexxxx性91精品| 日韩av网站免费在线| 日韩在线观看一区二区| 亚洲成av人影院| 亚洲一二三四久久| 亚洲色图一区二区| 中文字幕日韩精品一区 | 色婷婷激情综合| 99国产精品一区| 91免费视频网| 在线视频你懂得一区二区三区| 91视视频在线观看入口直接观看www| 国产成人精品在线看| 国产剧情一区二区| 成人综合婷婷国产精品久久蜜臀| 国产成人鲁色资源国产91色综 | 亚洲欧洲成人精品av97| 国产精品国产三级国产aⅴ原创 | 欧美性色欧美a在线播放| 色婷婷一区二区三区四区| 色88888久久久久久影院野外| av成人老司机| 一本色道久久综合精品竹菊| 欧美性三三影院| 91 com成人网| 欧美成人高清电影在线| 久久青草国产手机看片福利盒子| 国产视频一区在线播放| 欧美国产一区视频在线观看| 1000部国产精品成人观看| 亚洲欧美日韩一区二区三区在线观看| 亚洲日本中文字幕区| 亚洲曰韩产成在线| 日本人妖一区二区| 国产电影一区在线| 色婷婷综合久色| 欧美军同video69gay| 日韩精品在线一区二区| 国产精品久久久爽爽爽麻豆色哟哟 | 久久综合五月天婷婷伊人| 国产精品欧美一级免费| 夜夜亚洲天天久久| 久久超碰97人人做人人爱| 国产sm精品调教视频网站| 色婷婷综合久久| 久久综合久久鬼色中文字| 亚洲女同ⅹxx女同tv| 麻豆国产精品官网| av男人天堂一区| 日韩精品一区二区三区四区视频| 国产精品嫩草影院com| 婷婷开心久久网| 成人久久视频在线观看| 日韩欧美国产一区在线观看| 亚洲日本免费电影|