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

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

?? ucos.lst

?? 基于ATmega8的ucosII應用,ATmega8上的ucosII開發。
?? LST
?? 第 1 頁 / 共 5 頁
字號:
(0209) *                 b) Set OSRunning to TRUE.
(0210) *********************************************************************************************************
(0211) */
(0212) 
(0213) void OSStart (void)
(0214) {
(0215)     INT8U y;
(0216)     INT8U x;
(0217) 
(0218) 
(0219)     if (OSRunning == FALSE) {
    039A 9020022E  LDS	R2,_OSRunning
    039C 2022      TST	R2
    039D F009      BEQ	0x039F
    039E C038      RJMP	0x03D7
(0220)         y             = OSUnMapTbl[OSRdyGrp];        /* Find highest priority's task priority number   */
    039F E384      LDI	R24,0x34
    03A0 E090      LDI	R25,0
    03A1 91E00231  LDS	R30,_OSRdyGrp
    03A3 27FF      CLR	R31
    03A4 0FE8      ADD	R30,R24
    03A5 1FF9      ADC	R31,R25
    03A6 90A4      LPM	R10,0(Z)
(0221)         x             = OSUnMapTbl[OSRdyTbl[y]];
    03A7 E28F      LDI	R24,0x2F
    03A8 E092      LDI	R25,2
    03A9 2DEA      MOV	R30,R10
    03AA 27FF      CLR	R31
    03AB 0FE8      ADD	R30,R24
    03AC 1FF9      ADC	R31,R25
    03AD 81E0      LDD	R30,Z+0
    03AE 27FF      CLR	R31
    03AF E384      LDI	R24,0x34
    03B0 E090      LDI	R25,0
    03B1 0FE8      ADD	R30,R24
    03B2 1FF9      ADC	R31,R25
    03B3 90C4      LPM	R12,0(Z)
(0222)         OSPrioHighRdy = (INT8U)((y << 3) + x);
    03B4 2C2C      MOV	R2,R12
    03B5 2433      CLR	R3
    03B6 2C4A      MOV	R4,R10
    03B7 2455      CLR	R5
    03B8 0C44      LSL	R4
    03B9 1C55      ROL	R5
    03BA 0C44      LSL	R4
    03BB 1C55      ROL	R5
    03BC 0C44      LSL	R4
    03BD 1C55      ROL	R5
    03BE 0C42      ADD	R4,R2
    03BF 1C53      ADC	R5,R3
    03C0 92400232  STS	_OSPrioHighRdy,R4
(0223)         OSPrioCur     = OSPrioHighRdy;
    03C2 2C24      MOV	R2,R4
    03C3 92200233  STS	_OSPrioCur,R2
(0224)         OSTCBHighRdy  = OSTCBPrioTbl[OSPrioHighRdy]; /* Point to highest priority task ready to run    */
    03C5 E082      LDI	R24,2
    03C6 9D82      MUL	R24,R2
    03C7 01F0      MOVW	R30,R0
    03C8 E085      LDI	R24,5
    03C9 E092      LDI	R25,2
    03CA 0FE8      ADD	R30,R24
    03CB 1FF9      ADC	R31,R25
    03CC 8020      LDD	R2,Z+0
    03CD 8031      LDD	R3,Z+1
    03CE 92300228  STS	_OSTCBHighRdy+1,R3
    03D0 92200227  STS	_OSTCBHighRdy,R2
(0225)         OSTCBCur      = OSTCBHighRdy;
    03D2 9230022C  STS	_OSTCBCur+1,R3
    03D4 9220022B  STS	_OSTCBCur,R2
(0226)         OSStartHighRdy();                            /* Execute target specific code to start task     */
    03D6 D2EE      RCALL	_OSStartHighRdy
(0227)     }
(0228) }
    03D7 D43A      RCALL	pop_gset4x
    03D8 9508      RET
