📄 cpuload.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 + -