⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpuload.c

📁 CMX990 demonstration board (DE9901)
💻 C
字号:
/****h* DE9901/CPULOAD
* FILE NAME
*  cpuload.c
* COPYRIGHT
*  (c) 2004-2005 Mobitex Technology AB - All rights reserved
* 
*  Redistribution and use in source and binary forms, with or without modification,
*  are permitted provided that the following conditions are met:
*  * 1. Redistributions of source code must retain the above copyright notice,
*       this list of conditions and the following disclaimer. 
*  * 2. Redistributions in binary form must reproduce the above copyright notice,
*       this list of conditions and the following disclaimer in the documentation
*       and/or other materials provided with the distribution.
*  * 3. The name Mobitex Technology AB may not be used to endorse or promote products
*       derived from this software without specific prior written permission.
*
*  THIS SOFTWARE IS PROVIDED BY MOBITEX TECHNOLOGY AB "AS IS" AND ANY EXPRESS OR
*  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
*  SHALL MOBITEX TECHNOLOGY AB BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
*  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
*  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
*  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
*  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
*  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* AUTHOR
*  MPN/Kjell Westerberg
* HISTORY
*  Changes in the file are recorded in this list.
*   Ver:  Date:       Responsible:         Comment:
*   R1A01 2005-01-17  Kjell Westerberg     Approved.
* DESCRIPTION
*  Function to measure the CPU load.
***/

#include "hel.h"
#include <cyg/cpuload/cpuload.h>

static cyg_cpuload_t cpuLoad;
static cyg_handle_t cpuLoadHandle;


/****f* CPULOAD/CpuLoadInit
* DESCRIPTION
* Initializes the CPU load measurement.
* This must be called in main before any other threads are started.
***/
void CpuLoadInit(void) {
  cyg_uint32 cpuLoadCal;
  
  cyg_cpuload_calibrate(&cpuLoadCal);
  cyg_cpuload_create(&cpuLoad, cpuLoadCal, &cpuLoadHandle);
  diag_printf("CPU Load calibration value: %d\n", cpuLoadCal);
}

/****f* CPULOAD/CpuLoad
* DESCRIPTION
* Returns the current avarage CPU load for different time periods.
* The time periods can be 100 ms, 1 s or 10 s
* defined by the constants:
* CPULOAD_100MS, CPULOAD_1S and CPULOAD_10S.
***/
cyg_uint32 CpuLoad(cyg_uint32 time) {
  cyg_uint32 cpuLoad100ms, cpuLoad1s, cpuLoad10s;
  
  cyg_cpuload_get(cpuLoadHandle, &cpuLoad100ms, &cpuLoad1s, &cpuLoad10s);
  switch (time) {
  case CPULOAD_1S:
    return cpuLoad1s;
  case CPULOAD_10S:
    return cpuLoad10s;
  default: /* CPULOAD_100MS */
    return cpuLoad100ms;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -