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

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

?? pc.c

?? UCOSII的PORT代碼。真是麻煩呀
?? C
?? 第 1 頁 / 共 2 頁
字號:
    lock = FALSE;}/*   *********************************************************************************************************   *                                              CLEAR SCREEN   *   * Description : This function clears the PC's screen by directly accessing video RAM instead of using   *               the BIOS.  It assumed that the video adapter is VGA compatible.  Video RAM starts at   *               absolute address 0x000B8000.  Each character on the screen is composed of two bytes:   *               the ASCII character to appear on the screen followed by a video attribute.  An attribute   *               of 0x07 displays the character in WHITE with a black background.   *   * Arguments   : color   specifies the foreground/background color combination to use   *                       (see PC.H for available choices)   *   * Returns     : None   ********************************************************************************************************* */void PC_DispClrScr(INT8U color){#ifdef DEBUG_PC    printf("PC_DispClrScr\n");    return;#endif    if (PC_CHECK_RECURSIVE_CALLS && lock)			// Check and avoid recursive calls    {   perror("Recursive call in PC_DispClrScr");        exit(-1);    } else if (lock)    {	return;    } else    {   lock = TRUE;    }    printf("\033[2J");						// Clear screen and move cursor to 1,1    setColor(color);						// Set foreground/background color    lock = FALSE;}/*   *********************************************************************************************************   * 	Helper functions for time measurement   **********************************************************************************************************/#define NTIMERS 16static INT64U PC_ElapsedOverhead=0;static INT64U PC_startTime[NTIMERS], PC_stopTime[NTIMERS], PC_frequency=0;//Read the x86 CPU time stamp counterINT64U readPentiumTimeStampCounter(void){   unsigned int hi, lo;    asm("rdtsc; movl %%edx,%0; movl %%eax,%1" 	//read and copy	 	: "=r" (hi), "=r" (lo) 		//output 		: 				//input 		: "%edx", "%eax");		//registers destroyed (globbered)    return (((INT64U) hi)<<32) | ((INT64U) lo);}//Read the x86 CPU time stamp frequency (aka: time stamp counter counts per second)INT64U countsPerSecond(void){  INT64U start = readPentiumTimeStampCounter();#ifdef __WIN32__   sleep(1000);#else   sleep(1);#endif   return readPentiumTimeStampCounter() - start;}/*   *********************************************************************************************************   *                                       ELAPSED TIME INITIALIZATION   *   * Description : This function initialize the elapsed time module by determining how long the START and   *               STOP functions take to execute.  In other words, this function calibrates this module   *               to account for the processing time of the START and STOP functions.   *               Needs to be called only once before any of the timers is started with PC_ElapsedStart().   *   * Arguments   : None.   *   * Returns     : None.   ********************************************************************************************************* */void PC_ElapsedInit(void){   static BOOLEAN initDone=FALSE;    int i;        if (initDone)    	return;    for (i=0; i < 4; i++)    {    PC_frequency += countsPerSecond();    }    PC_frequency = PC_frequency >> 2;        PC_ElapsedOverhead = 0;					// Measure the overhead of PC_ElapsedStart    PC_ElapsedStart(0);						// ... and PC_ElapsedStop    PC_ElapsedOverhead = (INT16U) PC_ElapsedStop(0);    initDone=TRUE;}/*   *********************************************************************************************************   *                            START A TIMER FOR EXECUTION TIME MEASUREMENT   *   * Description : Trigger the timer to be used to measure the time between events.   *               Timer will be running when the function returns.   *		   Time measurement needs to be initalized before by calling PC_ElapsedInit, only   *               needed once for all timers together.   *   * Arguments   : n=0...NTIMERS-1 number of timer   *   * Returns     : None.   ********************************************************************************************************* */void PC_ElapsedStart(INT8U n){   if (n >= NTIMERS)        return;     PC_startTime[n]=readPentiumTimeStampCounter();		// Read the counter and store it}/*   *********************************************************************************************************   *                             STOP A TIMER FOR EXECUTION TIMER MEASUREMENT   *   * Description : This function stops the the timer for execution time measurement and computes the   *               time in microseconds since the timer was started with PC_ElapsedStart.   *   * Arguments   : n=0...NTIMERS-1 number of timer.   *   * Returns     : The number of micro-seconds since the timer was last started.   *   * Notes       : - The returned time accounts for the processing time of the START and STOP functions.   *   ********************************************************************************************************* */INT32U PC_ElapsedStop(INT8U n){    INT64U PC_diffTime;    FP64 PC_diffTime_usec;    if (n >= NTIMERS)        return 0;    PC_stopTime[n]=readPentiumTimeStampCounter();		// Read the counter and store it     PC_diffTime = PC_stopTime[n] - PC_startTime[n]; 		//Compute the difference and								// ... convert it into microseconds																    PC_diffTime_usec = PC_diffTime;    PC_diffTime_usec = PC_diffTime * 1000000.0 / PC_frequency - PC_ElapsedOverhead;    //  printf("val=%8u   %f   %u\n", (INT32U)PC_diffTime, PC_diffTime_usec, PC_frequency);    return (INT32U) PC_diffTime_usec;}/*   *********************************************************************************************************   *                                       GET THE CURRENT DATE AND TIME   *   * Description: This function obtains the current date and time from the PC.   *   * Arguments  : s     is a pointer to where the ASCII string of the current date and time will be stored.   *                    You must allocate at least 21 bytes (includes the NUL) of storage in the return   *                    string.  The date and time will be formatted as follows:   *   *                        "YYYY-MM-DD  HH:MM:SS"   *   * Returns    : none   ********************************************************************************************************* */void PC_GetDateTime(char *s){   struct tm *now;    time_t nowT;    char *pS;        nowT= time(NULL);    now = (struct tm*) localtime(&nowT);			// Get the local time    sprintf(s, "%04d-%02d-%02d  %02d:%02d:%02d",		// Convert into a string            now->tm_year + 1900,            now->tm_mon + 1,            now->tm_mday,            now->tm_hour,            now->tm_min,            now->tm_sec);}/***********************************************************************************************************                                        INSTALL INTERRUPT VECTOR** Description: This function sets an interrupt vector in the "simulated" interrupt vector table.** Arguments  : vect  is the desired interrupt vector number, a number between 1 and 7.*              isr   is a pointer to a function to execute when the interrupt or exception occurs.**              Interrupt 0 cannot be set, because it is reserved for the timer interrupt.** Returns    : none**********************************************************************************************************/void  PC_IntVectSet(INT8U irq, void (*isr)(void)){   if ((irq >0) && (irq < 8))       interruptTable[irq]=isr;}/***********************************************************************************************************                                        OBTAIN INTERRUPT VECTOR** Description: This function reads the pointer stored at the specified vector.** Arguments  : vect  is the desired interrupt vector number, a number between 0 and 7.** Returns    : The address of the Interrupt handler stored at the desired vector location.**********************************************************************************************************/void *PC_IntVectGet(INT8U irq){   if (irq < 8)       return interruptTable[irq];    else       return NULL;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合亚洲深深色噜噜狠狠网站| 韩国成人在线视频| 欧美精品一区男女天堂| av在线播放一区二区三区| 老司机精品视频线观看86| 亚洲精品伦理在线| 久久久www成人免费无遮挡大片| 日本大香伊一区二区三区| 国产乱国产乱300精品| 午夜精品福利久久久| 亚洲视频在线观看三级| 欧美精品一区二区不卡| 欧美群妇大交群的观看方式 | 国产高清一区日本| 日韩av网站在线观看| 夜夜爽夜夜爽精品视频| 国产精品白丝在线| 国产欧美视频一区二区三区| 欧美大片在线观看一区二区| 欧美精品日韩一区| 在线一区二区三区四区五区| 成人午夜大片免费观看| 国产最新精品精品你懂的| 六月丁香综合在线视频| 视频一区视频二区中文字幕| 亚洲高清免费在线| 一区二区三区中文在线| 亚洲激情六月丁香| 亚洲你懂的在线视频| 一区在线播放视频| 国产精品网曝门| 国产精品入口麻豆原神| 欧美经典一区二区| 欧美国产日韩精品免费观看| 国产性天天综合网| 久久久国产精品不卡| 国产亚洲婷婷免费| 欧美激情在线观看视频免费| 欧美激情中文不卡| 中文字幕一区二区在线播放| 国产精品白丝在线| 亚洲靠逼com| 亚洲影视在线观看| 亚洲一区av在线| 一区二区三区日韩欧美精品| 亚洲专区一二三| 午夜精品久久久久久久| 免费在线观看视频一区| 蜜乳av一区二区| 国产精品一二三区在线| 成人免费视频app| 91性感美女视频| 欧美日韩国产天堂| 日韩欧美高清一区| 久久精品欧美一区二区三区不卡| 日本一区二区三区在线不卡| 国产精品人成在线观看免费| 亚洲男同性视频| 亚洲成av人影院在线观看网| 日韩精品电影在线观看| 精品亚洲aⅴ乱码一区二区三区| 国产成人精品免费一区二区| av在线这里只有精品| 欧美三级中文字幕在线观看| 亚洲免费av在线| 亚瑟在线精品视频| 久久精品国产999大香线蕉| 国产91丝袜在线18| 欧美亚洲国产一卡| 欧美精品一区二| 亚洲免费在线视频一区 二区| 日韩精品久久理论片| 国产成人精品免费在线| 欧美调教femdomvk| www激情久久| 一区二区不卡在线视频 午夜欧美不卡在| 三级亚洲高清视频| 国产成人免费在线观看| 欧美日韩国产另类一区| 久久久久99精品一区| 亚洲精品乱码久久久久久 | 激情成人综合网| 99久久伊人久久99| 欧美一卡在线观看| 最新日韩av在线| 久久精品99国产精品| 成人免费毛片片v| 欧美电视剧在线看免费| 亚洲乱码国产乱码精品精小说| 日本在线不卡视频| 91视频精品在这里| 精品国产乱码久久久久久老虎| 亚洲欧洲日本在线| 国产在线一区二区| 欧美日韩高清在线播放| 国产午夜一区二区三区| 天天色 色综合| av亚洲产国偷v产偷v自拍| 日韩欧美电影在线| 亚洲精品成a人| 国产91精品欧美| 欧美一卡2卡三卡4卡5免费| 亚洲精品视频在线看| 国产精品99精品久久免费| 欧美一区二区黄色| 亚洲成av人**亚洲成av**| 91玉足脚交白嫩脚丫在线播放| 精品国产亚洲在线| 日本不卡在线视频| 欧美精品 国产精品| 亚洲自拍偷拍欧美| 99精品欧美一区二区蜜桃免费| 久久久影院官网| 免费在线视频一区| 91精品国产欧美一区二区| 亚洲综合久久久久| 91捆绑美女网站| 日韩一区欧美一区| 成人激情动漫在线观看| 国产亚洲欧美一区在线观看| 精品亚洲porn| 久久婷婷久久一区二区三区| 琪琪一区二区三区| 亚洲免费成人av| 色成人在线视频| 日韩毛片一二三区| 91蝌蚪porny| 一区二区三区四区蜜桃| 成人不卡免费av| 国产精品无遮挡| av爱爱亚洲一区| 中文字幕制服丝袜成人av| 国产99久久久精品| 国产精品毛片久久久久久| 成人精品视频一区二区三区| 中文字幕av一区二区三区高| 成年人午夜久久久| 亚洲免费在线观看| 欧美在线免费视屏| 天天色综合天天| 日韩精品最新网址| 国产一区在线视频| 欧美国产一区在线| 一本久久a久久精品亚洲| 亚洲一二三四在线观看| 欧美天堂亚洲电影院在线播放| 亚洲一区二区美女| 欧美一区二区精品| 国产精品456| 亚洲丝袜制服诱惑| 欧美美女bb生活片| 久久成人久久爱| 国产精品久久久久影院老司 | 欧美日韩情趣电影| 久久精品夜夜夜夜久久| 国产精品护士白丝一区av| 欧美不卡在线视频| 欧美一区二区三区四区视频| 欧美精品视频www在线观看 | 亚洲国产精品久久久久秋霞影院| 欧美群妇大交群中文字幕| 日本道在线观看一区二区| 福利91精品一区二区三区| 99精品国产一区二区三区不卡| 国产成人av一区二区三区在线| 久久超碰97中文字幕| 激情国产一区二区| 国产一区在线不卡| 亚洲日本免费电影| 制服丝袜国产精品| 国产精品综合av一区二区国产馆| 国产精品麻豆欧美日韩ww| 欧美日韩在线播| 国产一区二区三区精品视频| 亚洲天堂网中文字| 日韩色在线观看| 成人爱爱电影网址| 日本欧美一区二区| 亚洲国产激情av| 91精品国产色综合久久 | 免费人成精品欧美精品| 久久综合久久鬼色| 欧美做爰猛烈大尺度电影无法无天| 日韩福利电影在线| 国产精品电影一区二区| 日韩亚洲欧美中文三级| 成人中文字幕电影| 日韩av一二三| 中文字幕在线不卡| 久久久久久久久久久久久久久99| 色婷婷亚洲综合| 国产福利一区二区三区视频| 亚洲图片欧美视频| 国产精品乱人伦一区二区| 日韩欧美国产电影| 欧美日本一区二区三区四区| 99久久久久免费精品国产| 韩国女主播成人在线| 天堂成人免费av电影一区| 最新成人av在线|