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

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

?? os_cpu_c.c

?? UCOSII的PORT代碼。真是麻煩呀
?? C
?? 第 1 頁 / 共 2 頁
字號:
        } else if (eventType==hInterruptEvent[7])        {   interruptTable[7]();        } else        {  perror("OSInterruptThread(): Unsupported interrupt\n");	}	DBGPRINT(0x00000001, "--- OSIntExit\n");        OSIntExit();        LeaveCriticalSection(&criticalSection);    }}/**********************************************************************************************************   uCOS-II Functions**********************************************************************************************************/// OSStopThreads *************************************************************// Stop all threads before exiting the programvoid OSStopThreads(void){   DBGPRINT(0x00000001, "--- Sending signal SIGKILL to PID=%u\n", hMainThread);    kill(hMainThread, SIGKILL);}// OSTimeTickInit ************************************************************// Initialize the LINUX multimedia timer to simulate time tick interruptsvoid OSTimeTickInit(){   ITIMERVAL timerVal;    DBGPRINT(0x00000008, "*** OSTimeTickInit\n");    signal(SIGALRM, OSTimeTickCallback);    timerVal.it_interval.tv_sec = 0;    timerVal.it_interval.tv_usec = 1000000/ OS_TICKS_PER_SEC;    timerVal.it_value=timerVal.it_interval;    if (setitimer(ITIMER_REAL,&timerVal, NULL))    {	printf("uCOS-II ERROR: Timer could not be installed 1\n");    	exit(-1);    }}// OSTaskStkInit *************************************************************// This function does initialize the stack of a task (this is only a dummy function// for compatibility reasons, because this stack is not really used (except to refer// to the task parameter *pdata)OS_STK *OSTaskStkInit(void (*task) (void *pd), void *pdata, OS_STK *ptos, INT16U opt){   OS_STK *stk;    DBGPRINT(0x00000010, "*** OSTaskStkInit\n");    stk = (OS_STK *) ptos;                                      // Load stack pointer    *--stk = (INT32U) pdata;					// Push pdata on the stack    *--stk = (INT32U) task;					// Push the task start address on the stack    DBGPRINT(0x00000010, "*** OSTaskStkInit end\n");    return stk;}/********************************************************************************   Internal Hook functions (used by the LINUX port, not user hookable)********************************************************************************/// OSInitHookBegin ***********************************************************// This hook is invoked at the beginning of the OS initialization. MUST NOT BE DEFINED BY THE APPLICATION.void OSInitHookBegin(){   int i;    char temp[256];    void *p, *q;    p=malloc(TASKSTACKSIZE);    p=p+TASKSTACKSIZE;    q=malloc(TASKSTACKSIZE);    q=q+TASKSTACKSIZE;    DBGPRINT(0x00000010, "*** OSInitHookBegin  PID=%u  TID=%u\n", getpid(), gettid());    hMainThread=getpid();    hScheduleEvent = SIGCONT;    signal(hScheduleEvent, OSScheduleEventHandler);    sigemptyset(&interruptSignalSet);    sigaddset(&interruptSignalSet, hScheduleEvent);    for (i=0; i< NINTERRUPTS; i++)    {	interruptTable[i]  = OSDummyISR;	if (i==0) 					//Seems that Linux kernel 2.6.x does not support	    hInterruptEvent[i]=SIGUSR1;			//real time signals SIGRTMIN ... ???	else if (i==1)	    hInterruptEvent[i]=SIGUSR2;	else            hInterruptEvent[i] = SIGRTMIN+10+i;	signal(hInterruptEvent[i], OSInterruptEventHandler);	sigaddset(&interruptSignalSet, hInterruptEvent[i]);    }    InitializeCriticalSection(&criticalSection);    hScheduleThread=clone((LPTHREAD_START_ROUTINE) OSScheduleThread, p,		//Start the schedule thread  					CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_VM, NULL);    hInterruptThread=clone((LPTHREAD_START_ROUTINE) OSInterruptThread, q,	//Start the Interrupt thread  					CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_VM, NULL);    interruptTable[0] = OSTimeTick;    atexit(OSStopThreads);    DBGPRINT(0x00000010, "--- PID schedule thread = %u  interrupt thread = %u\n", hScheduleThread, hInterruptThread);    if (setpriority(PRIO_PROCESS, hScheduleThread,  -10))			//Set the scheduler and interrupt threads to maximum LINUX priority    	DBGPRINT(0x00000010, "Setting hScheduleThread priority failed\n");    if (setpriority(PRIO_PROCESS, hInterruptThread, -10))    	DBGPRINT(0x00000010, "Setting hInterruptThread priority failed\n");    signal(SIGINT,  CtrlBreakHandler);    signal(SIGTSTP, CtrlBreakHandler);    sched_yield();						//Give Linux a chance to start the scheduler and interrupt thread    //ADD YOUR OWN HOOK CODE HERE IF NECESSARY}typedef struct { BOOLEAN flag; LPTHREAD_START_ROUTINE routine; void *param; INT16U prio;} TASKSTART;TASKSTART taskStart;// OSGenericTaskRoutine ******************************************************// Used to suspend a task after creationint OSGenericTaskRoutine(void *param){   TASKSTART localTaskStart;					//Flag, that the new task has been started    memcpy(&localTaskStart, param, sizeof(TASKSTART));    taskStart.flag=TRUE;    DBGPRINT(0x00000004, "--- Sending signal SIGSTOP to self %u ---\n", taskStart.prio);    kill(getpid(), SIGSTOP);   					//Suspend the task    DBGPRINT(0x00000004, "--- Continuing task %u ---\n", localTaskStart.prio);    localTaskStart.routine(localTaskStart.param);		//Continue the task}// OSTaskCreateHook **********************************************************// This hook is invoked during task creation. MUST NOT BE DEFINED BY THE APPLICATION.void OSTaskCreateHook(OS_TCB *pTcb){   int i;    void *p;    DBGPRINT(0x00000004, "*** OSTaskCreateHook %u\n", pTcb->OSTCBPrio);    p=malloc(TASKSTACKSIZE);    p=p+TASKSTACKSIZE;        taskStart.flag=FALSE;    taskStart.routine=(LPTHREAD_START_ROUTINE) *(pTcb->OSTCBStkPtr);    taskStart.param  =(void *)                 *(pTcb->OSTCBStkPtr + 1);    taskStart.prio   = pTcb->OSTCBPrio;        hTaskThread[pTcb->OSTCBPrio]=clone((LPTHREAD_START_ROUTINE) OSGenericTaskRoutine, p,	//Map uCOS-II task to LINUX thread    					CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_VM,					(void *) &taskStart);    DBGPRINT(0x00000004, "--- PID new Task = %u\n", hTaskThread[pTcb->OSTCBPrio]);    while(taskStart.flag==FALSE)    	sched_yield();    taskSuspended[pTcb->OSTCBPrio]=1;								//Create thread in LINUX suspended state/*  Does not work ???    if (OS_BOOST_LINUX_PRIORITY && (pTcb->OSTCBPrio!=OS_LOWEST_PRIO))          			 //Boost LINUX thread priorites (except idle thread)        setpriority(PRIO_PROCESS, hTaskThread[pTcb->OSTCBPrio], -5);*/    //ADD YOUR OWN HOOK CODE HERE IF NECESSARY}// OSTaskIdleHook ************************************************************// This hook is invoked from the idle task. MUST NOT BE DEFINED BY THE APPLICATION.void OSTaskIdleHook(){   if (idleTrigger)						//Issue a debug message, each time the idle task is reinvoked    {   DBGPRINT(0x00000020, "*** OSTaskIdleHook\n");        idleTrigger = FALSE;    }    //ADD YOUR OWN HOOK CODE HERE IF NECESSARY    sched_yield();						//Give Linux a chance to run other applications to when uCOS-II idles}/********************************************************************************   Hook functions (user hookable)********************************************************************************/#if OS_CPU_HOOKS_EN > 0/*void OSInitHookBegin()                  MUST NOT BE DEFINED BY THE APPLICATION, see above.*/// OSInitHookEnd *************************************************************// This hook is invoked at the end of the OS initialization.void OSInitHookEnd(){}/*void OSTaskCreateHook(OS_TCB * pTcb)    MUST NOT BE DEFINED BY THE APPLICATION, see above.*/// OSTaskDelHook *************************************************************// This hook is invoked during task deletion.void OSTaskDelHook(OS_TCB * pTcb){}// OSTCBInitHook// This hook is invoked during TCB initializationvoid OSTCBInitHook(OS_TCB * ptcb){}/*void OSTaskIdleHook()                   MUST NOT BE DEFINED BY THE APPLICATION, see above.*/// OSTaskStatHook ************************************************************// This hook is invoked by the statistical task every second.void OSTaskStatHook(){}// OSTimeTickHook ************************************************************// This hook is invoked during a time tick.void OSTimeTickHook(){}// OSTaskSwHook **************************************************************// This hook is invoked during a task switch.// OSTCBCur points to the current task (being switched out).// OSTCBHighRdy points on the new task (being switched in).void OSTaskSwHook(){}#else#pragma message("INFO: Hook functions must be defined in the application")#endif/********************************************************************************   Internal Task switch functions********************************************************************************/// OSStartHighRdy *************************************************************// Start first taskvoid OSStartHighRdy(void){   OSTaskSwHook();						//Call the task switch hook function    OSTimeTickInit();                                           //Initialize time ticks    // Increment OSRunning by 1    OSRunning++;    DBGPRINT(0x00000002, "*** OSStartHighRdy   from %2u to %2u\n", OSPrioCur, OSPrioHighRdy);    DBGPRINT(0x00000002, "--- Sending signal hScheduleEvent to PID=%u\n", hScheduleThread);    kill(hScheduleThread,hScheduleEvent);                      	//Trigger scheduling thread    while(OSRunning)						//A redundant idle thread, in case the uCOS    {   //usleep(1000);						//scheduler does not invoke the uCOS idle task        sched_yield();//   	DBGPRINT(0x00000002, "*** OSStartHighRdy   Idle loop\n");    }    printf("ERROR: Primary thread killed - exiting\n");}// OSCtxSw ********************************************************************// Task context switchvoid OSCtxSw(void){   OSTaskSwHook();						//Call the task switch hook function    DBGPRINT(0x00000002, "*** OSCtxSw          from %2u to %2u\n", OSPrioCur, OSPrioHighRdy);    DBGPRINT(0x00000002, "--- Sending signal hScheduleEvent to PID=%u\n", hScheduleThread);    kill(hScheduleThread,hScheduleEvent);                     	//Trigger scheduling thread    sched_yield();						//... and give Linux a chance to invoke it}// OSIntCtxSw *****************************************************************// Interrupt context switchvoid OSIntCtxSw(void){   OSTaskSwHook();						//Call the task switch hook function    DBGPRINT(0x00000002, "*** OSCIntCtxSw      from %2u to %2u\n", OSPrioCur, OSPrioHighRdy);    DBGPRINT(0x00000002, "--- Sending signal hScheduleEvent to PID=%u\n", hScheduleThread);    kill(hScheduleThread,hScheduleEvent);                      	//Trigger scheduling thread    sched_yield();						//... and give Linux a chance to invoke it}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品午夜电影| 天天综合色天天综合| 欧美三日本三级三级在线播放| 久久精品国产77777蜜臀| 中文字幕一区二区三区在线观看 | 精品一区二区三区久久| 中文字幕一区二区三区不卡| 日韩欧美在线影院| 91福利国产精品| 成人黄色软件下载| 国产一区二区三区综合| 丝袜诱惑制服诱惑色一区在线观看| 欧美国产欧美综合| 精品电影一区二区| 91精品国产一区二区| 91免费国产在线观看| 国产成人在线影院| 蜜臀av性久久久久蜜臀aⅴ| 夜夜精品浪潮av一区二区三区| 国产欧美日韩另类视频免费观看| 欧美一区二区三区四区视频| 欧美中文字幕不卡| 色综合色狠狠天天综合色| 成人av先锋影音| 国产成人精品免费| 国产精品一区二区在线观看网站| 久久99国产精品免费网站| 午夜日韩在线电影| 婷婷国产在线综合| 婷婷久久综合九色综合伊人色| 亚洲国产一区二区在线播放| 一区二区三区日韩精品视频| 亚洲欧洲制服丝袜| 成人欧美一区二区三区白人| 国产精品色眯眯| 国产精品乱码人人做人人爱| 久久精品一区二区三区四区| 337p日本欧洲亚洲大胆色噜噜| 日韩欧美美女一区二区三区| 日韩欧美国产综合在线一区二区三区| 欧美日韩精品欧美日韩精品 | 精品国产sm最大网站| 日韩一区二区三区在线| 日韩欧美成人午夜| 亚洲精品在线一区二区| 亚洲精品在线观| 欧美国产一区视频在线观看| 亚洲国产岛国毛片在线| 亚洲区小说区图片区qvod| 亚洲综合一区二区| 婷婷夜色潮精品综合在线| 人人超碰91尤物精品国产| 黑人巨大精品欧美一区| 国产麻豆午夜三级精品| 成人av电影免费观看| 91久久线看在观草草青青| 欧美视频一区二| 欧美一区二区网站| 久久综合网色—综合色88| 国产日韩欧美精品综合| 亚洲美女电影在线| 日韩电影在线观看电影| 国产在线播放一区三区四| 9色porny自拍视频一区二区| 日本久久一区二区三区| 日韩欧美一二三区| 国产精品短视频| 日韩精品一二三区| 国产精品456| 91久久精品一区二区| 欧美一区二区在线不卡| 久久综合999| 亚洲激情一二三区| 美女mm1313爽爽久久久蜜臀| 成人一级黄色片| 欧美精品精品一区| 国产精品久久久久一区| 亚洲成av人片www| 福利一区福利二区| 欧美日韩中文一区| 久久精子c满五个校花| 一区二区三区电影在线播| 极品少妇一区二区三区精品视频| 99久久99久久精品免费看蜜桃| 91精品国产综合久久精品app| 国产人成亚洲第一网站在线播放 | 国产激情一区二区三区桃花岛亚洲| 99久久99久久精品免费看蜜桃| 91麻豆精品国产91久久久久久久久 | 久久激五月天综合精品| 波多野结衣精品在线| 91精彩视频在线| 久久嫩草精品久久久久| 亚洲小少妇裸体bbw| 国产精品66部| 6080yy午夜一二三区久久| 国产精品入口麻豆原神| 全部av―极品视觉盛宴亚洲| 91亚洲资源网| 久久久不卡网国产精品二区| 亚洲五月六月丁香激情| 国产凹凸在线观看一区二区| 欧美精品日韩一区| 最近日韩中文字幕| 极品少妇一区二区三区精品视频 | 免费高清成人在线| 成人午夜av电影| 精品久久久网站| 一区二区三区四区av| 成人h动漫精品| 久久久久9999亚洲精品| 丝袜美腿亚洲综合| 色欧美日韩亚洲| 国产精品无人区| 激情另类小说区图片区视频区| 欧美日韩亚洲丝袜制服| 亚洲人成精品久久久久久| 国产成人欧美日韩在线电影| 精品国产乱码久久久久久图片| 午夜精品福利久久久| 91九色最新地址| 亚洲欧美激情插 | 亚洲午夜三级在线| 91在线云播放| 国产精品成人免费精品自在线观看| 久久99精品国产麻豆不卡| 欧美一区二区三区免费| 日韩中文字幕av电影| 91久久精品一区二区三区| 中文字幕在线播放不卡一区| 国产成人啪午夜精品网站男同| 久久综合资源网| 国产乱码精品1区2区3区| 精品国产伦理网| 国产精品亚洲一区二区三区妖精| 日韩小视频在线观看专区| 奇米四色…亚洲| 欧美日韩日日摸| 日韩精品电影一区亚洲| 制服丝袜中文字幕亚洲| 男女男精品视频网| 欧美一区二区免费视频| 美女网站一区二区| 亚洲精品一区二区三区香蕉| 精品在线一区二区三区| 国产日韩欧美高清| 国产sm精品调教视频网站| 国产欧美综合在线观看第十页 | 宅男在线国产精品| 蜜臀国产一区二区三区在线播放| 欧美成人欧美edvon| 国产精品自拍三区| 一区视频在线播放| 欧美视频一二三区| 久久精品久久99精品久久| 精品久久久久一区二区国产| 国产91高潮流白浆在线麻豆 | 国产精品沙发午睡系列990531| 99re亚洲国产精品| 亚洲午夜精品在线| 日韩欧美国产精品| 成人晚上爱看视频| 亚洲综合另类小说| 精品国产亚洲一区二区三区在线观看| 国产一级精品在线| 一区二区三区高清| 精品国产露脸精彩对白| 91污片在线观看| 丝袜亚洲另类欧美综合| 久久久综合激的五月天| 99re6这里只有精品视频在线观看| 又紧又大又爽精品一区二区| 91精品欧美一区二区三区综合在| 国产制服丝袜一区| 亚洲日本丝袜连裤袜办公室| 欧美色国产精品| 国产成人久久精品77777最新版本| 国产精品对白交换视频 | 欧美精品一区二区三区在线播放| 国产精品一级在线| 亚洲女人小视频在线观看| 欧美一区二区三区免费视频| 岛国精品在线观看| 亚洲国产毛片aaaaa无费看| 久久久不卡网国产精品二区| 91福利社在线观看| 国产高清视频一区| 亚洲国产一区在线观看| 国产精品网站一区| 欧美一级视频精品观看| 99久久精品99国产精品| 老司机精品视频导航| 亚洲美女淫视频| 欧美激情一区在线观看| 欧美电影影音先锋| 99麻豆久久久国产精品免费| 老鸭窝一区二区久久精品| 亚洲裸体在线观看| 久久这里只有精品6| 337p亚洲精品色噜噜狠狠|