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

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

?? arm_00_ostaskmanager.lst

?? 一個基于arm的
?? LST
字號:
ARM COMPILER V2.50a,  ARM_00_OSTaskManager                                                 16/05/06  14:55:45  PAGE 1   


ARM COMPILER V2.50a, COMPILATION OF MODULE ARM_00_OSTaskManager
OBJECT MODULE PLACED IN ARM_00_OSTaskManager.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe ARM_00_OSTaskManager.c THUMB WARNINGLEVEL(3) BROWSE DEBUG TABS(4) 

stmt  level    source

    1          /**********************************************************************************************
    2            ARM_00_OSTaskManager.c file
    3             
    4            作者:Computer-lov
    5            建立日期:2006-5-13
    6            修改日期:2006-5-15
    7            版本:V1.0
    8            版權所有,盜版必究。
    9            任何技術問題可到我的博客上留言:    http://computer00.21ic.org
   10            Copyright(C) Computer-lov 2006-2016
   11            All rights reserved
   12          **********************************************************************************************/
   13          
   14          
   15          #include <ADuC7026.H>
   16          #include "my_type.h"
   17          
   18          #include "ARM_00_OS_TaskSwitch.H"
   19          #include "ARM_00_OS_Core.H"
   20          #include "UART.H"
   21          #include "KEYS.H"
   22          #include "Task.h"
   23          #include "ADC.H"
   24          
   25          /**********************************************************************************************
   26          功能:顯示任務的PID號。
   27          入口參數1:pcb。要顯示的任務的進程控制塊地址。
   28          返回:無。
   29          **********************************************************************************************/
   30          void DisplayPID(OSpcb * pcb)
   31          {
   32   1       print_uint32(pcb->PID);  //顯示任務ID號(PID)
   33   1       send_a_byte(' ');
   34   1      }
   35          //////////////////////////////////End of function//////////////////////////////////////////////
   36          
   37          
   38          /**********************************************************************************************
   39          功能:顯示任務的CPU使用率。
   40          入口參數1:pcb。要顯示的任務的進程控制塊地址。
   41          返回:無。
   42          **********************************************************************************************/
   43          void DisplayCPU(OSpcb * pcb)
   44          {
   45   1       uint32 CpuUsedRatio;
   46   1      
   47   1       CpuUsedRatio=((pcb->RunTimeInThisRefreshPeriod)*100+TotalTime/2)/TotalTime;  //計算CPU使用率。加TotalTim
             -e/2是為了四舍無入
   48   1       pcb->TotalRunTime+=pcb->RunTimeInThisRefreshPeriod;  //累加任務的CPU使用總時間
   49   1       pcb->RunTimeInThisRefreshPeriod=0;   //清本次統計的時間
   50   1       if(CpuUsedRatio>=100)  //如果統計的結果大于100
   51   1        {
   52   2         CpuUsedRatio=99;  //結果為99
   53   2        }
   54   1       send_a_byte((CpuUsedRatio/10)+'0');  //顯示結果
   55   1       send_a_byte((CpuUsedRatio%10)+'0');
   56   1       send_a_byte('%');
   57   1       send_a_byte(' ');
   58   1       send_a_byte(' ');
ARM COMPILER V2.50a,  ARM_00_OSTaskManager                                                 16/05/06  14:55:45  PAGE 2   

   59   1      }
   60          //////////////////////////////////End of function//////////////////////////////////////////////
   61          
   62          
   63          /**********************************************************************************************
   64          功能:顯示任務使用CPU的總時間。
   65          入口參數1:pcb。要顯示的任務的進程控制塊地址。
   66          返回:無。
   67          **********************************************************************************************/
   68          void DisplayCPUTime(OSpcb * pcb)
   69          {
   70   1       uint32 Time;   //用來保存時間
   71   1       uint8 H,M,S;   //用來保存時,分,秒
   72   1       
   73   1       Time=(uint32)((pcb->TotalRunTime)/((MaxOfTimer0+1)*100));  //計算總時間。結果為多少秒。
   74   1       S=Time%60;   //計算秒
   75   1       Time/=60;
   76   1       M=Time%(60);  //計算分
   77   1       Time/=60;
   78   1       H=Time%(24);  //計算時
   79   1       
   80   1       send_a_byte((H/10)+'0'); //顯示時
   81   1       send_a_byte((H%10)+'0');
   82   1       send_a_byte(':');
   83   1       send_a_byte((M/10)+'0'); //顯示分
   84   1       send_a_byte((M%10)+'0');
   85   1       send_a_byte(':');
   86   1       send_a_byte((S/10)+'0'); //顯示秒
   87   1       send_a_byte((S%10)+'0');
   88   1       send_a_byte(' ');
   89   1       send_a_byte(' ');
   90   1      }
   91          //////////////////////////////////End of function//////////////////////////////////////////////
   92          
   93          
   94          /**********************************************************************************************
   95          功能:顯示內存使用量
   96          入口參數1:pcb。要顯示的任務的進程控制塊地址。
   97          返回:無。
   98          **********************************************************************************************/
   99          void DispalyMemroyUsed(OSpcb * pcb)
  100          {
  101   1       print_uint32(pcb->StackLength);   //顯示內存使用量
  102   1       send_a_byte('B');               //顯示單位
  103   1       send_a_byte(' ');
  104   1       send_a_byte(' ');
  105   1      }
  106          //////////////////////////////////End of function//////////////////////////////////////////////
  107          
  108          
  109          /**********************************************************************************************
  110          功能:顯示任務所處的狀態。
  111          入口參數1:pcb。要顯示的任務的進程控制塊地址。
  112          返回:無。
  113          **********************************************************************************************/
  114          void DispalyStatus(OSpcb * pcb)
  115          {
  116   1       switch(pcb->Status)    //根據狀態來顯示
  117   1        {
  118   2         case OSInReadyStatus:      prints("Ready  ",0);break;  //就緒態
  119   2         case OSInDelayStatus:      prints("Delay  ",0);break;  //延時態
  120   2         case OSInSuspendStatus:    prints("Suspend",0);break;  //掛起態
  121   2         default:break;
  122   2        }
  123   1      }
  124          //////////////////////////////////End of function//////////////////////////////////////////////
