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

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

?? arm_00_os_core.lst

?? 是實時操作系統uc/os的原代碼,寫了頭文件
?? LST
?? 第 1 頁 / 共 2 頁
字號:
  212   5              }
  213   4            }
  214   3           OSExitCritical();  //退出臨界段
  215   3           return Length;   //返回使用的內存數量
  216   3          }
  217   2      
  218   2         case GET_MEMORY_POOL_SIZE:  //如果是獲取緩沖池大小,
  219   2          {
  220   3           OSExitCritical();  //退出臨界段
  221   3           return OSSizeOfMemoryPool;  //返回緩沖池的字節數
  222   3          }
  223   2      
  224   2         case MEMORY_TEST:  //如果是內存檢測
  225   2          {
  226   3           j=0xFF;  //標志j為非0,即初始化成功
  227   3           prints("Memory testing. ",1);  //顯示信息
  228   3           for(i=0;i<OSSizeOfMemoryPool/4;i++)  //檢測整個內存緩沖池
  229   3            {
  230   4             OSMemoryPool[i]=0x55555555;   //寫入0x55555555
  231   4             if(OSMemoryPool[i]!=0x55555555)  //如果讀回的不是0x55555555
  232   4              {
  233   5               j=0;  //則測試失敗
  234   5              }
  235   4             OSMemoryPool[i]=0xAAAAAAAA;   //寫入0xAAAAAAAA
  236   4             if(OSMemoryPool[i]!=0xAAAAAAAA)  //如果讀回的不是0xAAAAAAAA
  237   4              {
  238   5               j=0;  //則測試失敗
  239   5              }
  240   4             OSMemoryPool[i]=0;   //寫入0
  241   4             if(OSMemoryPool[i]!=0)  //如果讀回的不是0
  242   4              {
  243   5               j=0;  //則測試失敗
  244   5              }
  245   4             if(i%(OSSizeOfMemoryPool/4/80)==0)  //顯示測試進度。共顯示80個>
  246   4              {
  247   5               prints(">",0);
  248   5              }
  249   4            }
  250   3           prints("",1);
  251   3           if(j)  //如果測試成功
  252   3            {
  253   4             prints("Memory test passed.",1);  //顯示成功
  254   4            }
  255   3           else  //否則,
  256   3            {
ARM COMPILER V2.50a,  ARM_00_OS_Core                                                       28/08/06  09:18:53  PAGE 5   

  257   4             prints("Memroy test failed.",1);  //顯示測試失敗
  258   4            }
  259   3           OSExitCritical();  //退出臨界段
  260   3           return j;  //返回是否成功
  261   3          }
  262   2         default: OSExitCritical();return 0;
  263   2        }
  264   1      }
  265          //////////////////////////////////End of function//////////////////////////////////////////////
  266          
  267          
  268          /**********************************************************************************************
  269          功能:進入臨界段。
  270          入口參數:無。
  271          返回:無。
  272          備注:該函數使用的是將中斷分配寄存器清0的方法來關中斷。比起用軟中斷,運行速度要快。
  273                如果要開某個中斷,則應該先調用一次該函數,然后再修改中斷備份變量CopyOfVICIntEnable
  274                的值,而不能直接修改VICIntEnable的值。否則會出錯。
  275          **********************************************************************************************/
  276          void OSEnterCritical(void)
  277          {
  278   1       if(OSEnCrCount==0)   //如果前面未關中斷
  279   1        {
  280   2      //   CopyOfVICIntEnable=VICIntEnable;  //則將VICIntEnable值保存到備份中/*可能有潛在的bug,所以將其刪除了*
             -/
  281   2         VICIntEnClr=0xFFFFFFFF;           //將VICIntEnable清除,禁止中斷
  282   2        }
  283   1       OSEnCrCount++;  //進入臨界段次數加1
  284   1      }
  285          //////////////////////////////////End of function//////////////////////////////////////////////
  286          
  287          
  288          /**********************************************************************************************
  289          功能:退出臨界段
  290          入口參數:無。
  291          返回:無。
  292          備注:無。
  293          **********************************************************************************************/
  294          void OSExitCritical(void)
  295          {
  296   1       if(OSEnCrCount>=1)  //如果進入臨界段的次數大于等于1次
  297   1        {
  298   2         OSEnCrCount--;    //則次數減1
  299   2         if(OSEnCrCount==0)  //如果減次數減到0,則要開中斷
  300   2          {
  301   3           VICIntEnable=CopyOfVICIntEnable;  //打開所需要開的中斷
  302   3          }
  303   2        }
  304   1      }
  305          //////////////////////////////////End of function//////////////////////////////////////////////
  306          
  307          
  308          /**********************************************************************************************
  309          功能:將pcb指向的任務從延時列表中刪除
  310          入口參數1:pcb。被指定的任務。
  311          返回:0:刪除失敗。非0:刪除成功。
  312          備注:該函數使用前,應先進入臨界段。
  313          **********************************************************************************************/
  314          uint32 DeleteFromDelayList(OSpcb *pcb)
  315          {
  316   1       if(pcb->Next==0){return 0;}   //如果被刪除的任務為表底,則不能刪除,返回刪除失敗
  317   1       if(pcb==OSDelayList)   //如果被刪除的pcb處于表頭
  318   1        {
  319   2         OSDelayList=pcb->Next;  //則延時表指向被刪除任務pcb的下一個
  320   2         OSDelayList->Prior=OSDelayList;  //延時表的前趨指向它本身
  321   2        }
ARM COMPILER V2.50a,  ARM_00_OS_Core                                                       28/08/06  09:18:53  PAGE 6   

  322   1       else  //如果被刪除的任務pcb處于中間,則
  323   1        {
  324   2         pcb->Prior->Next=pcb->Next;   //pcb的前趨的后趨,設置為pcb的后趨
  325   2         pcb->Next->Prior=pcb->Prior;  //pcb的后趨的前趨,設置為pcb的前趨
  326   2        }
  327   1       return (uint32)pcb;   //返回被刪除的任務pcb
  328   1      }
  329          //////////////////////////////////End of function//////////////////////////////////////////////
  330          
  331          
  332          /**********************************************************************************************
  333          功能:將pcb指向的任務從就緒態列表中刪除
  334          入口參數1:pcb。被指定的任務。
  335          返回:0:刪除失敗。非0:刪除成功。
  336          備注:該函數使用前,應先進入臨界段。
  337          **********************************************************************************************/
  338          uint32 DeleteFromReadyList(OSpcb * pcb)
  339          {
  340   1       if(pcb->Next==0)return 0;  //如果被刪除的任務為表底,則不能刪除,返回刪除失敗
  341   1       if(pcb==OSReadyList)       //如果被刪除的pcb處于表頭
  342   1        {
  343   2         OSReadyList=pcb->Next;   //則就緒表指向被刪除任務pcb的下一個
  344   2         OSReadyList->Prior=OSReadyList;  //就緒表的前趨指向它本身
  345   2        }
  346   1       else              //如果被刪除的任務pcb處于中間,則
  347   1        {
  348   2         pcb->Prior->Next=pcb->Next;   //pcb的前趨的后趨,設置為pcb的后趨
  349   2         pcb->Next->Prior=pcb->Prior;   //pcb的后趨的前趨,設置為pcb的前趨
  350   2        }
  351   1       return (uint32)pcb;   //返回被刪除的任務pcb
  352   1      }
  353          //////////////////////////////////End of function//////////////////////////////////////////////
  354          
  355          
  356          /**********************************************************************************************
  357          功能:將pcb指向的任務從掛起列表中刪除
  358          入口參數1:pcb。被指定的任務。
  359          返回:0:刪除失敗。非0:刪除成功。
  360          備注:該函數使用前,應先進入臨界段。
  361          **********************************************************************************************/
  362          uint32 DeleteFromSuspendList(OSpcb *pcb)
  363          {
  364   1       if(pcb->Next==0)return 0;  //如果被刪除的任務為表底,則不能刪除,返回刪除失敗
  365   1       if(pcb==OSSuspendList)       //如果被刪除的pcb處于表頭
  366   1        {
  367   2         OSSuspendList=pcb->Next;   //則掛起態表指向被刪除任務pcb的下一個
  368   2         OSSuspendList->Prior=OSSuspendList;  //掛起態表的前趨指向它本身
  369   2        }
  370   1       else              //如果被刪除的任務pcb處于中間,則
  371   1        {
  372   2         pcb->Prior->Next=pcb->Next;   //pcb的前趨的后趨,設置為pcb的后趨
  373   2         pcb->Next->Prior=pcb->Prior;   //pcb的后趨的前趨,設置為pcb的前趨
  374   2        }
  375   1       return (uint32)pcb;   //返回被刪除的任務pcb
  376   1      }
  377          //////////////////////////////////End of function//////////////////////////////////////////////
  378          
  379          
  380          /**********************************************************************************************
  381          功能:將pcb指向的任務插入到掛起列表中
  382          入口參數1:pcb。被指定的任務。
  383          返回:無。
  384          備注:該函數使用前,應先進入臨界段。
  385          **********************************************************************************************/
  386          void InsertToSuspendList(OSpcb * pcb)
  387          {
ARM COMPILER V2.50a,  ARM_00_OS_Core                                                       28/08/06  09:18:53  PAGE 7   

  388   1       pcb->Status=OSInSuspendStatus;  //指定任務的狀態設置為掛起狀態
  389   1       pcb->Next=OSSuspendList;           //指定任務的后趨指向掛起態列表的表頭
  390   1       OSSuspendList->Prior=pcb;          //掛起態任務列表的前趨指向指定任務pcb
  391   1       OSSuspendList=pcb;                 //掛起態列表的表頭設置為剛插入的指定任務
  392   1       OSSuspendList->Prior=OSSuspendList; //掛起態列表表頭的前趨指向它本身
  393   1      }
  394          //////////////////////////////////End of function//////////////////////////////////////////////
  395          
  396          
  397          /**********************************************************************************************
  398          功能:將pcb指向的任務插入到延時列表中
  399          入口參數1:pcb。被指定的任務。
  400          返回:無。
  401          備注:該函數使用前,應先進入臨界段。
  402          **********************************************************************************************/
  403          void InsertToDelayList(OSpcb * pcb)
  404          {
  405   1       pcb->Status=OSInDelayStatus;   //指定任務的狀態設置為延時狀態
  406   1       pcb->Next=OSDelayList;         //指定任務的后趨指向延時態列表的表頭
  407   1       OSDelayList->Prior=pcb;        //延時態任務列表的前趨指向指定任務pcb
  408   1       OSDelayList=pcb;               //延時態列表的表頭設置為剛插入的指定任務
  409   1       OSDelayList->Prior=OSDelayList; //延時態列表表頭的前趨指向它本身
  410   1      }
  411          //////////////////////////////////End of function//////////////////////////////////////////////
  412          
  413          
  414          /**********************************************************************************************
  415          功能:將pcb指向的任務插入到就緒表中
  416          入口參數1:pcb。被指定的任務。
  417          返回:無。
  418          備注:該函數使用前,應先進入臨界段。
  419          **********************************************************************************************/
  420          void InsertToReadyList(OSpcb *pcb)
  421          {
  422   1       OSpcb * TempPcb;   //用來查找就緒表,確定該插入到何處
  423   1       
  424   1       pcb->Status=OSInReadyStatus;     //指定任務的狀態設置為就緒態
  425   1       
  426   1       TempPcb=OSReadyList;   //設置為就緒表表頭
  427   1      
  428   1       do
  429   1        {
  430   2         if((pcb->Priority)<=(TempPcb->Priority))   //如果要插入的任務優先級高于或者等于被查找到的任務,則將其

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜在线一二页| 99精品欧美一区| 国产在线乱码一区二区三区| 亚洲天堂2016| 国产精品久久久久婷婷二区次| 久久久综合九色合综国产精品| 日韩欧美国产麻豆| 欧美一级理论片| 欧美成人精精品一区二区频| 日韩三级免费观看| 精品久久国产字幕高潮| 精品99一区二区| 国产无人区一区二区三区| 久久一日本道色综合| www久久精品| 国产欧美精品一区aⅴ影院| 国产欧美一区二区精品婷婷| 国产免费成人在线视频| 国产精品久久久久国产精品日日| 国产婷婷色一区二区三区| 国产精品萝li| 一区二区三区在线不卡| 午夜精品久久久久久久久久久| 日韩精品电影在线| 国产精品一区一区三区| 成人免费精品视频| 在线视频综合导航| 日韩欧美在线综合网| 国产亚洲女人久久久久毛片| 亚洲人被黑人高潮完整版| 亚洲精品菠萝久久久久久久| 日韩电影在线一区二区| 一本久道中文字幕精品亚洲嫩 | 在线观看一区二区精品视频| 欧美日韩高清一区二区三区| 欧美成人性福生活免费看| 国产精品视频第一区| 亚洲国产一区二区视频| 狠狠v欧美v日韩v亚洲ⅴ| 99久久精品99国产精品| 91精品国产综合久久福利软件| 日韩欧美激情四射| 亚洲日本韩国一区| 国产原创一区二区三区| 欧美色视频一区| 久久久精品天堂| 三级久久三级久久久| 不卡一区二区中文字幕| 日韩一区二区在线观看| 一区二区三区在线视频观看 | 99精品视频免费在线观看| 8x8x8国产精品| 国产精品成人在线观看| 久久精品噜噜噜成人av农村| 在线免费不卡视频| 国产精品无遮挡| 日本美女一区二区| 在线免费av一区| 亚洲欧洲精品一区二区精品久久久| 粉嫩av一区二区三区| 欧美区一区二区三区| 国产精品成人一区二区三区夜夜夜| 久久精品理论片| 91麻豆精品国产综合久久久久久| 国产精品第一页第二页第三页| 久久国产免费看| 6080日韩午夜伦伦午夜伦| 一区二区三区日韩精品| aaa欧美大片| 国产欧美一区二区精品性| 激情都市一区二区| 91精品国产日韩91久久久久久| 自拍偷拍亚洲欧美日韩| av午夜一区麻豆| 中文字幕第一区二区| 国产麻豆日韩欧美久久| 精品国产免费人成在线观看| 免费观看日韩av| 日韩三级高清在线| 国产最新精品免费| 精品国产凹凸成av人导航| 久久精品国产精品亚洲综合| 日韩一卡二卡三卡四卡| 麻豆国产精品一区二区三区 | 国产一区二区导航在线播放| 日韩精品在线网站| 国模一区二区三区白浆| 26uuu国产电影一区二区| 国内精品久久久久影院薰衣草| 精品国产成人在线影院| 国产一区二区免费视频| 欧美国产日韩在线观看| 成人av免费在线| 亚洲一区二区在线播放相泽| 欧美女孩性生活视频| 免费观看成人鲁鲁鲁鲁鲁视频| 日韩欧美国产小视频| 国产成人在线色| 亚洲欧美视频在线观看视频| 在线成人免费观看| 国产做a爰片久久毛片| 国产精品毛片a∨一区二区三区| 91免费观看国产| 亚洲国产日日夜夜| 日韩一区二区三区精品视频 | 国产精品久久久久国产精品日日| 9i在线看片成人免费| 亚洲一区二区三区美女| 日韩一区二区三区电影| 成人av综合一区| 亚洲一卡二卡三卡四卡无卡久久| 日韩午夜激情av| av中文字幕在线不卡| 亚洲国产一区二区三区| 久久久久久久一区| 在线观看亚洲成人| 国产做a爰片久久毛片| 亚洲激情五月婷婷| 精品国产髙清在线看国产毛片| 99热精品国产| 精品一区二区精品| 亚洲欧美日韩国产综合在线| 日韩欧美一卡二卡| 欧洲中文字幕精品| 成人午夜av影视| 日本不卡一二三| 樱桃视频在线观看一区| 久久中文娱乐网| 欧美日韩成人综合| 3751色影院一区二区三区| fc2成人免费人成在线观看播放| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲天堂成人在线观看| 精品国产伦一区二区三区免费| 欧美视频一区二区三区| 国产99精品视频| 久久精品国产亚洲一区二区三区 | 欧美日韩综合一区| 成人天堂资源www在线| 精品影院一区二区久久久| 亚洲mv大片欧洲mv大片精品| 国产精品视频第一区| 久久蜜桃av一区精品变态类天堂| 欧美一三区三区四区免费在线看| 99国产精品久| av色综合久久天堂av综合| 国产成人综合网| 国产久卡久卡久卡久卡视频精品| 美腿丝袜在线亚洲一区| 天天综合天天综合色| 一区二区三区四区乱视频| 中文字幕不卡在线观看| 国产精品嫩草影院av蜜臀| 国产亚洲欧洲997久久综合 | 亚洲一区电影777| 亚洲美女屁股眼交3| 亚洲少妇30p| 亚洲欧美另类小说视频| 亚洲男人都懂的| 一区二区三区四区不卡在线| 综合激情成人伊人| 亚洲精品视频免费看| 一区二区免费视频| 亚洲电影在线免费观看| 亚洲va国产天堂va久久en| 亚洲va国产va欧美va观看| 日日摸夜夜添夜夜添亚洲女人| 亚洲观看高清完整版在线观看| 亚洲成人中文在线| 日本中文在线一区| 久久不见久久见免费视频1| 99国产欧美久久久精品| 在线免费观看日本一区| 欧美日韩在线播放三区四区| 91精品国产欧美一区二区成人| 欧美精品一区二区三| 国产精品福利电影一区二区三区四区| 亚洲另类春色国产| 日韩av电影天堂| 风间由美一区二区三区在线观看 | 国产乱国产乱300精品| 99久久精品国产网站| 欧亚洲嫩模精品一区三区| 欧美一区二区国产| 国产精品女主播在线观看| 洋洋成人永久网站入口| 九九视频精品免费| 91免费视频网址| 日韩欧美一区电影| 亚洲欧美激情插| 久久精品免费观看| 一本久道久久综合中文字幕| 欧美一区二区大片| 国产亚洲污的网站| 亚洲成人免费影院| 免费人成在线不卡| 在线精品视频一区二区三四| 欧美一区二区视频网站| 亚洲精品欧美专区| 日韩二区在线观看|