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

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

?? test.c

?? This a simple OS for study.
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
*********************************************************************************************************
*                                                uC/OS-II
*                                          The Real-Time Kernel
*
*                           (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
*                                           All Rights Reserved
*
*                                               EXAMPLE #1
*********************************************************************************************************
*/

#include "includes.h"

/*
*********************************************************************************************************
*                                               CONSTANTS
*********************************************************************************************************
*/

#define  TEST_TASK_STK_SIZE                 400       /* Size of each task's stacks (# of WORDs)       */

#define  TEST_N_TASKS                        10       /* Number of identical tasks                     */

/*
*********************************************************************************************************
*                                               VARIABLES
*********************************************************************************************************
*/

OS_STK        TestStartStk[TEST_TASK_STK_SIZE];       /* Tasks stacks                                  */

OS_STK        TestTaskStk[TEST_N_TASKS][TEST_TASK_STK_SIZE];

OS_EVENT     *TestRandomSem;
char          TestTaskData[TEST_N_TASKS];             /* Parameters to pass to each task               */

OS_EVENT     *TestTerminalMbox;
INT16U        TestTerminalMsgCtr;
OS_STK        TestTerminalTaskStk[TEST_TASK_STK_SIZE];

INT16U        TestDly;
INT16U        TestLoops;

/*
*********************************************************************************************************
*                                           FUNCTION PROTOTYPES
*********************************************************************************************************
*/

static  void  TestStart(void *data);                  /* Function prototypes of Startup task           */
static  void  TestTask(void *data);

static  void  TestTerminalCallback(INT8U data);
static  void  TestTerminalTask(void *pdata);

static  void  TestCreateTasks(void);
static  void  TestDisp(void);
static  void  TestDispInit(void);
static  void  TestDispStat(void);

static  void  TestDispTaskData(void);

/*$PAGE*/
/*
*********************************************************************************************************
*                                                MAIN
*********************************************************************************************************
*/

void  main (void)
{
	INT8U  prio;
    INT8U  err;


    OSInit();                                              /* Initialize uC/OS-II                      */

    PC_DOSSaveReturn();                                    /* Save environment to return to DOS        */
    PC_VectSet(uCOS, OSCtxSw);                             /* Install uC/OS-II's context switch vector */

    printf("uC/OS-II and uC/OS-View on 80x86 (Large).\n");

    prio = 0;
    OSTaskCreateExt(TestStart, 
                    (void *)0, 
                    &TestStartStk[TEST_TASK_STK_SIZE - 1], 
                    prio,
                    prio,
                    &TestStartStk[0],
					TEST_TASK_STK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CLR + OS_TASK_OPT_STK_CHK);
    OSTaskNameSet(prio, "Start Task", &err);

    OSStart();                                             /* Start multitasking                       */
}


/*
*********************************************************************************************************
*                                              STARTUP TASK
*********************************************************************************************************
*/
static  void  TestStart (void *pdata)
{
#if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
    OS_CPU_SR  cpu_sr;
#endif
    char       s[100];
    INT16S     key;
    INT32U     cycles;


    pdata = pdata;                                         /* Prevent compiler warning                 */

    OS_ENTER_CRITICAL();
    PC_VectSet(0x08, OSTickISR);                           /* Install uC/OS-II's clock tick ISR        */
    PC_SetTickRate(OS_TICKS_PER_SEC);                      /* Reprogram tick rate                      */
    OS_EXIT_CRITICAL();

    OSStatInit();                                          /* Initialize uC/OS-II's statistics         */

    OSView_Init();                                         /* Initialize uC/OS-View                    */

    TestTerminalMbox = OSMboxCreate((void *)0);
    OSView_TerminalRxSetCallback(TestTerminalCallback);    /* Setup Terminal callback function         */

    TestCreateTasks();                                     /* Create all the application tasks         */

    PC_DispClrScr(DISP_FGND_WHITE);

    TestDispInit();

    TestDly   = 100;
	TestLoops = 250;
    while (TRUE) {
        if (PC_GetKey(&key) == TRUE) {                     /* See if key has been pressed              */
            switch (key) {                                 
                case 0x1B:                                 /* See if it's the ESCAPE key               */
			         OSView_Exit();
                     PC_DOSReturn();                       /* Return to DOS                            */
                     break;

                case '+':                                  /* Increase task execution rate             */
                case '=':
                     if (TestDly > 10) {
                         TestDly -= 5;
                     } else if (TestDly > 0) {
                         TestDly--;
					 }
                     break;
                                                           /* Decrease task execution rate             */
                case '-':
                case '_':
                     if (TestDly < 10) {
                         TestDly++;
                     } else if (TestDly <= 95) {
					     TestDly += 5;
					 }
                     break;

                case 'U':                                  /* Increase task execution time             */ 
                case 'u':
                     if (TestLoops <= 990) {
					     TestLoops += 10;
					 }
                     break;

                case 'D':                                  /* Decrease task execution time             */
                case 'd':
                     if (TestLoops > 20) {
                         TestLoops -= 10;
					 }
                     break;
            }
        }

		TestDispStat();
        TestDispTaskData();

        PC_GetDateTime(s);
        PC_DispStr(60, 23, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);

        cycles = OSView_TimeGetCycles();
        sprintf(s, "%10lu", cycles);
        PC_DispStr(60, 24, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);

        OSTimeDly(OS_TICKS_PER_SEC / 10);
    }
}

/*$PAGE*/
/*
*********************************************************************************************************
*                             HANDLE VIEWER's TERMINAL WINDOW KEYSTROKES
*
* Note(s): This function is called from an ISR.
*********************************************************************************************************
*/

static  void  TestTerminalCallback (INT8U data)
{
    OSMboxPost(TestTerminalMbox, (char *)data);
}


/*
*********************************************************************************************************
*                             HANDLE VIEWER's TERMINAL WINDOW KEYSTROKES
*********************************************************************************************************
*/

static  void  TestTerminalTask (void *pdata)
{
#if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
    OS_CPU_SR  cpu_sr;
#endif
    char       s[100];
    char       key;
    INT8U      err;


    pdata = pdata;                                         /* Prevent compiler warning                 */
    while (TRUE) {
        key = (char)OSMboxPend(TestTerminalMbox, 0, &err);
        TestTerminalMsgCtr++;
        sprintf(s, "%05u", TestTerminalMsgCtr);
        PC_DispStr(60, 22, s, DISP_FGND_YELLOW + DISP_BGND_BLUE);
        switch (key) {
            case '1':
                 sprintf(s, "\nCPU Usage = %3u%%\n", OSCPUUsage);
                 OSView_TxStr(s, 1);
                 break;

            case '2':
                 sprintf(s, "\n#Tasks    = %3u\n", OSTaskCtr);
                 OSView_TxStr(s, 1);
                 break;

            default:
                 OSView_TxStr("\n\nMicrium, Inc.",       1);
                 OSView_TxStr("\n1: CPU Usage (%)",      1);
                 OSView_TxStr("\n2: #Tasks",             1);
                 OSView_TxStr("\n?: Help (This menu)\n", 1);
                 break;
        }
    }
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                             CREATE TASKS
*********************************************************************************************************
*/

static  void  TestCreateTasks (void)
{
	INT8U  prio;
    INT8U  err;
    INT8U  i;
    char   s[20];


    prio = 1;
    OSTaskCreateExt(TestTerminalTask,                      /* uC/OS-View Terminal task                 */
                    (void *)0, 
                    &TestTerminalTaskStk[TEST_TASK_STK_SIZE - 1], 
                    prio,
                    prio,
                    &TestTerminalTaskStk[0],
				    TEST_TASK_STK_SIZE,
                    (void *)0,
                    OS_TASK_OPT_STK_CLR + OS_TASK_OPT_STK_CHK);
    OSTaskNameSet(prio, "uC/OS-View Terminal", &err);

    for (i = 0; i < TEST_N_TASKS; i++) {
        sprintf(s, "Task #%2d", i + 1);
        TestTaskData[i] = '0' + i;                         /* Each task will display its own letter    */
        prio            = i + 2;
        OSTaskCreateExt(TestTask, 
                        (void *)&TestTaskData[i], 
                        &TestTaskStk[i][TEST_TASK_STK_SIZE - 1], 
                        prio,
                        prio,
                        &TestTaskStk[i][0],
					    TEST_TASK_STK_SIZE,
                        (void *)0,
                        OS_TASK_OPT_STK_CLR + OS_TASK_OPT_STK_CHK);
        OSTaskNameSet(prio, s, &err);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频在线观看一区| 亚洲成人福利片| 欧美性受xxxx黑人xyx| 精品在线免费视频| 一级做a爱片久久| 国产日韩欧美麻豆| 日韩视频一区二区在线观看| 91伊人久久大香线蕉| 国产激情一区二区三区| 日本伊人精品一区二区三区观看方式| 国产欧美日韩在线看| 精品国产髙清在线看国产毛片| 色综合久久久久| 成人黄色大片在线观看| 国内久久精品视频| 日韩av一区二区三区| 亚洲国产美国国产综合一区二区| 国产精品久久久一本精品| 精品久久久久久久久久久久包黑料 | 国产午夜精品在线观看| 欧美一区二区免费| 欧美美女bb生活片| 欧美在线短视频| 日本乱人伦aⅴ精品| 91色九色蝌蚪| 99re亚洲国产精品| voyeur盗摄精品| 成人美女视频在线观看| 粉嫩绯色av一区二区在线观看 | 99久久久久免费精品国产| 国产河南妇女毛片精品久久久| 久久精品72免费观看| 日本在线不卡一区| 日韩国产一区二| 日韩在线a电影| 无码av中文一区二区三区桃花岛| 亚洲成av人片在线| 亚洲不卡在线观看| 午夜亚洲国产au精品一区二区| 香蕉久久夜色精品国产使用方法 | 欧美精品日韩综合在线| 欧美肥妇毛茸茸| 日韩一区二区麻豆国产| 日韩欧美成人一区二区| 精品国产亚洲在线| 久久久国产午夜精品| 久久久99精品免费观看不卡| 久久久欧美精品sm网站| 国产日韩av一区| 中文字幕亚洲一区二区va在线| 亚洲天堂av老司机| 亚洲制服丝袜一区| 日日夜夜一区二区| 久久99日本精品| 国产成人精品综合在线观看| 成人在线综合网| 一本大道久久精品懂色aⅴ| 在线观看免费一区| 91精品国产91热久久久做人人| 日韩视频免费直播| 国产日韩欧美激情| 亚洲精品高清在线观看| 日本欧美一区二区三区乱码| 国产精品白丝av| 色一区在线观看| 欧美一区二区三区四区高清 | 午夜欧美大尺度福利影院在线看 | 91亚洲精品久久久蜜桃| 欧美精品乱人伦久久久久久| 精品国产在天天线2019| 国产精品大尺度| 亚洲高清视频的网址| 激情丁香综合五月| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 99精品视频中文字幕| 欧美日本一区二区三区四区| 精品99久久久久久| 亚洲欧美日韩国产中文在线| 日本欧美一区二区| 国产精品911| 欧美日韩亚洲另类| 欧美激情综合五月色丁香| 亚洲一区在线观看网站| 狠狠色丁香婷婷综合| 色视频一区二区| 欧美r级电影在线观看| 中文字幕日韩av资源站| 视频一区视频二区中文字幕| 成人午夜私人影院| 欧美网站大全在线观看| 久久久精品蜜桃| 亚洲成人免费av| 成人精品一区二区三区四区| 欧美精品99久久久**| 国产精品久久久久久久裸模| 美国欧美日韩国产在线播放| 日本乱人伦aⅴ精品| 久久久国产精品午夜一区ai换脸| 亚洲电影一级片| 91视频在线看| 欧美激情一区二区三区| 日韩电影在线一区二区三区| 色先锋aa成人| 中文字幕欧美激情| 狠狠色伊人亚洲综合成人| 欧美日韩一区视频| 亚洲色欲色欲www| 国产成人av影院| 欧美一区二区三区在线视频| 亚洲综合在线电影| 91最新地址在线播放| 亚洲国产精品成人综合色在线婷婷| 日韩高清电影一区| 欧美巨大另类极品videosbest| 亚洲女爱视频在线| gogogo免费视频观看亚洲一| 久久婷婷国产综合国色天香| 日本伊人午夜精品| 在线综合视频播放| 亚洲电影中文字幕在线观看| 在线观看亚洲一区| 亚洲综合在线第一页| 色综合咪咪久久| 亚洲婷婷综合色高清在线| 国产不卡在线播放| 久久精品视频免费观看| 国产综合久久久久久鬼色| 欧美一区二区三区小说| 秋霞国产午夜精品免费视频| 欧美日韩国产影片| 亚洲第一精品在线| 欧美日韩视频在线一区二区| 亚洲国产欧美一区二区三区丁香婷 | 国产激情一区二区三区四区| 久久精品无码一区二区三区| 国产精品亚洲专一区二区三区| 久久久精品欧美丰满| 国产精品69毛片高清亚洲| 国产婷婷色一区二区三区 | 91精品国产入口| 日韩成人dvd| 欧美一区二区成人| 麻豆精品精品国产自在97香蕉| 日韩精品一区二区三区在线观看| 久久99久久久久| 久久久久久久久99精品| 国产成人av电影在线| 中文字幕一区日韩精品欧美| 波多野结衣在线aⅴ中文字幕不卡| 国产精品第13页| 欧美亚洲国产一区二区三区| 天堂午夜影视日韩欧美一区二区| 欧美久久久影院| 狠狠色综合色综合网络| 亚洲国产高清在线观看视频| 91久久线看在观草草青青| 玉足女爽爽91| 欧美电影一区二区三区| 奇米四色…亚洲| 国产午夜精品久久久久久免费视 | 日韩欧美一二三| 国产69精品久久久久毛片 | 免费国产亚洲视频| 国产亚洲精久久久久久| 日本道免费精品一区二区三区| 亚洲图片欧美综合| 精品国产青草久久久久福利| 成人国产电影网| 亚洲成av人片| 久久精品一区二区三区av | 中文字幕欧美日本乱码一线二线| 91麻豆高清视频| 久久精品国产久精国产爱| 国产精品美女久久久久aⅴ| 日本高清成人免费播放| 麻豆成人av在线| 中文字幕日韩一区二区| 欧美一区二区在线不卡| 成人网在线播放| 青青国产91久久久久久| 国产精品久久网站| 日韩一区二区三区av| 91亚洲精华国产精华精华液| 日本aⅴ免费视频一区二区三区 | 日本一区二区三区在线不卡 | 精品国产免费人成电影在线观看四季 | 日韩精品一区二区三区视频在线观看| 成人午夜激情片| 美女免费视频一区二区| 悠悠色在线精品| 久久色在线视频| 欧美精品色综合| 色综合天天综合给合国产| 精品一区二区三区av| 亚洲一区二区成人在线观看| 欧美国产精品v| 欧美成人一区二区三区在线观看| 91久久香蕉国产日韩欧美9色| 国产激情一区二区三区桃花岛亚洲| 天天综合天天综合色|