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

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

?? rtx430.c

?? 在msp430上面寫的一個小的rtos
?? C
?? 第 1 頁 / 共 2 頁
字號:
    
    return(0xff);
}


unsigned char os_clear_signal(unsigned char task_no)
{
   unsigned char *p;
   
   if (task_no>=RTX_MAXTASKN)return(0xff);
   
   _DINT();
   
   p=&STATE[task_no].st;
   *p&=SIG_EVENT;
   
   _EINT();
   
   return(0);
}

unsigned char os_send_signal(unsigned char task_no)
{
   unsigned char *p;
   
   clear_watchdog();

   if (task_no>=RTX_MAXTASKN)  return (0xff);

   _DINT();
   
   p=&STATE[task_no].st;

   if(*p&K_ACTIVE)
     {
        if (*p&K_SIG)*p|=K_READY;
     }
   *p|=SIG_EVENT;

   _EINT();

   return(0);
}


unsigned char isr_send_signal(unsigned char task_no)
{
   unsigned char *p;
   
   clear_watchdog();

   if (task_no>=RTX_MAXTASKN)  return (0xff);

   _DINT();
   
   p=&STATE[task_no].st;

   if(*p&K_ACTIVE)
     {
        if (*p&K_SIG)*p|=K_READY;
     }
   *p|=SIG_EVENT;

   _EINT();

   return(0);
}


unsigned char os_delete_task(unsigned char task_no)
{
    unsigned int *j,*p1,*p2;

    clear_watchdog();
    
    if(task_no>=RTX_MAXTASKN)return(0xff);

    if(!(STATE[task_no].st & K_ACTIVE))return(0xff);

    _DINT();
    STATE[task_no].st &= ~(K_ACTIVE | K_READY | K_SIG | K_TMO | K_ROBIN);
    _EINT();

  

    if(TASK_Current==task_no)
      {
         RTX_SP=STKP[task_no];
         putsp(RTX_SP);
         task_switch();
      }
    
    if(TASK_Current<task_no)
      {
         p1=(unsigned int *)(task_no==RTX_MAXTASKN ? RTX_RAMBOTTOM : STKP[task_no+1]);
         j=(unsigned int *)STKP[task_no];
         
         do{
              p2=(unsigned int *)(STKP[task_no]);     
              while(p1!=p2)
              {
                 *p1=*j;
                 p1++;
                 j++;
              }
              STKP[task_no]=(unsigned int)p1;
              task_no--;
           }while (TASK_Current!=task_no);
         return (0);
      }

    if(TASK_Current>task_no)
      {
         p1=(unsigned int *)(STKP[task_no+1]);
         j=(unsigned int *)(STKP[task_no]);
         do{
              task_no++;
              STKP[task_no]=(unsigned int)(j);
              p2=(unsigned int *)(task_no==TASK_Current ? RTX_SP : STKP[task_no+1]);
              while(p1!=p2)
              {
                 j++;
                 p1++;
                 *j=*p1;
              }
           }while(TASK_Current!=task_no);
         RTX_SP=(unsigned int)j;
         putsp(RTX_SP);
         return (0);
      }
      
   return(0xff);   
}

unsigned char os_create_task(unsigned int proc_name, unsigned char task_no)
{
   unsigned int i;
   unsigned int *j,*p1,*p2;
  
   clear_watchdog();
   
   if(task_no>=RTX_MAXTASKN)return(0xff);

   if(STATE[task_no].st&K_ACTIVE)return(0xff);

   STATE[task_no].st|=K_ACTIVE+K_READY;

   i=TASK_Current;
   
   RTX_SP=getsp();
   
   while(i<task_no)
   {
      i++;
      p1=(unsigned int *)STKP[i];
      p2=(unsigned int *)(i==RTX_MAXTASKN ? RTX_RAMBOTTOM : STKP[i+1]);
      p2--;
      while(p1!=p2)
      {
	 j=p1+5;
	 *j=*p1;
         p1--;
      }
      STKP[i]+=10;
   }
   
   if(i>task_no)
     {
        RTX_SP-=10;
        putsp(RTX_SP);
     }   

   while(i>task_no)
   {
      p1=(unsigned int *)(i==TASK_Current ? RTX_SP : STKP[i+1]);
      p2=(unsigned int *)STKP[i];
      STKP[i]-=10;
      while(p1!=p2)
      {
         j=p1+5;
         *p1=*j;
         p1++;
      }
      i--;
   }

   
   j=(unsigned int *)(STKP[task_no]-2);
   *j=proc_name;
   
   j++;
   *j=0;
   j++;
   *j=0;
   j++;
   *j=0;
   j++;
   *j=0;
    
   return(0);
}