(0229) /*$PAGE*/
(0230) /*
(0231) *********************************************************************************************************
(0232) *                                              IDLE TASK
(0233) *
(0234) * Description: This task is internal to uC/OS-II and executes whenever no other higher priority tasks
(0235) *              executes because they are waiting for event(s) to occur.
(0236) *
(0237) * Arguments  : none
(0238) *
(0239) * Returns    : none
(0240) *********************************************************************************************************
(0241) */
(0242) 
(0243) void OSTaskIdle (void *pdata)
(0244) {
(0245)     pdata = pdata;                               /* Prevent compiler warning for not using 'pdata'     */
(0246)     for (;;) {
(0247)         OS_ENTER_CRITICAL();
_OSTaskIdle:
  pdata                --> R16
    03D9 930A      ST	R16,-Y
    03DA B70F      IN	R16,0x3F
    03DB 94F8      BCLR	7
    03DC 930F      PUSH	R16
    03DD 9109      LD	R16,Y+
(0248)         OSIdleCtr++;
    03DE E081      LDI	R24,1
    03DF E090      LDI	R25,0
    03E0 E0A0      LDI	R26,0
    03E1 E0B0      LDI	R27,0
    03E2 90400238  LDS	R4,_OSIdleCtr+2
    03E4 90500239  LDS	R5,_OSIdleCtr+3
    03E6 90200236  LDS	R2,_OSIdleCtr
    03E8 90300237  LDS	R3,_OSIdleCtr+1
    03EA 0E28      ADD	R2,R24
    03EB 1E39      ADC	R3,R25
    03EC 1E4A      ADC	R4,R26
    03ED 1E5B      ADC	R5,R27
    03EE 92300237  STS	_OSIdleCtr+1,R3
    03F0 92200236  STS	_OSIdleCtr,R2
    03F2 92500239  STS	_OSIdleCtr+3,R5
    03F4 92400238  STS	_OSIdleCtr+2,R4
(0249)         OS_EXIT_CRITICAL();
    03F6 930A      ST	R16,-Y
    03F7 910F      POP	R16
    03F8 BF0F      OUT	0x3F,R16
    03F9 9109      LD	R16,Y+
    03FA CFDE      RJMP	_OSTaskIdle
    03FB 9508      RET
_OSTCBInit:
  ptcb                 --> R10
  opt                  --> Y+10
  pext                 --> Y+8
  stk_size             --> Y+6
  id                   --> Y+4
  pbos                 --> Y+2
  ptos                 --> R18
  prio                 --> R16
    03FC D419      RCALL	push_gset3x
(0250)     }
(0251) }
(0252) /*$PAGE*/
(0253) /*
(0254) *********************************************************************************************************
(0255) *                                            INITIALIZE TCB
(0256) *
(0257) * Description: This function is internal to uC/OS-II and is used to initialize a Task Control Block when
(0258) *              a task is created (see OSTaskCreate() and OSTaskCreateExt()).
(0259) *
(0260) * Arguments  : prio          is the priority of the task being created
(0261) *
(0262) *              ptos          is a pointer to the task's top-of-stack assuming that the CPU registers
(0263) *                            have been placed on the stack.  Note that the top-of-stack corresponds to a 
(0264) *                            'high' memory location is OS_STK_GROWTH is set to 1 and a 'low' memory
(0265) *                            location if OS_STK_GROWTH is set to 0.  Note that stack growth is CPU
(0266) *                            specific.
(0267) *
(0268) *              pbos          is a pointer to the bottom of stack.  A NULL pointer is passed if called by
(0269) *                            'OSTaskCreate()'.
(0270) *
(0271) *              id            is the task's ID (0..65535)
(0272) *
(0273) *              stk_size      is the size of the stack (in 'stack units').  If the stack units are INT8Us
(0274) *                            then, 'stk_size' contains the number of bytes for the stack.  If the stack
(0275) *                            units are INT32Us then, the stack contains '4 * stk_size' bytes.  The stack
(0276) *                            units are established by the #define constant OS_STK which is CPU
(0277) *                            specific.  'stk_size' is 0 if called by 'OSTaskCreate()'.
(0278) *
(0279) *              pext          is a pointer to a user supplied memory area that is used to extend the task
(0280) *                            control block.  This allows you to store the contents of floating-point
(0281) *                            registers, MMU registers or anything else you could find useful during a 
(0282) *                            context switch.  You can even assign a name to each task and store this name
(0283) *                            in this TCB extension.  A NULL pointer is passed if called by OSTaskCreate().
(0284) *
(0285) *              opt           options as passed to 'OSTaskCreateExt()' or, 
(0286) *                            0 if called from 'OSTaskCreate()'.
(0287) *
(0288) * Returns    : OS_NO_ERR         if the call was successful
(0289) *              OS_NO_MORE_TCB    if there are no more free TCBs to be allocated and thus, the task cannot
(0290) *                                be created.
(0291) *
(0292) * Note       : This function is INTERNAL to uC/OS-II and your application should not call it.
(0293) *********************************************************************************************************
(0294) */
(0295) 
(0296) INT8U OSTCBInit (INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT16U stk_size, void *pext, INT16U opt)
(0297) {
(0298)     OS_TCB *ptcb;
(0299) 
(0300) 
(0301)     OS_ENTER_CRITICAL();
    03FD 930A      ST	R16,-Y
    03FE B70F      IN	R16,0x3F
    03FF 94F8      BCLR	7
    0400 930F      PUSH	R16
    0401 9109      LD	R16,Y+
(0302)     ptcb = OSTCBFreeList;                                  /* Get a free TCB from the free TCB list    */
    0402 90A00229  LDS	R10,_OSTCBFreeList
    0404 90B0022A  LDS	R11,_OSTCBFreeList+1
(0303)     if (ptcb != (OS_TCB *)0) {
    0406 20AA      TST	R10
    0407 F419      BNE	0x040B
    0408 20BB      TST	R11
    0409 F409      BNE	0x040B
    040A C07C      RJMP	0x0487
(0304)         OSTCBFreeList        = ptcb->OSTCBNext;            /* Update pointer to free TCB list          */
    040B 01F5      MOVW	R30,R10
    040C 8022      LDD	R2,Z+2
    040D 8033      LDD	R3,Z+3
    040E 9230022A  STS	_OSTCBFreeList+1,R3
    0410 92200229  STS	_OSTCBFreeList,R2
(0305)         OS_EXIT_CRITICAL();
    0412 930A      ST	R16,-Y
    0413 910F      POP	R16
    0414 BF0F      OUT	0x3F,R16
    0415 9109      LD	R16,Y+
(0306)         ptcb->OSTCBStkPtr    = ptos;                       /* Load Stack pointer in TCB                */
    0416 01F5      MOVW	R30,R10
    0417 8331      STD	Z+1,R19
    0418 8320      STD	Z+0,R18
(0307)         ptcb->OSTCBPrio      = (INT8U)prio;                /* Load task priority into TCB              */
    0419 8701      STD	Z+9,R16
(0308)         ptcb->OSTCBStat      = OS_STAT_RDY;                /* Task is ready to run                     */
    041A 2422      CLR	R2
    041B 01F5      MOVW	R30,R10
    041C 8620      STD	Z+8,R2
(0309)         ptcb->OSTCBDly       = 0;                          /* Task is not delayed                      */
    041D 2433      CLR	R3
    041E 01F5      MOVW	R30,R10
    041F 8237      STD	Z+7,R3
    0420 8226      STD	Z+6,R2
(0310) 
(0311)         pext                 = pext;                       /* Prevent compiler warning if not used     */
(0312)         stk_size             = stk_size;
(0313)         pbos                 = pbos;
(0314)         opt                  = opt;
(0315)         id                   = id;
(0316) 
(0317)         ptcb->OSTCBY         = prio >> 3;                  /* Pre-compute X, Y, BitX and BitY          */
    0421 2E20      MOV	R2,R16
    0422 9426      LSR	R2
    0423 9426      LSR	R2
    0424 9426      LSR	R2
    0425 01F5      MOVW	R30,R10
    0426 8623      STD	Z+11,R2
(0318)         ptcb->OSTCBBitY      = OSMapTbl[ptcb->OSTCBY];
    0427 E28C      LDI	R24,0x2C
    0428 E090      LDI	R25,0
    0429 01F5      MOVW	R30,R10
    042A 85E3      LDD	R30,Z+11
    042B 27FF      CLR	R31
    042C 0FE8      ADD	R30,R24
    042D 1FF9      ADC	R31,R25
    042E 91E4      LPM	R30,0(Z)
    042F 01D5      MOVW	R26,R10
    0430 961D      ADIW	R26,0xD
    0431 93EC      ST	R30,0(X)
(0319)         ptcb->OSTCBX         = prio & 0x07;
    0432 2F80      MOV	R24,R16
    0433 7087      ANDI	R24,7
    0434 01F5      MOVW	R30,R10
    0435 8782      STD	Z+10,R24
(0320)         ptcb->OSTCBBitX      = OSMapTbl[ptcb->OSTCBX];
    0436 E28C      LDI	R24,0x2C
    0437 E090      LDI	R25,0
    0438 01F5      MOVW	R30,R10
    0439 85E2      LDD	R30,Z+10
    043A 27FF      CLR	R31
    043B 0FE8      ADD	R30,R24
    043C 1FF9      ADC	R31,R25
    043D 91E4      LPM	R30,0(Z)
    043E 01D5      MOVW	R26,R10
    043F 961C      ADIW	R26,0xC
    0440 93EC      ST	R30,0(X)
(0321) 
(0322)         OS_ENTER_CRITICAL();
    0441 930A      ST	R16,-Y
    0442 B70F      IN	R16,0x3F
    0443 94F8      BCLR	7
    0444 930F      PUSH	R16
    0445 9109      LD	R16,Y+
(0323)         OSTCBPrioTbl[prio]   = ptcb;
    0446 E082      LDI	R24,2
    0447 9F80      MUL	R24,R16
    0448 01F0      MOVW	R30,R0
    0449 E085      LDI	R24,5
    044A E092      LDI	R25,2
    044B 0FE8      ADD	R30,R24
    044C 1FF9      ADC	R31,R25
    044D 82B1      STD	Z+1,R11
    044E 82A0      STD	Z+0,R10
(0324)         ptcb->OSTCBNext      = OSTCBList;                  /* Link into TCB chain                      */
    044F 90200225  LDS	R2,_OSTCBList
    0451 90300226  LDS	R3,_OSTCBList+1
    0453 01F5      MOVW	R30,R10
    0454 8233      STD	Z+3,R3
    0455 8222      STD	Z+2,R2
(0325)         ptcb->OSTCBPrev      = (OS_TCB *)0;
    0456 2422      CLR	R2
    0457 2433      CLR	R3
    0458 01F5      MOVW	R30,R10
    0459 8235      STD	Z+5,R3
    045A 8224      STD	Z+4,R2
(0326)         if (OSTCBList != (OS_TCB *)0) {
    045B 90200225  LDS	R2,_OSTCBList
    045D 90300226  LDS	R3,_OSTCBList+1
    045F 2022      TST	R2
    0460 F411      BNE	0x0463
    0461 2033      TST	R3
    0462 F031      BEQ	0x0469
(0327)             OSTCBList->OSTCBPrev = ptcb;
    0463 91E00225  LDS	R30,_OSTCBList
    0465 91F00226  LDS	R31,_OSTCBList+1
    0467 82B5      STD	Z+5,R11
    0468 82A4      STD	Z+4,R10
(0328)         }
(0329)         OSTCBList               = ptcb;
    0469 92B00226  STS	_OSTCBList+1,R11
    046B 92A00225  STS	_OSTCBList,R10
(0330)         OSRdyGrp               |= ptcb->OSTCBBitY;         /* Make task ready to run                   */
    046D 01F5      MOVW	R30,R10
    046E 8425      LDD	R2,Z+13
    046F 90300231  LDS	R3,_OSRdyGrp
    0471 2832      OR	R3,R2
    0472 92300231  STS	_OSRdyGrp,R3
(0331)         OSRdyTbl[ptcb->OSTCBY] |= ptcb->OSTCBBitX;
    0474 E28F      LDI	R24,0x2F
    0475 E092      LDI	R25,2
    0476 01F5      MOVW	R30,R10
    0477 8423      LDD	R2,Z+11
    0478 2433      CLR	R3
    0479 0E28      ADD	R2,R24
    047A 1E39      ADC	R3,R25
    047B 01F5      MOVW	R30,R10
    047C 8444      LDD	R4,Z+12
    047D 01F1      MOVW	R30,R2
    047E 8050      LDD	R5,Z+0
    047F 2854      OR	R5,R4
    0480 8250      STD	Z+0,R5
(0332)         OS_EXIT_CRITICAL();
    0481 930A      ST	R16,-Y
    0482 910F      POP	R16
    0483 BF0F      OUT	0x3F,R16
    0484 9109      LD	R16,Y+
(0333)         return (OS_NO_ERR);
    0485 2700      CLR	R16
    0486 C005      RJMP	0x048C
(0334)     } else {
(0335)         OS_EXIT_CRITICAL();
    0487 930A      ST	R16,-Y
    0488 910F      POP	R16
    0489 BF0F      OUT	0x3F,R16

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久影院官网| 欧美日韩一区二区在线观看视频 | 亚洲情趣在线观看| 麻豆高清免费国产一区| av在线播放一区二区三区| 91精品国产综合久久蜜臀| 自拍偷拍国产精品| 国产在线看一区| 91精选在线观看| 亚洲精品美国一| 成人一区二区三区在线观看| 4438x成人网最大色成网站| 成人欧美一区二区三区小说| 韩国成人精品a∨在线观看| 欧美巨大另类极品videosbest| 中文字幕精品—区二区四季| 激情文学综合网| 3d成人h动漫网站入口| 亚洲黄色av一区| 成人高清伦理免费影院在线观看| 欧美大黄免费观看| 午夜影院在线观看欧美| 色天天综合色天天久久| 国产精品久久久久久亚洲毛片 | 三级成人在线视频| 欧美午夜精品一区二区三区 | 日韩三级高清在线| 亚洲国产一区在线观看| 日本国产一区二区| 亚洲视频精选在线| 99视频国产精品| 国产精品沙发午睡系列990531| 国产美女在线精品| 久久久久久久久99精品| 精品系列免费在线观看| 51精品国自产在线| 日本在线观看不卡视频| 欧美人动与zoxxxx乱| 午夜影视日本亚洲欧洲精品| 欧美亚洲一区三区| 亚洲已满18点击进入久久| 色94色欧美sute亚洲线路一ni| 自拍偷自拍亚洲精品播放| av激情综合网| 亚洲欧美另类在线| 一本一道波多野结衣一区二区| 自拍偷拍亚洲欧美日韩| 91久久一区二区| 亚洲人成网站影音先锋播放| 91蝌蚪国产九色| 亚洲乱码精品一二三四区日韩在线| 99视频一区二区三区| 亚洲图片激情小说| 欧美在线视频不卡| 午夜精品国产更新| 欧美一区二区三区视频在线观看| 美女免费视频一区| 精品日本一线二线三线不卡| 久久 天天综合| 亚洲精品一区二区三区蜜桃下载| 国产一区二区中文字幕| 中文字幕欧美三区| 色综合久久综合中文综合网| 亚洲成人av福利| 制服丝袜成人动漫| 国产揄拍国内精品对白| 国产精品丝袜在线| 91麻豆免费看片| 婷婷久久综合九色综合绿巨人 | 欧美精品久久99| 另类小说图片综合网| 国产三级三级三级精品8ⅰ区| av电影一区二区| 亚洲丶国产丶欧美一区二区三区| 9191久久久久久久久久久| 精品在线免费视频| 国产精品久久久久久久裸模| 色妹子一区二区| 视频一区二区三区入口| 国产午夜亚洲精品午夜鲁丝片| 99国产麻豆精品| 日韩精品成人一区二区三区 | 色网综合在线观看| 首页亚洲欧美制服丝腿| 久久综合网色—综合色88| www.av亚洲| 五月天视频一区| 精品国产123| 日本精品一区二区三区四区的功能| 五月婷婷另类国产| 国产午夜三级一区二区三| 在线一区二区视频| 激情久久五月天| 一区二区三区四区亚洲| 日韩精品一区二区三区swag | 蜜臀av一区二区| 国产精品美女久久久久aⅴ | 97国产一区二区| 蜜桃视频在线观看一区二区| 国产精品天天看| 69p69国产精品| 91在线一区二区三区| 日本不卡免费在线视频| 国产精品成人免费精品自在线观看 | 中文字幕亚洲一区二区va在线| 欧美电影在线免费观看| 粉嫩绯色av一区二区在线观看| 亚洲mv大片欧洲mv大片精品| 久久久久久久久一| 在线不卡免费欧美| 成人av免费网站| 久久成人综合网| 亚洲一区二区欧美| 国产精品嫩草99a| 欧美xxxxx裸体时装秀| 欧美在线免费播放| 成人午夜短视频| 捆绑调教一区二区三区| 一区二区三区视频在线看| 国产偷国产偷亚洲高清人白洁 | 91在线观看成人| 精品亚洲成a人| 三级在线观看一区二区| 亚洲摸摸操操av| 国产欧美日韩在线视频| 欧美mv日韩mv国产网站| 欧美精品视频www在线观看| 99久久夜色精品国产网站| 国内精品伊人久久久久影院对白| 亚洲成年人网站在线观看| 亚洲欧美二区三区| 国产精品女主播av| 久久久久久久久久久久久久久99| 日韩一区二区三区高清免费看看| 欧美伊人精品成人久久综合97| 丁香亚洲综合激情啪啪综合| 精品亚洲国产成人av制服丝袜| 日韩精品一区第一页| 亚洲电影欧美电影有声小说| 亚洲免费视频成人| 中文字幕在线视频一区| 久久久久久电影| 亚洲精品在线观看网站| 日韩欧美你懂的| 在线不卡a资源高清| 欧美日韩欧美一区二区| 91精彩视频在线| 色琪琪一区二区三区亚洲区| 91在线观看视频| 91美女片黄在线观看| 色综合欧美在线视频区| 一本大道av伊人久久综合| 99久久精品国产毛片| 99re成人精品视频| 99久久er热在这里只有精品15| 成人午夜av电影| av影院午夜一区| 99riav一区二区三区| bt欧美亚洲午夜电影天堂| 不卡一区二区三区四区| caoporm超碰国产精品| av成人老司机| 在线视频国内自拍亚洲视频| 欧美在线制服丝袜| 欧美剧情片在线观看| 在线成人免费视频| 欧美一区二区三区喷汁尤物| 91精品国产一区二区| 日韩免费看的电影| 欧美精品一区二| 国产欧美一区二区精品性| 中文成人综合网| 亚洲视频在线一区| 夜夜精品视频一区二区| 首页亚洲欧美制服丝腿| 久久国产尿小便嘘嘘| 国产一区二区三区久久久 | 亚洲大型综合色站| 日韩电影在线一区二区三区| 久久99热这里只有精品| 加勒比av一区二区| 粉嫩av一区二区三区在线播放 | 不卡区在线中文字幕| 在线观看国产精品网站| 欧美亚洲高清一区| 欧美一区二区视频观看视频| 久久久91精品国产一区二区三区| 国产免费久久精品| 亚洲综合图片区| 奇米精品一区二区三区在线观看 | 亚洲婷婷国产精品电影人久久| 国产欧美一区二区精品忘忧草| 欧美一区二区私人影院日本| 91精品国产综合久久香蕉麻豆| 欧美精品久久99| 欧美专区日韩专区| av不卡在线观看| 亚洲成人激情自拍| 蜜臀久久99精品久久久久宅男 | 国产性天天综合网|