i 显示任务基本信息,参数为0时显示全部任务。

ti 显示任务的TCB信息。

d 显示目标地址内存内容。

devs 列出目标机系统上的全部设备。

version 显示VxWorks版本号。

memShow 显示系统内存空间中空闲和已分配空间的总数等信息。

memPartShow 显示系统内存分区块和统计信息。

moduleShow 显示已加载的所有模块

iosDevShow 显示系统设备的信息。

iosDrvShow 显示系统驱动程序的信息。

semShow 显示信号量的信息。

regsShow 显示所有寄存器信息。

taskShow 显示任务TCB信息。

taskRegsShow 显示任务寄存器的内容。

coreShow 显示CPU频率、DDR频率、system频率、一级缓存、二级缓存、MSR寄存器信息等。

coreLbcShow 显示LBC控制器寄存器详细信息。

vxBusShow 显示vxBus的详细信息。

pciConfigTopoShow 显示PCI配置信息。

pciDevShow [pci设备号] 显示指定的pci设备信息。

TempratureShow 显示当前温度。

-> cmd 进入命令模式

[ VxWorks ] C 退出命令模式

格式化并恢复文件系统:

1. [cmd] sysTffsFormat

2. [cmd] cd FlashVolume

3. [cmd] file create -d FILE_DIR

4. [cmd] cd FILE_DIR

5. [cmd] ftp ip_addr,并输入用户名和密码登录

6. ftp> cd 需要下载的文件所在目录

7. ftp> binary (下载.ini文件时切换到binary模式)

8. ftp> get FILE

9. ftp> quit

10. [cmd] ls -l (查看所下载文件大小是否和FTP Server端的文件大小一致,以防下载出错

 代码供学习参考,请仔细阅读代码中的注释

 
 
#include <vxWorks.h> 
#include <spyLib.h> 
#include <stdio.h> 
#include <ioLib.h> 
#include <stdarg.h> 
#include <taskLib.h> 
#include <sysLib.h> 
#include <string.h> 
 
#define SPYTASKSMAX 100 
 
int data_ana(const char*,...); 
 
/* 函数功能: 检测CPU使用率并调用data_ana函数进行处理,最后将使用率打印在shell 上,也可通过重定向打印 
 * 在别的位置,main函数直接调用该函数即可 
 * 输入参数: 
 * 返回值: 0 
 */ 
int CPU_utilization(void) 
{ 
    spyLibInit(SPYTASKSMAX);//初始化spy,最大可spy任务数为SPYTASKSMAX 
    spyCommon(5,100,(FUNCPTR)data_ana);//此例程收集任务活动数据并定期运行spyReport()。数据每秒被收集几次,每几秒钟都会生成一个报告。如果freq为零,则默认为5秒。如果ticksPerSec被省略或为零,则默认为100s 
    return 0; 
} 
 
/* 函数功能: 可以向不同ip地址发送udp信息 
 * 输入参数: const char* fmtPtn,... 该参数为不定长参数,其所有参数类型均为const char*,通过 
 * v1指针循环赋给rbuf,从而得到spy函数在shell上输出的每行内容,从而在经过处理行内容 
 * 后得到cpu的使用率 
 * 返回值: 0 
 */ 
int data_ana(const char* fmtPtn,...) 
{ 
    char rbuf[256]; 
    const char* IDEL = "IDLE"; 
    char percent[50]; 
    int i=0; 
    int j=0; 
    int p; 
    va_list vl; 
    va_start(vl,fmtPtn); 
    vsprintf(rbuf,fmtPtn,vl); //将v1按格式fmtptn写入字符串buf中,得到一行字符串。 
 
    if(strstr(rbuf,IDEL)!= NULL) 
        /* 
         IDLE占用率表示cpu空闲占比,spy输出信息中,有一行是idel的值,得到该值后用100减去它,就得到cpu使用率 
     */ 
    { 
        printf("%s\n",rbuf); 
 
        for(i=0;(i<256)&&(rbuf[i] != '%');i++) 
        { 
     
            if(rbuf[i]>='0'&&rbuf[i]<='9') 
                { 
                    percent[j] = rbuf[i]; 
                    j++; 
                } 
        } 
        percent[j]='\0'; 
        //printf("CPU free percent= %s \n",percent); 
        p=atoi(percent); 
        printf("CPU use percent= %i%%\n",100-p); 
    } 
    va_end(vl); 
    return 0; 
} 

一种VxWorks系统CPU利用率图形化显示方法的设计与实现

下载地址

目的:

本实验演示了如何使用VxWorks下的timex()函数来计算一个程序执行的时间。

语法:

void timex(FUNCPTR function_name, int arg1, .., int arg8)

注意: timex函数的第一是参数是指向将被计时的程序的函数指针

实验原理:

 

#include "vxworks.h" /* Always include this as the first thing in every program */
#include "timexLib.h"
#include "stdio.h"

#define ITERATIONS 200

int printit (void);

void timing ()
{

/* Function to perfrom the timing */
FUNCPTR function_ptr = print;
timex(function_ptr, NULL,NULL,NULL,NULL,NULL,NULL,NULL); /* Timing the "print" function */
}

int print(void) /* Function being timed */
{
int i;
for(i=0; i<ITERATIONS; i++) /* printing the task id number and the increment Variable "i" */
printf("Hello, I am task %d and is i = %d\n", taskIdSelf(), i);
return 0;
}
  • 1. VxWorks操作系统概述
  • 1.1.VxWorks 操作系统简介
  • 1.2.VxWorks操作系统内核
  • 1.3.任务管理
  • 1.4.通信、同步和互斥机制
  • 1.5.网络通信
  • 1.6.中断服务程序
  • 1.7.时间管理器
  • 2.VxWorks应用指导
  • 2.1.系统启动
  • 2.2.应用系统配置
  • 2.3.板级支持包BSP
  • 2.4.VxWorks系统任务
  • 2.5.应用软件开发指导
  • 2.6.应用示例分析

下载地址

(12 votes)
Date 2021-03-27
File Size 316.39 KB
Download 455