unsigned char os_system_start(void)  /* 操作系統初始化 */
{
     unsigned char i;
     unsigned int *j,*p1,*p2;

     _DINT();
    
     clear_watchdog();
     
     RTX_TS&=~RTX_TS_REQ;

     RTX_TS&=~RTX_TS_DELAY;

     TASK_Current=0;

     i=TASK_Current;

     while(1)
     {
        if ((++i)==(RTX_MAXTASKN))i=0;
        if (STATE[i].st&K_READY)break;
     }

     RTX_SP=getsp();
     RTX_SP+=8;
     putsp(RTX_SP);
     j=(unsigned int *)RTX_SP;
     
     while(TASK_Current<i)
     {
        TASK_Current++;
        
        p1=(unsigned int *)STKP[TASK_Current];
        p2=(unsigned int *)(TASK_Current==RTX_MAXTASKN ? RTX_RAMBOTTOM : STKP[TASK_Current+1]);

        STKP[TASK_Current]=RTX_SP;
        
        while(p1!=p2)
        {
           RTX_SP-=2;
           putsp(RTX_SP);
           j--;
           p1--;
           *j=*p1;
        }
     }

     while(TASK_Current>i)
     {
        p1=(unsigned int *)(TASK_Current==RTX_MAXTASKN ? RTX_SP : STKP[TASK_Current+1]);
        p2=(unsigned int *)STKP[TASK_Current];
        
        while(j!=p2)
        {
           *p1=*j;
           p1++;
           j++;
           RTX_SP+=2;
           putsp(RTX_SP);
        }
        STKP[TASK_Current] = (unsigned int)p1;

        TASK_Current--;
      }

      RTX_RobinTime=RTX_TIMESHARING;
      
      TACTL=TASSEL1+TACLR;     //SMCL , CLREAR TAR 
      CCR0=RTX_CLOCK;
      CCTL0|=CCIE;
      TACTL|=MC1;
      
      _EINT();

      return(0x00);
}


void os_system_init(void)  /* 操作系統初始化 */
{
     unsigned char   i;

     _DINT();
     
     
     clear_watchdog();
         
     for(i=0;i<RTX_MAXTASKN;i++)
        {
	   STKP[i]=RTX_RAMBOTTOM;
	   STATE[i].st=0;
	}
     
     STKP[0]=getsp();
     
     TASK_Current=0;
}

void clear_watchdog(void)
{
     if(!(WDTCTL&WDTTMSEL))WDTCTL=WDT_ARST_250;      /* WDT 250 MS */
}

/*******************************************************************/

int task_test1(void)      /* 測試任務1 */
{
     char i;

     while(1)
     {
        i++;
        i++;
        i++;
        i++;
        //os_wait(K_SIG,0);
     };
     
     return(0x1234);
}

void task_test2(void)      /* 測試任務2 */
{
     char i;

     while(1)
     {
        i++;
        i++;
        i++;
        i++;
        //os_delete_task(2);
     };
}

void task_test3(void)      /* 測試任務3 */
{
     char i;

     while(1)
     {
        i++;
        i++;
        i++;
        i++;
     };
}


void main(void)
{
     os_system_init();                             /* 系統初始化 */
     os_create_task((unsigned int)task_test1,1);   /* 任務創建   */
     os_create_task((unsigned int)task_test2,2);   /* 任務創建   */
     os_create_task((unsigned int)task_test3,3);   /* 任務創建   */
     os_system_start();                            /* 系統運行   */
}   