ARM COMPILER V2.50a,  ARM_00_OSTaskManager                                                 16/05/06  14:55:45  PAGE 3   

  125          
  126          
  127          
  128          #define REF_VOL  2.5
  129          
  130          //////////////////////////////顯示內核電壓////////////////////////////////////
  131          void DisplayCoreVoltage(void)
  132          {
  133   1       uint16 value;
  134   1       uint32 result;
  135   1       uint8 s_result[10];
  136   1      
  137   1       prints("Core voltage: ",0);
  138   1       value=2*read_ADC(0x13);      //通道號為0x13的電壓為1/2電源電壓
  139   1       result=REF_VOL*10000;        //換算成電壓,結果為多少mV的10倍
  140   1       result=result*value/4095;
  141   1       s_result[9]=0;               //將結果轉換成字符串
  142   1       s_result[8]=' ';
  143   1       s_result[7]='V';
  144   1       s_result[6]='m';
  145   1       s_result[5]='0'+result%10;
  146   1       result/=10;
  147   1       s_result[4]='.';
  148   1       s_result[3]='0'+result%10;
  149   1       result/=10;
  150   1       s_result[2]='0'+result%10;
  151   1       result/=10;
  152   1       s_result[1]='0'+result%10;
  153   1       result/=10;
  154   1       s_result[0]='0'+result%10;
  155   1       prints("    ",0);
  156   1       prints(s_result,0);         //顯示電壓
  157   1       prints("  ",0);
  158   1      }
  159          //////////////////////////////////////////////////////////////////////////////
  160          
  161          //////////////////////////////////顯示內核溫度////////////////////////////////
  162          void DisplayCoreTemperature(void)
  163          {
  164   1       uint16 value;
  165   1       sint32 result;
  166   1       uint8 s_result[10];
  167   1      
  168   1       prints("Core temperature: ",0);
  169   1       value=read_ADC(0x10);         //通道號為0x10的是溫度傳感器電壓
  170   1       result=REF_VOL*10000;         //換算成電壓,結果為多少mV的10倍
  171   1       result=result*value/4095;
  172   1       result=((7800-result)*10/13)+250;   //溫度是25℃時,輸出電壓為780mV,每升高1℃,輸出電壓降低1.3mV
  173   1                                           //計算結果為多少度的10倍
  174   1       if(result<0)                  //如果溫度小于0度
  175   1        {
  176   2         s_result[0]='-';         //顯示負號
  177   2         result*=-1;              //將結果換成正的
  178   2        }
  179   1       else
  180   1        {
  181   2         s_result[0]=' ';        //不顯示負號
  182   2        }
  183   1       s_result[6]=0;            //將溫度值轉換成字符串,供顯示用
  184   1       s_result[5]='0'+result%10;
  185   1       result/=10;
  186   1       s_result[4]='.';
  187   1       s_result[3]='0'+result%10;
  188   1       result/=10;
  189   1       s_result[2]='0'+result%10;
  190   1       result/=10;
ARM COMPILER V2.50a,  ARM_00_OSTaskManager                                                 16/05/06  14:55:45  PAGE 4   

  191   1       s_result[1]='0'+result%10;
  192   1       prints(s_result,0);        //顯示溫度結果
  193   1       prints("℃",1);
  194   1      }
  195          //////////////////////////////////////////////////////////////////////////////
  196          
  197          
  198          /**********************************************************************************************
  199          功能:任務管理器。
  200          入口參數:無。
  201          返回:無。
  202          備注:優先級被設置為1,處于高的優先級。
  203          **********************************************************************************************/
  204          void OSTaskManager(void)
  205          {
  206   1       OSpcb * pcb;    //
  207   1       uint32 TempTime;    //TempTime用來保存 在顯示任務管理器信息所花費的時間
  208   1       uint32 DelayCount=RefreshPeriod;   //延時多少個時鐘節拍刷新一次任務管理器
  209   1       uint32 * p;     //
  210   1       uint32 i;       //
  211   1       uint32 CpuUsedRatio;   //保存CPU使用率
  212   1       uint32 nBytes;         //保存申請內存的字節數
  213   1       
  214   1       uint32 PrinterDeviceAddr;   //打印機設備的入口地址
  215   1       
  216   1       PrinterDeviceAddr=OSGetDeviceAddr(OS_PRINTER_DEVICE_ID);  //獲取打印機設備的入口地址
  217   1       OSRequestDevice(PrinterDeviceAddr,0);   //申請使用打印機
  218   1       
  219   1       prints("",1);                   //顯示任務啟動
  220   1       prints(OSCurrentPcb->Title,0);
  221   1       prints(" Start.",1);
  222   1       
  223   1       OSFreeDevice(PrinterDeviceAddr);   //釋放打印機
  224   1       
  225   1       ADC_init();   //ADC初始化。用來檢測內核電壓以及溫度
  226   1      
  227   1       while(1)
  228   1        {
  229   2         OSTaskDelay(DelayCount);    //延時DelayCount個時鐘節拍
  230   2         
  231   2         pcb=OSCurrentPcb;       //當前運行的任務。即任務管理器本身
  232   2         TempTime=pcb->RunTimeInThisRefreshPeriod;   //保存這時的時間
  233   2         
  234   2         OSRequestDevice(PrinterDeviceAddr,0);   //申請使用打印機
  235   2         
  236   2         prints("",1);       //換行
  237   2         prints("",1);
  238   2         prints("TaskName              PID  CPU   CPUTime    MemoryUsed   Status",1);   //顯示表頭
  239   2         prints("---------------------------------------------------------------",1);
  240   2         
  241   2         nBytes=OSSizePerBlock*(((TaskAmount+1)*sizeof(p)+OSSizePerBlock-1)/OSSizePerBlock);  //計算需要申請多

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
5858s免费视频成人| 7799精品视频| 国产精品一区二区在线看| 蜜臀va亚洲va欧美va天堂 | 亚洲自拍偷拍麻豆| 亚洲精选在线视频| 亚洲一区二区三区国产| 亚洲一区二区3| 日本少妇一区二区| 久久精品国产秦先生| 美女久久久精品| 国产一二三精品| 成人看片黄a免费看在线| 97精品国产露脸对白| 在线国产亚洲欧美| 欧美伦理影视网| 精品久久久久久久久久久久久久久久久| 日韩免费福利电影在线观看| 精品电影一区二区三区| 国产欧美日本一区视频| 亚洲激情图片一区| 秋霞电影网一区二区| 国产一区999| 91女厕偷拍女厕偷拍高清| 欧美久久久久中文字幕| 精品福利二区三区| 综合久久一区二区三区| 日韩有码一区二区三区| 福利视频网站一区二区三区| 色综合久久综合中文综合网| 欧美精品三级在线观看| 久久久久久久久久美女| 亚洲va欧美va人人爽| 国产电影精品久久禁18| 欧美在线观看你懂的| 26uuu亚洲综合色| 亚洲精品日产精品乱码不卡| 精品一区二区三区欧美| 91碰在线视频| 国产日韩综合av| 五月天精品一区二区三区| 成人美女在线观看| 日韩视频一区二区| 亚洲激情图片一区| 国产高清不卡一区| 在线综合视频播放| 一区二区三区四区激情| 国产成人午夜电影网| 91精品国产丝袜白色高跟鞋| 亚洲柠檬福利资源导航| 国内久久精品视频| 欧美精品久久99| 亚洲激情图片qvod| av亚洲精华国产精华精华| 26uuu色噜噜精品一区| 五月天欧美精品| 欧美性淫爽ww久久久久无| 中文字幕一区二区三区精华液 | 国产精品全国免费观看高清 | 久久99精品国产麻豆婷婷洗澡| 91网页版在线| 亚洲天堂成人在线观看| 国内久久精品视频| 亚洲精品一区二区在线观看| 首页国产欧美日韩丝袜| 欧美日本一区二区在线观看| 国产精品久久久一本精品 | 国产精品一区二区视频| 欧美久久婷婷综合色| 天天射综合影视| 欧美日韩成人在线| 亚洲一区二区三区免费视频| 欧美性色欧美a在线播放| 亚洲视频网在线直播| 91色.com| 亚洲一二三四久久| 欧美日韩一区高清| 亚洲成人综合视频| 欧美高清激情brazzers| 尤物在线观看一区| 欧美日韩国产123区| 亚洲国产综合在线| 5858s免费视频成人| 日本中文在线一区| 日韩写真欧美这视频| 美国精品在线观看| 国产人成亚洲第一网站在线播放| 国产精品主播直播| 中文字幕亚洲欧美在线不卡| 成av人片一区二区| 亚洲成人精品在线观看| 欧美一级淫片007| 国产成人av影院| 亚洲欧美日韩精品久久久久| 91国偷自产一区二区三区观看| 亚洲国产成人精品视频| 欧美一级专区免费大片| 国产91富婆露脸刺激对白| 亚洲图片另类小说| 欧美一区二区在线不卡| 国产精品综合一区二区| 亚洲欧美日韩一区二区三区在线观看| 欧美专区在线观看一区| 另类中文字幕网| 亚洲少妇屁股交4| 欧美高清激情brazzers| 大桥未久av一区二区三区中文| 国产精品久久久久久久久果冻传媒 | 狠狠色狠狠色综合| 18成人在线视频| 91精品国产91热久久久做人人| 精品在线播放免费| 亚洲一区二区视频| 国产午夜精品久久久久久免费视 | 欧美日韩中文一区| 国产一区二区三区免费| 依依成人综合视频| 欧美极品少妇xxxxⅹ高跟鞋| 欧美日韩一级黄| 99精品视频一区| 精品一区二区三区在线观看| 洋洋av久久久久久久一区| 精品成人佐山爱一区二区| 在线观看一区日韩| av不卡一区二区三区| 精品一区二区免费在线观看| 一区二区三区 在线观看视频| 久久嫩草精品久久久精品一| 欧美久久久久久蜜桃| 色欧美片视频在线观看在线视频| 国产伦精品一区二区三区免费迷| 亚洲高清视频的网址| 综合色天天鬼久久鬼色| 国产无遮挡一区二区三区毛片日本| 91精品国产综合久久福利| 日韩欧美国产1| 欧美日韩精品高清| 一本高清dvd不卡在线观看| 韩日精品视频一区| 久久超碰97中文字幕| 日韩av电影免费观看高清完整版| 有码一区二区三区| 成人免费一区二区三区视频| 国产视频在线观看一区二区三区| 日韩欧美电影一二三| 欧美一区二区三区四区视频| 欧美日韩aaaaa| 欧美日韩中字一区| 欧美日本国产视频| 欧美理论片在线| 欧美日韩在线免费视频| 欧美三级乱人伦电影| 欧美专区日韩专区| 欧美日韩三级一区二区| 日本韩国精品在线| 欧美在线免费播放| 欧美蜜桃一区二区三区| 欧美日韩电影一区| 欧美日韩一区在线| 日韩亚洲欧美在线| 久久久久久日产精品| 国产免费观看久久| 国产精品成人免费精品自在线观看| 国产欧美精品区一区二区三区| 国产视频一区二区在线观看| 中文字幕欧美日本乱码一线二线| 欧美国产一区二区| 中文字幕亚洲视频| 午夜一区二区三区在线观看| 香蕉久久夜色精品国产使用方法| 爽爽淫人综合网网站| 精品在线播放午夜| 成人黄页在线观看| 91久久精品国产91性色tv| 欧美日韩高清一区二区三区| 精品国产123| 亚洲欧美国产77777| 亚洲成人tv网| 国内成人自拍视频| 色综合天天天天做夜夜夜夜做| 欧美三区免费完整视频在线观看| 日韩欧美成人午夜| 国产精品久久久久婷婷二区次| 一区二区在线观看免费视频播放| 天天av天天翘天天综合网| 国产在线精品不卡| 91官网在线观看| 久久久久久久久一| 亚洲va欧美va天堂v国产综合| 国产毛片一区二区| 91激情在线视频| 日本一区二区视频在线观看| 亚洲丶国产丶欧美一区二区三区| 激情综合网激情| 欧美日韩一区二区三区免费看| 久久一区二区视频| 天堂在线一区二区| 色综合天天在线| 国产亚洲精品aa午夜观看| 石原莉奈一区二区三区在线观看|