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

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

?? ucos.s

?? uCOS源碼
?? S
?? 第 1 頁 / 共 5 頁
字號:
* Notes      : 1) You MUST invoke OSSchedLock() and OSSchedUnlock() in pair.  In other words, for every *                 call to OSSchedLock() you MUST have a call to OSSchedUnlock().**********************************************************************************************************/void OSSchedUnlock (void){    if (OSRunning == TRUE) {                           /* Make sure multitasking is running            */ 10009f4:	e59f3058 	ldr	r3, [pc, #58]	; 1000a54 <OSSchedUnlock+0x68> 10009f8:	e5d32000 	ldrb	r2, [r3] 10009fc:	e24cb004 	sub	r11, r12, #4	; 0x4 1000a00:	e3520001 	cmp	r2, #1	; 0x1 1000a04:	191ba800 	ldmnedb	r11, {r11, sp, pc}        OS_ENTER_CRITICAL(); 1000a08:	ebfffe63 	bl	100039c <ARMDisableInt>        if (OSLockNesting > 0) {                       /* Do not decrement if already 0                */ 1000a0c:	e59f0044 	ldr	r0, [pc, #44]	; 1000a58 <OSSchedUnlock+0x6c> 1000a10:	e5d02000 	ldrb	r2, [r0] 1000a14:	e3520000 	cmp	r2, #0	; 0x0 1000a18:	0a00000b 	beq	1000a4c <OSSchedUnlock+0x60>            OSLockNesting--;                           /* Decrement lock nesting level                 */            if ((OSLockNesting | OSIntNesting) == 0) { /* See if scheduling re-enabled and not an ISR  */ 1000a1c:	e59f3038 	ldr	r3, [pc, #38]	; 1000a5c <OSSchedUnlock+0x70> 1000a20:	e5d31000 	ldrb	r1, [r3] 1000a24:	e2422001 	sub	r2, r2, #1	; 0x1 1000a28:	e5c02000 	strb	r2, [r0] 1000a2c:	e1822001 	orr	r2, r2, r1 1000a30:	e31200ff 	tst	r2, #255	; 0xff 1000a34:	1a000002 	bne	1000a44 <OSSchedUnlock+0x58>                OS_EXIT_CRITICAL(); 1000a38:	ebfffe5c 	bl	10003b0 <ARMEnableInt>                OSSched();                             /* See if a higher priority task is ready       */ 1000a3c:	ebffffab 	bl	10008f0 <OSSched>            } else { 1000a40:	e91ba800 	ldmdb	r11, {r11, sp, pc}                OS_EXIT_CRITICAL(); 1000a44:	ebfffe59 	bl	10003b0 <ARMEnableInt>            }        } else { 1000a48:	e91ba800 	ldmdb	r11, {r11, sp, pc}            OS_EXIT_CRITICAL(); 1000a4c:	ebfffe57 	bl	10003b0 <ARMEnableInt>        }    } 1000a50:	e91ba800 	ldmdb	r11, {r11, sp, pc} 1000a54:	010070b0 	streqh	r7, [r0, -r0] 1000a58:	0100709c 	swpeq	r7, r12, [r0] 1000a5c:	01007098 	swpeq	r7, r8, [r0]01000a60 <OSStart>: 1000a60:	e1a0c00d 	mov	r12, sp 1000a64:	e92dd800 	stmdb	sp!, {r11, r12, lr, pc}}/*$PAGE*//***********************************************************************************************************                                          START MULTITASKING** Description: This function is used to start the multitasking process which lets uC/OS-II manages the*              task that you have created.  Before you can call OSStart(), you MUST have called OSInit()*              and you MUST have created at least one task.** Arguments  : none** Returns    : none** Note       : OSStartHighRdy() MUST:*                 a) Call OSTaskSwHook() then,*                 b) Set OSRunning to TRUE.**********************************************************************************************************/void OSStart (void){    INT8U y;    INT8U x;    if (OSRunning == FALSE) { 1000a68:	e59f3060 	ldr	r3, [pc, #60]	; 1000ad0 <OSStart+0x70> 1000a6c:	e5d32000 	ldrb	r2, [r3] 1000a70:	e24cb004 	sub	r11, r12, #4	; 0x4 1000a74:	e3520000 	cmp	r2, #0	; 0x0 1000a78:	191ba800 	ldmnedb	r11, {r11, sp, pc}        y             = OSUnMapTbl[OSRdyGrp];        /* Find highest priority's task priority number   */ 1000a7c:	e59f2050 	ldr	r2, [pc, #50]	; 1000ad4 <OSStart+0x74> 1000a80:	e59f0050 	ldr	r0, [pc, #50]	; 1000ad8 <OSStart+0x78>        x             = OSUnMapTbl[OSRdyTbl[y]];        OSPrioHighRdy = (INT8U)((y << 3) + x); 1000a84:	e59fe050 	ldr	lr, [pc, #50]	; 1000adc <OSStart+0x7c> 1000a88:	e5d23000 	ldrb	r3, [r2] 1000a8c:	e59f204c 	ldr	r2, [pc, #4c]	; 1000ae0 <OSStart+0x80> 1000a90:	e7d0c003 	ldrb	r12, [r0, r3] 1000a94:	e7d2300c 	ldrb	r3, [r2, r12]        OSPrioCur     = OSPrioHighRdy;        OSTCBHighRdy  = OSTCBPrioTbl[OSPrioHighRdy]; /* Point to highest priority task ready to run    */ 1000a98:	e59f2044 	ldr	r2, [pc, #44]	; 1000ae4 <OSStart+0x84> 1000a9c:	e7d01003 	ldrb	r1, [r0, r3] 1000aa0:	e59f3040 	ldr	r3, [pc, #40]	; 1000ae8 <OSStart+0x88> 1000aa4:	e59f0040 	ldr	r0, [pc, #40]	; 1000aec <OSStart+0x8c> 1000aa8:	e081118c 	add	r1, r1, r12, lsl #3 1000aac:	e5ce1000 	strb	r1, [lr] 1000ab0:	e5c31000 	strb	r1, [r3] 1000ab4:	e5de3000 	ldrb	r3, [lr] 1000ab8:	e7901103 	ldr	r1, [r0, r3, lsl #2]        OSTCBCur      = OSTCBHighRdy; 1000abc:	e59f302c 	ldr	r3, [pc, #2c]	; 1000af0 <OSStart+0x90> 1000ac0:	e5821000 	str	r1, [r2] 1000ac4:	e5831000 	str	r1, [r3]        OSStartHighRdy();                            /* Execute target specific code to start task     */ 1000ac8:	ebfffdfc 	bl	10002c0 <OSStartHighRdy>    }} 1000acc:	e91ba800 	ldmdb	r11, {r11, sp, pc} 1000ad0:	010070b0 	streqh	r7, [r0, -r0] 1000ad4:	010070a8 	tsteq	r0, r8, lsr #1 1000ad8:	0100145c 	tsteq	r0, r12, asr r4 1000adc:	010070a4 	tsteq	r0, r4, lsr #1 1000ae0:	010070ac 	tsteq	r0, r12, lsr #1 1000ae4:	010070c0 	tsteq	r0, r0, asr #1 1000ae8:	010070a0 	tsteq	r0, r0, lsr #1 1000aec:	010070c8 	tsteq	r0, r8, asr #1 1000af0:	010070b8 	streqh	r7, [r0, -r8]01000af4 <OSTaskIdle>: 1000af4:	e1a0c00d 	mov	r12, sp 1000af8:	e92dd810 	stmdb	sp!, {r4, r11, r12, lr, pc} 1000afc:	e24cb004 	sub	r11, r12, #4	; 0x4/*$PAGE*//***********************************************************************************************************                                        STATISTICS INITIALIZATION** Description: This function is called by your application to establish CPU usage by first determining*              how high a 32-bit counter would count to in 1 second if no other tasks were to execute*              during that time.  CPU usage is then determined by a low priority task which keeps track*              of this 32-bit counter every second but this time, with other tasks running.  CPU usage is*              determined by:**                                             OSIdleCtr*                 CPU Usage (%) = 100 * (1 - ------------)*                                            OSIdleCtrMax** Arguments  : none** Returns    : none**********************************************************************************************************/#if OS_TASK_STAT_ENvoid OSStatInit (void){    OSTimeDly(2);                                /* Synchronize with clock tick                        */    OS_ENTER_CRITICAL();    OSIdleCtr    = 0L;                           /* Clear idle counter                                 */    OS_EXIT_CRITICAL();    OSTimeDly(OS_TICKS_PER_SEC);                 /* Determine MAX. idle counter value for 1 second     */    OS_ENTER_CRITICAL();    OSIdleCtrMax = OSIdleCtr;                    /* Store maximum idle counter count in 1 second       */    OSStatRdy    = TRUE;    OS_EXIT_CRITICAL();}#endif/*$PAGE*//***********************************************************************************************************                                              IDLE TASK** Description: This task is internal to uC/OS-II and executes whenever no other higher priority tasks*              executes because they are waiting for event(s) to occur.** Arguments  : none** Returns    : none**********************************************************************************************************/void OSTaskIdle (void *pdata){    pdata = pdata;                               /* Prevent compiler warning for not using 'pdata'     */    for (;;) { 1000b00:	e59f4014 	ldr	r4, [pc, #14]	; 1000b1c <OSTaskIdle+0x28>        OS_ENTER_CRITICAL(); 1000b04:	ebfffe24 	bl	100039c <ARMDisableInt>        OSIdleCtr++; 1000b08:	e5943000 	ldr	r3, [r4] 1000b0c:	e2833001 	add	r3, r3, #1	; 0x1 1000b10:	e5843000 	str	r3, [r4]        OS_EXIT_CRITICAL(); 1000b14:	ebfffe25 	bl	10003b0 <ARMEnableInt> 1000b18:	eafffff9 	b	1000b04 <OSTaskIdle+0x10> 1000b1c:	01007094 	swpeq	r7, r4, [r0] 1000b20:	e91ba810 	ldmdb	r11, {r4, r11, sp, pc}01000b24 <OSTCBInit>: 1000b24:	e1a0c00d 	mov	r12, sp 1000b28:	e92dd8f0 	stmdb	sp!, {r4, r5, r6, r7, r11, r12, lr, pc} 1000b2c:	e24cb004 	sub	r11, r12, #4	; 0x4    }}/*$PAGE*//***********************************************************************************************************                                            STATISTICS TASK** Description: This task is internal to uC/OS-II and is used to compute some statistics about the*              multitasking environment.  Specifically, OSTaskStat() computes the CPU usage.*              CPU usage is determined by:**                                          OSIdleCtr*                 OSCPUUsage = 100 * (1 - ------------)     (units are in %)*                                         OSIdleCtrMax** Arguments  : pdata     this pointer is not used at this time.** Returns    : none** Notes      : 1) This task runs at a priority level higher than the idle task.  In fact, it runs at the*                 next higher priority, OS_IDLE_PRIO-1.*              2) You can disable this task by setting the configuration #define OS_TASK_STAT_EN to 0.*              3) We delay for 5 seconds in the beginning to allow the system to reach steady state and*                 have all other tasks created before we do statistics.  You MUST have at least a delay*                 of 2 seconds to allow for the system to establish the maximum value for the idle *                 counter.**********************************************************************************************************/#if OS_TASK_STAT_ENvoid OSTaskStat (void *pdata){    INT32U run;    INT8S  usage;            pdata = pdata;                               /* Prevent compiler warning for not using 'pdata'     */    while (OSStatRdy == FALSE) {        OSTimeDly(2 * OS_TICKS_PER_SEC);             /* Wait until statistic task is ready                 */    }    for (;;) {        OS_ENTER_CRITICAL();        OSIdleCtrRun = OSIdleCtr;                /* Obtain the of the idle counter for the past second */        run          = OSIdleCtr;        OSIdleCtr    = 0L;                       /* Reset the idle counter for the next second         */        OS_EXIT_CRITICAL();        if (OSIdleCtrMax > 0L) {            usage = (INT8S)(100L - 100L * run / OSIdleCtrMax);            if (usage > 100) {                OSCPUUsage = 100;            } else if (usage < 0) {                OSCPUUsage =   0;            } else {                OSCPUUsage = usage;            }        } else {            OSCPUUsage = 0;        }        OSTaskStatHook();                        /* Invoke user definable hook                         */        OSTimeDly(OS_TICKS_PER_SEC);             /* Accumulate OSIdleCtr for the next second           */    }}#endif/*$PAGE*//***********************************************************************************************************                                            INITIALIZE TCB** Description: This function is internal to uC/OS-II and is used to initialize a Task Control Block when*              a task is created (see OSTaskCreate() and OSTaskCreateExt()).** Arguments  : prio          is the priority of the task being created**              ptos          is a pointer to the task's top-of-stack assuming that the CPU registers*                            have been placed on the stack.  Note that the top-of-stack corresponds to a *                            'high' memory location is OS_STK_GROWTH is set to 1 and a 'low' memory*                            location if OS_STK_GROWTH is set to 0.  Note that stack growth is CPU*                            specific.**              pbos          is a pointer to the bottom of stack.  A NULL pointer is passed if called by*                            'OSTaskCreate()'.**              id            is the task's ID (0..65535)**              stk_size      is the size of the stack (in 'stack units').  If the stack units are INT8Us*                            then, 'stk_size' contains the number of bytes for the stack.  If the stack*                            units are INT32Us then, the stack contains '4 * stk_size' bytes.  The stack*                            units are established by the #define constant OS_STK which is CPU*                            specific.  'stk_size' is 0 if called by 'OSTaskCreate()'.**              pext          is a pointer to a user supplied memory area that is used to extend the task*                            control block.  This allows you to store the contents of floating-point*                            registers, MMU registers or anything else you could find useful during a *                            context switch.  You can even assign a name to each task and store this name*                            in this TCB extension.  A NULL pointer is passed if called by OSTaskCreate().**              opt           options as passed to 'OSTaskCreateExt()' or, *                            0 if called from 'OSTaskCreate()'.** Returns    : OS_NO_ERR         if the call was successful*              OS_NO_MORE_TCB    if there are no more free TCBs to be allocated and thus, the task cannot*                                be created.** Note       : This function is INTERNAL to uC/OS-II and your application should not call it.**********************************************************************************************************/INT8U OSTCBInit (INT8U prio, OS_STK *ptos, OS_STK *pbos, INT16U id, INT16U stk_size, void *pext, INT16U opt){ 1000b30:	e1a07000 	mov	r7, r0 1000b34:	e1a06001 	mov	r6, r1    OS_TCB *ptcb;    OS_ENTER_CRITICAL(); 1000b38:	ebfffe17 	bl	100039c <ARMDisableInt>    ptcb = OSTCBFreeList;                                  /* Get a free TCB from the free TCB list    */ 1000b3c:	e59f20c8 	ldr	r2, [pc, #c8]	; 1000c0c <OSTCBInit+0xe8> 1000b40:	e5924000 	ldr	r4, [r2] 1000b44:	e20750ff 	and	r5, r7, #2

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美成人一区| 久久综合九色综合欧美就去吻 | 国产一区激情在线| 国产99一区视频免费| 欧美中文字幕亚洲一区二区va在线| 日韩欧美一区电影| 亚洲精品五月天| 国产凹凸在线观看一区二区| 欧美喷潮久久久xxxxx| 国产精品沙发午睡系列990531| 日韩电影在线一区二区三区| av中文字幕亚洲| 久久综合精品国产一区二区三区| 亚洲综合999| 不卡一卡二卡三乱码免费网站| 日韩小视频在线观看专区| 亚洲一二三四在线观看| 99视频国产精品| 国产清纯白嫩初高生在线观看91 | 在线看一区二区| 日本一区二区三区国色天香| 精品一区二区三区久久久| 欧美日韩亚州综合| 一区二区三区四区不卡在线| 高清日韩电视剧大全免费| 久久久一区二区三区捆绑**| 精品一区二区三区在线观看国产| 日韩一级成人av| 日本v片在线高清不卡在线观看| 欧美午夜电影网| 亚洲综合自拍偷拍| 91国产福利在线| 亚洲久本草在线中文字幕| caoporn国产精品| 国产精品麻豆久久久| 成人免费av网站| 亚洲欧美在线aaa| jlzzjlzz国产精品久久| 国产精品成人免费| 91网站在线观看视频| 综合色天天鬼久久鬼色| 9i在线看片成人免费| 亚洲女人小视频在线观看| 91麻豆免费看片| 亚洲成人在线网站| 91精品国产入口| 黄色精品一二区| 中文字幕av一区二区三区免费看 | 91麻豆产精品久久久久久| 国产精品嫩草99a| 色综合天天综合网国产成人综合天| 国产精品久久久久久久久久免费看 | 久久综合视频网| 国产精品亚洲一区二区三区妖精| 国产欧美日韩综合| 一本大道综合伊人精品热热| 亚洲午夜一区二区| 欧美不卡视频一区| 成人av网在线| 亚洲国产精品影院| 26uuu精品一区二区在线观看| 成人午夜视频网站| 亚洲国产婷婷综合在线精品| 91精品国产高清一区二区三区| 激情文学综合插| 中文字幕一区二区三区在线不卡| 欧美日韩一区二区欧美激情 | 波多野结衣中文字幕一区二区三区| 日韩理论电影院| 9191成人精品久久| 岛国精品一区二区| 天天影视网天天综合色在线播放| 久久在线观看免费| 在线欧美小视频| 国产一区二区毛片| 亚洲一二三区在线观看| 精品国产一二三| 91久久精品一区二区| 精品一区二区日韩| 亚洲综合色区另类av| 久久欧美中文字幕| 欧美日韩一区视频| 成人性生交大片免费看中文| 丝袜美腿亚洲色图| 亚洲图片另类小说| 精品国内片67194| 欧美探花视频资源| 成人精品免费网站| 国内一区二区在线| 日韩成人精品在线| 一区二区三区四区视频精品免费| 国产午夜精品久久久久久久 | 精品国产乱码久久久久久影片| 91麻豆视频网站| 国产激情视频一区二区在线观看| 午夜精品国产更新| 一区二区三区欧美在线观看| 久久精品男人的天堂| 日韩欧美亚洲国产另类| 欧美性高清videossexo| 91玉足脚交白嫩脚丫在线播放| 国产精品系列在线观看| 麻豆精品视频在线观看| 婷婷国产在线综合| 亚洲成人动漫在线观看| 亚洲精品高清在线| 亚洲色图清纯唯美| 国产精品国产自产拍高清av| 久久色.com| 久久蜜桃一区二区| 亚洲精品高清在线| 亚洲男同性恋视频| 中文字幕日韩av资源站| 亚洲欧洲成人精品av97| 国产精品初高中害羞小美女文| 国产精品每日更新| 国产视频视频一区| 中文字幕欧美国产| 国产精品午夜春色av| 国产精品视频看| 国产精品黄色在线观看| 中文字幕一区日韩精品欧美| 国产精品无人区| 最新久久zyz资源站| 亚洲视频你懂的| 一区二区三区在线看| 亚洲成人av一区| 欧美aaa在线| 精品一区二区精品| 豆国产96在线|亚洲| 国产成人精品aa毛片| 成人app下载| 欧美日韩一级大片网址| 欧美日韩另类一区| 欧美成人精品福利| 国产亚洲美州欧州综合国| 中文字幕乱码久久午夜不卡| 国产精品成人网| 午夜精品福利在线| 国产一区二三区| 99久久99久久免费精品蜜臀| 91色.com| 欧美浪妇xxxx高跟鞋交| 欧美大片免费久久精品三p | 欧美一区二区三区的| 精品福利一区二区三区 | 日韩欧美的一区| 国产色综合一区| 亚洲综合视频在线观看| 久久99国产精品免费网站| 成人白浆超碰人人人人| 欧美色精品天天在线观看视频| 日韩精品一区二区三区在线播放| 欧美国产日韩一二三区| 亚洲一区二区欧美| 国产麻豆精品在线观看| 91网站视频在线观看| 91精品国产全国免费观看 | 一区二区理论电影在线观看| 五月天精品一区二区三区| 国产成a人无v码亚洲福利| 欧美三级电影网| 国产欧美日韩一区二区三区在线观看 | 精品久久久久一区二区国产| 中文字幕中文字幕在线一区| 肉肉av福利一精品导航| www.av精品| 精品国产免费一区二区三区四区 | 日本最新不卡在线| 99热精品国产| 精品av久久707| 亚洲超碰精品一区二区| 成人午夜视频网站| www精品美女久久久tv| 午夜亚洲国产au精品一区二区 | 蜜臂av日日欢夜夜爽一区| 99国内精品久久| 久久精品一区二区| 午夜久久久久久久久| 色综合久久天天| 国产精品久久久久一区| 国精品**一区二区三区在线蜜桃| 欧美日韩中字一区| 一区二区中文字幕在线| 国内精品久久久久影院一蜜桃| 欧美日韩色一区| 亚洲女人****多毛耸耸8| 成人国产精品免费| 国产人妖乱国产精品人妖| 天天综合天天做天天综合| 91浏览器入口在线观看| 中文字幕不卡三区| 不卡一区二区中文字幕| 国产午夜精品一区二区三区四区| 精品一区二区三区在线播放视频| 7777精品伊人久久久大香线蕉完整版 | 欧美亚日韩国产aⅴ精品中极品| 综合精品久久久| 99精品欧美一区二区三区小说| 国产精品麻豆一区二区 |