?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产又粗又猛又爽又黄91精品| 美日韩一区二区三区| 欧美成人性福生活免费看| 在线视频一区二区三| 色综合色综合色综合色综合色综合 | av不卡一区二区三区| 成人午夜激情视频| 色国产综合视频| 精品视频免费在线| 在线不卡中文字幕播放| 日韩视频一区在线观看| 日韩一区二区三区视频| 日韩你懂的电影在线观看| 日韩欧美国产一区在线观看| 亚洲精品在线三区| 日本一区免费视频| 亚洲免费观看高清完整版在线观看 | 国产精品 欧美精品| 成人国产一区二区三区精品| 色屁屁一区二区| 欧美性xxxxxx少妇| 精品福利av导航| 国产女主播在线一区二区| 最近日韩中文字幕| 午夜精品一区在线观看| 国产一区美女在线| 99re8在线精品视频免费播放| 欧洲精品一区二区| 精品国产凹凸成av人网站| 中文成人av在线| 五月天激情小说综合| 激情伊人五月天久久综合| www.欧美日韩| 日韩久久精品一区| 综合激情成人伊人| 狠狠色丁香婷婷综合| 91蜜桃视频在线| 日韩精品在线看片z| 亚洲欧美一区二区三区极速播放| 欧美aaaaaa午夜精品| 91色porny在线视频| 精品国产欧美一区二区| 亚洲宅男天堂在线观看无病毒| 久久疯狂做爰流白浆xx| 91福利国产精品| 日本一区二区在线不卡| 蜜桃在线一区二区三区| 欧洲国产伦久久久久久久| 久久婷婷国产综合精品青草| 亚洲激情六月丁香| 国产成人精品免费一区二区| 69久久夜色精品国产69蝌蚪网 | 91小视频在线免费看| 欧美大片一区二区| 午夜精品久久久久久久久久| 一本到不卡精品视频在线观看 | 国产成人激情av| 日韩亚洲欧美在线观看| 一区二区在线观看视频在线观看| 国产乱码精品1区2区3区| 欧美一区二区三区公司| 亚洲午夜免费视频| 99麻豆久久久国产精品免费优播| 久久免费看少妇高潮| 久久国产精品无码网站| 91精品婷婷国产综合久久竹菊| 亚洲靠逼com| 一本色道久久综合精品竹菊| 中文字幕一区二区三区蜜月 | 欧美一区二区黄| 日韩精品视频网站| 欧美高清视频www夜色资源网| 一区二区三区国产精华| 日本精品一区二区三区四区的功能| 中文字幕乱码亚洲精品一区| 福利91精品一区二区三区| 国产调教视频一区| 丁香婷婷综合五月| 国产精品二三区| 一本高清dvd不卡在线观看| √…a在线天堂一区| 99久久99久久精品免费看蜜桃| 中文欧美字幕免费| 色综合久久久久网| 伊人开心综合网| 88在线观看91蜜桃国自产| 男人的j进女人的j一区| 日韩精品一区二区三区三区免费 | 国产视频一区二区三区在线观看| 国产高清视频一区| 亚洲免费视频中文字幕| 欧洲在线/亚洲| 蜜臀久久99精品久久久画质超高清| 日韩欧美第一区| 国产乱对白刺激视频不卡| 国产精品嫩草影院com| 在线欧美日韩国产| 美国av一区二区| 中文一区在线播放| 欧美性猛交xxxxxxxx| 蜜桃一区二区三区四区| 国产精品视频一二三| 在线免费不卡电影| 激情图片小说一区| 一卡二卡欧美日韩| 26uuu国产日韩综合| 91啦中文在线观看| 免费看日韩精品| 国产精品久久久久久久岛一牛影视 | 色呦呦国产精品| 日本不卡一二三区黄网| 国产无一区二区| 91精品国产综合久久久久久久久久 | 2014亚洲片线观看视频免费| 一本一道久久a久久精品| 麻豆成人在线观看| 亚洲免费三区一区二区| 久久久久久毛片| 欧美日韩国产美| 不卡一卡二卡三乱码免费网站| 午夜国产不卡在线观看视频| 久久一留热品黄| 欧美精品丝袜中出| 91浏览器打开| 成人激情视频网站| 狠狠色综合播放一区二区| 亚洲高清在线视频| 中文字幕免费不卡| 26uuu国产一区二区三区| 欧美亚洲一区二区三区四区| 国产成人av一区二区三区在线 | 成人高清伦理免费影院在线观看| 午夜精品视频一区| 亚洲精品中文在线影院| 中文字幕精品在线不卡| 精品国产91九色蝌蚪| 欧美伦理电影网| 欧美少妇性性性| 色综合久久中文综合久久牛| 波多野结衣欧美| 高清国产一区二区| 国产另类ts人妖一区二区| 蜜臀国产一区二区三区在线播放| 亚洲成人免费看| 亚洲午夜一区二区三区| 夜夜精品视频一区二区| 亚洲精品自拍动漫在线| 一区二区三区在线视频观看| 自拍偷拍亚洲欧美日韩| 亚洲视频在线一区| 亚洲欧洲精品一区二区三区| 国产欧美日韩麻豆91| 国产精品日韩精品欧美在线| 日本一区二区三区免费乱视频 | 久久久综合激的五月天| 欧美一区二区视频在线观看| 6080亚洲精品一区二区| 欧美一区二区三区免费| 精品剧情v国产在线观看在线| 日韩精品一区二区三区中文不卡 | 欧美日韩免费观看一区二区三区| av中文一区二区三区| av在线不卡电影| 色菇凉天天综合网| 欧美日韩中文字幕一区二区| 欧美日韩一区二区三区四区| 欧美日韩一区二区电影| 日韩欧美美女一区二区三区| 26uuu精品一区二区| 中文字幕乱码久久午夜不卡| 伊人开心综合网| 男女男精品视频| 国产99久久久国产精品| 91麻豆123| 日韩一区二区在线看| 国产欧美综合色| 一区二区不卡在线视频 午夜欧美不卡在| 午夜精品福利视频网站| 国产精品自产自拍| 色婷婷一区二区三区四区| 欧美久久久久久蜜桃| 精品福利av导航| 亚洲免费看黄网站| 久久精品国产亚洲a| 成人av在线播放网站| 在线不卡中文字幕播放| 欧美激情在线观看视频免费| 亚洲国产aⅴ成人精品无吗| 国产一区二区不卡| 在线日韩av片| 久久精品无码一区二区三区| 亚洲一区二区欧美| 国产夫妻精品视频| 欧美丰满少妇xxxxx高潮对白| 欧美国产精品v| 首页国产丝袜综合| 91首页免费视频| 久久久www成人免费无遮挡大片| 亚洲激情男女视频| 高清不卡在线观看|