当前位置:文档之家› vxworks测试题及解答

vxworks测试题及解答

vxworks测试题及解答
vxworks测试题及解答

vxworks测试题及解答

关于vxworks的测试题很少,这里推荐一篇满不错的。

一.闭卷考试(1小时30分钟)

(一)填空

1.假设tornado安装在c:\tornado ,那么如果要改一个pentium

目标板bootrom下载VxWorks的方式,请问该更改_____目录下的_____文件?

2.更改下面的bootline,从True Flash File System中下载VxWorks

"fd=0,0(0,0)host:/fd0/vxWorks.st h=90.0.0.3 e=90.0.0.50 u=target"

改为:____________________________________________

3.使用缺省目录创建一个BSP为ads860的bootable工程testProject,

工程组成文件prjconfig.c 在_____目录、syslib.c______目录、

生成的VxWorks在______目录

4.配置Image 时,出现红色的模块组件,原是_________________

5.以void demo(int arg1)函数为入口,以10为参数创建一个任务运行,

shell下该键入_______

6.使用工具_______来观察中断向量表

7.调试ISR使用_______调试方式

8.列举任务间通讯的至少4种方式_______、_______、_______、_______

(二)选择

1.假设tornado 安装在c:\tornado,make.exe估计应该在什么目录?

a. c:\tornado\host\x86-win32\bin

b. c:\tornado\target\config

c. c:\tornado\target\lib

d. c:\tornado\target\proj\run\default

2. task1与task2都要以读写方式访问一个数组,应该使用什么semaphore(a.binary b.mutual

c.counting);

task1与task2访问数组的代码应该为:

task1:

(a.semGive b.semTake)

访问数组

(a.semGive b.semTake)

task2:

(a.semGive b.semTake)

访问数组

(a. semGive b.semTake)

3.程序先后执行了如下代码

msgQId = msgQCreate (numMsg, sizeof (struct msg), MSG_Q_FIFO))

msgQSend (msgQId, (char *) &msg1, sizeof (struct msg),

WAIT_FOREVER, MSG_PRI_NORMAL))

msgQSend (msgQId, (char *) &msg2, sizeof (struct msg),

WAIT_FOREVER, MSG_PRI_URGENT))

msgQSend (msgQId, (char *) &msg3, sizeof (struct msg),

WAIT_FOREVER, MSG_PRI_NORMAL))

则再有任务执行两次

msgQReceive (msgQId, (char *) &consumedItem,

sizeof (consumedItem), WAIT_FOREVER)

得到的先后是

a. msg1,msg2

b. msg2,msg3

c. msg3,msg2

d. msg2,msg1

e. msg2,msg2

f. msg1,msg3

4.比较message queue 与pipe

有prioritization 管理的是(a.message b.pipe c.message 和pipe)

使用标准I/O接口的是(a.message b.pipe c.message 和pipe)

可以使用select 的是(a.message b.pipe c.message 和pipe)

5.exception用什么机制来处理

a. ISR

b. signal

c. task

d. watch dog

6.下列函数哪些可以在ISR中使用

a. printf

b. logmsg

c. taskSuspend

d. semGive

e. msgQReceive

f. wdStart

7.watch dog工作在什么方式

a. 中断方式

b. 任务方式

(三)问答题

1.在shell下要观察一个为”buffer???”(???为不明确的内容)的字符串内容,该如何操作?2.分析如下windview输出结果

tPhil1是为什么失去控制权,tPhil3是为什么失去控制权?

3.一旦在程序中使用了KernelTimeSlice(10);则不同优先级的任务间的调度方式为?

相同优先级的任务间的调度方式为?

4.以void test((char *)cp1,int num)为入口,创建一个优先级为100,堆栈为2000,

名称为”test_task”,操作字为0,参数为pointer1和200的任务,写出实现函数和参数

5. 分析源码

在shell下分别执行-> sp countingSemDemo, 'c' 与-> sp countingSemDemo,

'b',分析两者的运行效果会有什么不同,为什么?

/* include files */

#include "vxWorks.h"

#include "wdLib.h"

#include "stdio.h"

#include "semLib.h"

#include "taskLib.h"

#include "usrLib.h"

#include "sysLib.h"

/* defines */

#define TASK_PRIORITY 101

#define TASK_STACK_SIZE 5000

#define TIME_BETWEEN_INTERRUPTS 1 /* 1 tick */ #define TASK_WORK_TIME 2 /* 2 ticks */

#define NUM_OF_GIVES 30

/* globals */

/* counting or binary semaphore ID */

LOCAL SEM_ID semId = NULL;

/* watchdog ID */

LOCAL WDOG_ID wdId = NULL;

/* tid of syncTask */

LOCAL int syncTaskTid = 0;

/* Number of times semGive is called */

LOCAL int numToGive = NUM_OF_GIVES;

/* forward declaratiuon */

void syncISR(int);/* ISR to unblock syncTask */

void cleanUp (); /* cleanup routine */

void syncTask (); /* task that needs to be synchronized

* with external events */

/******************************************

* countingSemDemo - demonstrates

task synchronization using counting

* semaphores. User can also select to

use binary semaphore instead of

* counting semaphore in this demonstration,

for comparision between the two

* semaphores.

*

* RETURNS: OK or ERROR

*

*/

STA TUS countingSemDemo (

char semType /* counting semaphore type

'c' or binary semaphore

* type 'b'

*/)

{

switch (semType)

{

case 'c':

case 'C':

if ((semId = semCCreate(SEM_Q_PRIORITY,

0)) == NULL)

{

perror ("semCCreate");

return (ERROR);

}

break;

case 'b':

case 'B':

if ((semId = semBCreate(SEM_Q_PRIORITY,

SEM_EMPTY)) == NULL)

{

perror ("semBCreate");

return (ERROR);

}

break;

default:

printf ("Unknown semType-- must be 'c' or 'b'\n");

return (ERROR);

}

if ((wdId = wdCreate()) == NULL)

{

perror ("wdCreate");

cleanUp ();

return (ERROR);

}

if ((syncTaskTid = taskSpawn ("tsyncTask", TASK_PRIORITY,0, TASK_STACK_SIZE,(FUNCPTR) syncTask,

0,0,0,0,0,0,0,0,0,0)) == ERROR)

{

perror ("taskSpawn");

cleanUp();

return (ERROR);

}

/* watchdog simulates hardware interrupts */

if (wdStart (wdId, TIME_BETWEEN_INTERRUPTS, (FUNCPTR) syncISR, numToGive)

== ERROR)

{

perror ("wdStart");

cleanUp ();

return (ERROR);

}

/* arbitrary delay to allow

program to complete before clean up */

taskDelay (sysClkRateGet() +

((TASK_WORK_TIME + 2) * numToGive));

cleanUp();

return (OK);

}

/************************************************* * syncTask - synchronizes with interrupts using

* counting or binarysemaphores.

*/

void syncTask (void)

{

int eventCount = 0;

FOREVER

{

if (semTake (semId, WAIT_FOREVER) == ERROR)

{

perror ("syncTask semTake");

return;

}

/* Do "work" */

taskDelay (TASK_WORK_TIME);

semShow (semId,1);

eventCount++;

printf ("semaphore taken %d times\n", eventCount);

}

}

/************************************************ * syncISR - simulates a hardware device

which generates interrupts very

* quickly and synchronizes with

syncTask using semaphores.

*/

void syncISR(int times)

{

semGive (semId);

times--;

if (times > 0)

wdStart (wdId, TIME_BETWEEN_INTERRUPTS,

(FUNCPTR) syncISR, times);

}

/********************************************

* cleanUP - deletes the syncTask, deletes the

* semaphore and the watchdog timer previously created

* by countingSemDemo./

void cleanUp ()

{

if (syncTaskTid)

taskDelete (syncTaskTid);

if (semId)

semDelete (semId);

if (wdId)

wdDelete (wdId);

}

(注:休息15分钟,准备上机环境)

二.开卷部分

(一)上机参考解答题(45分钟内独立完成)

1.怎样加入外部.o文件

2.如何获取函数wdStart的帮助

3.怎样生成bootrom

4.有如下的bootline 定义:

"fei(0,0)host:vxWorks h=10.100.62.35 e=10.100.62.88 u=target pw=target"

另外:VxWorks image在d:\user_project\vxworks 如何配置ftp服务器5.Attach的功能是什么,Auto Attach是什么含义,怎样设置Auto Attach?

6. 如何进入system调试模式

7.给出0x220102 Errno的意义

8.填图,内存布局

9.编程序,实现100次以20 ticks为周期的对函数void test(void)的调用(二)上机实验题(30分钟)

1.创建一个有target server file system 的

Simulator和相应的支持target server file system 的WDB连接

2.载入\start\cobble.c到Simulator,

理解并调试dataSemId与crunch任务的关系

---------------------------------------------------------

答案

一.

(一)

1.C:\tornado\target\config\Pentium

Config.h

2. “tffs=0,0(0,0)host:/tffs0/vxworks h=90.0.0.3 e=90.0.0.50 u=target”

3. c:\tornado\target\proj\testProject\

c:\tornado\target\config\ads8260

c:\tornado\target\proj\testProject\default

4. 配置冲突、缺少需要的模块或有模块参数没有设置

5. sp demo(10)

6. browser

7. 系统调试

8. shared memory、semaphore、message queue、pipe、signal

(二)

1.A

2.B,B,A,B,A

3.D

4.A,B,B

5.B

6.B,C,D,F

7.A

(三)

1.先用lkup “buffer”查找字符串的准确名称,同时也可以得到字符串的地址;

然后用d 字符串名称或 d 字符串地址来观察字符串内容

2.tPhil1因为执行了semTake,tPhil3因为执行了taskDelay

3.不同优先级是基于优先级的抢占调度,相同优先级是基于时间片的轮巡调度4.taskSpawn ( “test_task”, 100, 0, (FUNCPTR) test, 2000,

(int) pointer1, 200, 0, 0, 0, 0, 0, 0, 0, 0);

5.以’c’为参数最后显示的eventCount比以’b’为参数最后显示的eventCount要大,这是因为

syncISR作为数据源发送的速度比syncTask处理数据的速度快,

binary semaphore 会被重置而不能正确反映数据的个数;

counting semaphore则不会被重置。

二.

(一)

1.在工程管理窗口的builds页面,打开工程的default选项窗口,

在Macros中定义出EXTRA_MODULES为外部.o文件;

或在makefile中定义出EXTRA_MODULES。

2.打开Tornado 帮助系统,选择Manuals Index ,

再选择Index页面,在输入框中键入wdStart,然后确认显示,

即可以打开该函数的html帮助。

3.在build菜单中选择build boot rom ,

然后在弹出窗口中选择BSP和Image 类型,然后确认;

或在相应BSP目录中直接键入make CPU=CPU类型Image类型

4.在ftp服务器的Security菜单中选择Users/Rights ,然后new user ,输入用户名和密码后,再把Home directory 置为d:\user_project\vxworks

5.Attach 用于多任务调试时,进入某个任务调试;

Auto Attach在某个任务遇到断点时,会自动进入该任务调试;

Auto Attach 在tools-options-debugger-“Auto attach to task”中设置。

6.使用debug菜单的Attach功能,在弹出的窗口中选择system;

或进入GDB窗口,键入attach system命令。

7.先在vxModNum.h中找出0x22的定义M_semLib,然后打开semLib.h,查找0x102的定义,得出为S_semLib_INV ALID_OPTION

8.RAM_LOW_ADRS RAM_HIGH_ADRS

9.要点:

(1)用taskDelay的定时精度不够,只能算及格;

(2)用watch dog时,一定要注意在watch dog的实现体内再启动该watch dog;

控制100次调用可以使用全局变量,或包装test函数后传递函数参数。

关键功能接口测试用例

1.目的 测量手机各关键硬件接口在工作状态的性能符合设计规范,以确保手机性能的稳定性符合设 计要求; 2.适用范围 适用于新开发手机产品在试产阶段的评测及相关功能重大更改时; 3.测试准备和说明: 3.1电池或程控电源,四通道数字示波器,相关机型的原理图及PCB丝印图,万用表(直流电 流档),原配耳机,各种不同类型的SIM卡至少三张以上,不同容量的TF卡至少三张,烙 铁,电批,细导线若干,SIM卡转接座(自制),100欧可调电阻器一个。 3.2各项测试前应确保手机基本功能正常; 3.3测试过程中必须配带静电环,确保静电安全; 3.4测试结果如有必要需附测试波形图; 3.5测试过程中示波器负极应就近接地,如有必要,测试结果应附波形图。 3.6 DP04034数字示波器的使用请参考指导:。 4.内容: 4.1 摄像头回路测试(测试用例编号: 5.1.1) 4.1.1 测试条件: 3.8V电源,示波器,相关机型的原理图及PCB图,细导线,电流表,拍照状态。 4.1.2 测试步骤: 1)手机开壳,根据原理图、PCB图找到摄像头AVDD/DVDD/CMRST脚,将数字示波器CH1,CH2,CH3分别接入手机AVDD,DVDD及CMRST端,负极接地。 2)示波器选用采样直流模式;电压标度设置1V/格,时间标度设为1S/格;添加测量幅值和最大值; 3)手机开机进入拍照模式,记录进入拍照过程中示波器的电压变化情况;测量VCAM-A 上升2/3到CMRST所需时间T1; 4)在VDD供电端串入一个电流表,测量摄像头工作状态的电流并记录。 4.1.3 预期结果: 摄像头工作电压、电流最大不应超过规格书要求的额定功率。 4.2 MIC偏置电压(测试用例编号: 5.1.2) 4.2.1 测试条件: 电源,示波器,原理图及PCB图,细导线,耳机,录音状态。 4.2.2 测试步骤:

VxWorks常用命令汇总

VxWorks常用的命令 1.与任务相关的命令 sp function,[arg1],...,[arg9] -启动任务,最多接受9个参数,默认的优先级100、堆栈20000字节 period n,function,[arg1],...,[arg8] -创建一个周期调用function的任务,周期为n秒,最多接受8个参数 repeat m,function,[arg1],...,[arg8] -创建一个反复调用function的任务,调用次数为m,m=0时永久调用,最多也是8个参数 ts tidX -挂起任务 tr tidX -恢复挂起的任务 td tidX -删除任务 i tidX -显示任务基本信息,参数为0时显示全部任务 ti tidX -显示任务详细信息,包括寄存器、堆栈等 tt tidX -显示任务的函数调用关系 checkStack tidX -显示任务堆栈使用的历史统计,参数为0时显示全部任务 [其中tidX可以为任务ID 也可以为任务名] 2、系统信息 lkup ["string"] -在系统符号表中查找并列出含有"string"字符的函数及全局变量,有两个特殊参数: 0,给出符号表统计;""(空字符串),列出全部符号 lkAddr addr -显示addr地址附近的符号表 l addr,[n] -显示addr地址开始的n条指令的反汇编,n省略时默认为10条指令 h [n] -n为0时列出最近执行的shell命令,默认20条;n非0时,设定shell记录的历史命令的数目 d [addr,[number],[width]] -显示addr地址开始的number个单元的内容,width定制每个单元的宽度,可以是1、2、4、8 m addr,[width] -按width宽度修改addr地址的内容,width可以是1、2、4、8 memShow 1 -显示系统分区上空闲和已分配空间的总数等 printErrno value -打印系统定义的错误码的宏 3、与网络相关的命令 ifShow ["ifname"] - show info about network interfaces inetstatShow - show all Internet protocol sockets tcpstatShow - show statistics for TCP udpstatShow - show statistics for UDP ipstatShow - show statistics for IP icmpstatShow - show statistics for ICMP arpShow - show a list of known ARP entries

接口自动化测试方案

接口自动化测试方案 2018年4月9日 文档编号:(V1.0) 目录 目录 1测试需求及范围 (2) 1.1测试目的 (2) 1.2测试需求 (2) 2测试方法 (3) 3测试工具及框架拓扑图 (3) 3.1测试工具 (3) 3.2自动化测试拓扑图 (3) 4流程示例 (3) 5测试环境 (5) 2.1硬件配置 (5) 2.2软件配置 (5)

6测试思路 (6) 6.1通用测试场景 (6) 6.2逻辑场景 (7) 6.3断言检查 (7) 1测试需求及范围 1.1测试目的 随着公司项目的不断增大,接口的服务随之增多,回归的任务量越来越大,需要对接口进行定时回归测试来保证系统的稳定性。 1.在开发提交新的接口前进行冒烟测试,以保证系统是能够正常开展测试的 2.功能测试完成/bug回归完成后进行回归测试,保证bug修改完成后没有引入新的问题 1.2测试需求 1、目前提供的接口多为Rest 规范的接口,需要使用JMeter进行自动化接口测试,核对接口入参及返回报文格式、内容的正确性,最终通过Jenkins持续集成生成测试报告。 2、对开发人员的需求 接口文档的规范,如:输入输出模板,输出类型是否全面

2测试方法 根据开发人员提供的接口访问地址、入参格式、请求格式,进行接口请求数据拼接,并查看返回结果及返回报文、响应时间,检查返回Json内容是否符合接口定义规范,是否符合预期的返回结果。 3测试工具及框架拓扑图 3.1测试工具 Jemeter+Jenkins 3.2自动化测试拓扑图 4流程示例 测试数据从csv或者txt文件里读取,包含入参、出参、预期结果/断言

vxWorks开发环境构建步骤及开发资源

vxWorks开发环境构建步骤及开发资源 技创科技(Technique Innovator Inc.) https://www.doczj.com/doc/3515349350.html, 一、Tornado集成开发环境构成 Tornado是集成开发环境的名称,主要由帮助及参考文档、操作系统vxWorks、开发工具(编译器、调试器、编辑器、target server等,据统计,挂接在Tornado下的可选工具和第三方有数百个)等三部分构成,分别对应三个目录: i.docs/ 所有文档都集中在该目录中, books.html是根索引,入门级开发请务必查看 以下文档: ●如果要熟悉使用界面及Tornado使用、创建工程,请参考:Tornado用户手册 及Tornado集成开发环境的HELP->content调出来的联机帮助文档; ●vxWorks的编译是使用标准GNU Makefile来编译连接的,要了解Makefile语 法请参考”GNU Make”;具体的Make rules存放在target/h/make/目录下。 ●如何调试?请参考“Debugging with GDB” ●vxWorks构成、特点及kernel,编程等:请参考:VxWorks Programmer's Guide, 系统调用、库函数接口标准等,请参考:VxWorks Reference Manual ●有关BSP(board support package)的构成、初始化、底层驱动等,请参考“BSP Reference” ●网络应用编程指南(socket编程): “VxWorks Network Programmer's Guide” ii.host/ 该部分存放主机端(开发机)的工具,如Tornado.exe,make.exe,编译器、调试器及TCL命令解释器等等,开发中要用到的工具都存放在目录 host\x86-win32\bin 下,部分命令是.exe文件,部分是.bat的,其中有torvars.bat文 件,是设置Tornado集成开发环境的环境变量用的,在使用其他工具前,要运行它 设置正确的环境变量及可执行文件搜索路径。 iii.target/ vxWorks操作系统、源码、BSP、设备驱动、头文件、配置文件等config/ BSP的存放地方,底层开发者绝大部分时间在该目录下度过,该目录下除了all/和comps/外,其他每个目录对应一种硬件板的BSP,开发者在 做BSP开发时,原则上除了对应BSP目录能修改外,target/目录下的其他 所有目录都不应该作出改动,否则会影响到其他BSP,常用BSP有: pid7t/ →ARM公司推出的pid7 ARM7TDMI评估板的BSP integratorX/ →ARM公司推出的integratorXXX评估板的BSP tk4510a/ →我们要使用的S3C4510B板的BSP SNDS100/ →三星公司推出的SNDS100(KS3C50100/S3C4510B)板的 BSP h/ 头文件存放地点,包括vxWorks的及所有其他组件的 arch/arm/ ARM体系结构相关头文件 make/ 编译连接时要用到的规则都存放在这里 vxWorks.h wind Kernel(vxWorks的核心”Wind Kernel”的API及常量说明) lib/ vxWorks是一个商用操作系统,其不开放源码部分的.o文件及.a(库文件)文件存放在这里(当然,除了config/目录外,所有其他目录下的*.c源码在编

vxworks653编程手册

一.V xWorks653运行时系统 1.1. 运行时层 一个vxworks653模块由下面四层组成: ■core OS—必需 ■partition—至少需要一个(vThreads 或COIL-based),每个都在一个分区的操作系统之中■APEX shared library—ARINC 653 应用所需 ■POSIX shared library—POSIX 应用所需 1.1.1.Core OS层 核心操作系统提供服务给分区。 缺省的,核心操作系统使用ARINC653规范中的时间抢占的调度(TPS)来调度分区。Vxworks653的核心操作系统还可以采用APPS调度策略在TPS调度的空闲时间内调度优先级

抢占调度(PPS)使能的分区。 核心操作系统提供给每个VThreads分区操作系统的服务包括: ●分区系统资源 ●调度分区 ●代表分区的操作系统执行trap异常 ●定义和强制分区边界 ●装载分区 ●使用端口和通道在分区间传递消息 ●处理I/O ●代表应用完成系统调用 ●支持分区的调试 ●监控分区和系统的健康 1.1. 2.vThreads 层 vThreads分区操作系统在核心操作系统分配给该分区的时间内调度vThreads中的线程。vThreads不直接与设备交互,而是通过核心操作系统的系统调用。 1.1.3.APEX 层 构建在vThreads之上,遵循ARINC653规范,并且提供相应功能和API。 1.1.4.POSIX层 构建在vThreads之上,遵循用于实时扩展的POSIX标准(1003.1b)。 1.2. 装载和启动 当目标板加电时,按照下面的步骤进行装载和启动 ●初始的启动码装载核心操作系统,分区操作系统,共享库,以及应用 ●核心操作系统初始化自身,启动它自己的子系统 ●核心操作系统创建分区 ●核心操作系统启动分区调度器,并且让应用初始化自身 核心操作系统可以在初始化完成之后下载在线装载的应用程序到分区。应用可以在分区运行之时装载到分区。

接口测试方法

接口功能测试策略 分类:java 学习 2012-04-18 15:30 1105人阅读评论(0) 收藏举报 测试服务器数据库游戏平台网络协议 由于平台服务器是通过接口来与客户端交互数据提供各种服务,因此服务器测试工作首先需要进行的是接口测试工作。测试人员需要通过服务器接口功能测试来确保接口功能实现正确,那么其他测试人员进行客户端与服务器结合的系统测试过程中,就能够排除由于服务器接口缺陷所导致的客户端问题,便于开发人员定位问题。以下便是个人的平台服务器接口功能测试经验总结: 一、接口测试范围 根据服务器的测试需求,接口测试范围主要分为:1、新增接口的测试;2、新增业务功能接口测试;3、整个服务器的接口测试。所需测试测试接口依次增多,在测试时间足够的条件下,当然需要对所有接口进行测试用例的设计,但如果测试较短的情况下,则应该首先根据用户的典型操作对测试接口进行优先级划分,对调用频繁接口需要优先进行测试。 二、接口测试策略 在进行平台服务器接口测试之前,首先需要整理服务器接口的测试方案,分析接口测试的要点,平台服务器的接口测试内容主要有: 接口设计检查 接口用于服务器与客户端的数据交互,客户端通过网络协议传递的数据为服务器接口的输入数据,因此应该首先通过服务器接口文档及客户端数据约束文档进行交互数据的有效性检查: n 整数型数据位数 n 浮点型数据精度 n 字符串数据范围值 要求客户端的整数型、浮点型、字符串数据以及其最大值和最小值都能作为服务器接口的有效输入。这些工作在服务器设计评审时就可以进行,以便确保不会出现客户端上传数据被服务器自动进行截断或四舍五入的操作。 接口依赖关系检查 以上策略只谈到单个接口的测试方法,对于用户来说,一个操作可能会造成服务器调用多个接口来进行完成,因此还需要从业务处理的角度,对各种业务操作所涉及的多个接口之间依赖调用进行测试。

VxWorks操作系统RTP介绍和使用方法

VxWorks 操作系统RTP 介绍和使用方法 从VxWorks 6.x开始引入RTP(VxWorks real time process projec模t) 式编程,这种模式的优点是应用程序相互独立,互不影响,而且增加了内核的稳定性,缺点是由于“内核态”与“用户态”的内存拷贝,其执行效率有所降低,随着CPU 速度越来越快,这点效率的牺牲已经越来越不重要。相比较于传统的DKM (downloadable kernel module project ),RTP适合多个团队独立运作,然后汇总 联试,这种模式除了全局函数不能再shell 里直接调用外,其对应用程序几乎不 做任何约束,原有的DKM 工程代码稍作修改即可正常运行。内核变化较大,需 要添加较多的组件,内存需要较好的划分,为保持应用程序直接调用函数调试的 习惯,需要封装接口供用户使用。 现简单的介绍RTP使用方法,并给出demo 代码供参考。 1. 新建并编译工程: (1) File->new-> VxWorks real time process projec如t, 图【1】 图【1】 (2) 一路next 后,选择如图【2】所示的编译器

图【2】 (3) 选择Finish 后,工程新建完毕。 (4) 导入源文件:这里的源文件名称是fooRtpApp.c ,一种较快捷的方式是选 中新建的工程,按下F5,源文件会出现在工程中. (5) 右键选择编译,出现如图【3】,选择Continue 继续。 图【3】 编译完成后,会生成vxe 格式的可执行文件,此处为usrAppA.vxe 。 2. 下载可执行性文件 待板子启动后,使用ftp 将vxe 文件下载到板子中。步骤如下: (1)运行->cmd,打开对话窗口,如图【4】所示:

EPON常用命令讲解

EPON常用命令讲解 ?数据业务基本排查 ?语音业务基本排查 ?930软件脚本简介 ?其他常用命令 ?典型案例分析 数据业务基本排查 基本思路: 在PON系统内GSWC、EC2、ONU各业务环节上应保证: 配置正确 配置生效 MAC地址正确转发 ?FTTH型ONU ?FTTB型ONU 配置核查 Onu switch目录: show vlan all显示所有端口vlan; show vlan 查看交换芯片单个vlan及其所属端口的信息,如果此端口配置为出口剥离vlan,相应端口显示为UN;反之显示为VF show vlan default 显示所有端口的untag属性的vlanid; Onu Debug下相关命令: ddd show port [|all] vlan config显示系统QinQ不使能下的Fe端口vlan的配置信息show port [|all] vlan service显示系统QinQ使能下的Fe端口vlan的配置信息show port [|all] vlan translation table显示端口的软件vlan转换表 EC2 Pon目录: show qinq_config <1-2> <1-24> 查询qinq模式下ONU端口业务信息 端口检查 show port status查看交换芯片端口的状态,可以查看用户端口是否接了终端,工作模式是否正确等 查看地址转发表

ONU swtich目录 show arl查看mac地址转发表,会显示学习到的端口、vlanid和mac地址,如果用户的vlan id同时上下行数据中学到,其中26端口( CPU端口)表示下行数据正常,用户端口1-24表示上行数据正常; OLT fdb目录 show fdb slot <1-8,11-18>查看上行数据时,查看业务卡(EC2)fdb表 show fdb slot 29查看下行数据时,查看上联口fdb表 主控盘学的地址的VID应该是最外层VLAN的VID。 如果,上下行fdb表都正确,但是拨号拨不上去,可以在OL T的上连口抓包,查看进出的包内容。如果有出去的包而无回来的包,则可以判断出是上游设备出问题。 如果fdb表学习不正确,则VLAN配置有问题,可以根据fdb表的情况,先判断问题出现在哪一个设备上,再查看VLAN配置有无问题。 其他处理方式: 如时延大、丢包、组播业务等问题,可分别在EPON系统与其他系统的接口处利用抓包工具查看定位,由于上联口只能封装单层vlan,Qinq和单层vlan方式会略有差别。 FTTN型ONU 与其他ONU差异 FTTN型ONU相对其他类型ONU比较独立,对于普通的数据、语音业务,OLT相当于“透传”的通道。 配置核查: FSWB Profile目录下 创建/修改/查看ADSL2+端口模板参数: add xaplus profile ; set dsl-profile ; show dsl-profile ; 主要查看4个方面: 1.编码类型(lineCoding) 一般编码类型在开通的下行速率低于8Mb/s时采用G .dmt,大于8M时采用adsl2plusauto。 2.线路类型(channelMode) 线路类型采用interleaved更为稳定 3.训练速率(dnFastMaxTxRate,dnIntlMaxTxRate,upFastMaxTxRate,upIntlMaxTxRate) ADSL 一般最大上行可达速率为800Kb/s,下行可达速率为8Mb/s ADSL2+一般最大上行可达速率为1Mb/s,下行可达速率为28Mb/s 配置时上行速率不要超过1Mb/s,推荐640Kb/s

实验一输入输出接口实验

实验一输入、输出接口实验 一、实验要求 1、P1 口做输出口,接八只发光二极管。 2、P3.0,P3.1 作输入口接两个拨动开关 3.要求若P3.0单独闭合,则LED灯从L7-L0循环闪烁,每次亮一个,若P3.1单独闭合,则led灯从L0-L7闪烁,每次亮一个。若P3.0 P3.1同时闭合,则所有灯一起闪烁,闪烁间隔为1S。若P3.0 P3.1全部断开,则所有灯全不亮。 4、将闪烁间隔修改为30MS,观察现象。 二、实验目的 1、学习 I/0 口的使用方法。 2、学习延时子程序的编写和使用。 三、实验设备 1、IPC-610研华工控机一台, 2、伟福LAB2000P教学实验系统。 四、实验电路及连线 五、实验说明 1、P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当 P1口用为输入口时,必须先对它置1。若不先对它置1,读入的数据是不正确的。 2、8051 延时子程序的延时计算问题,对于程序 Delay: MOV R6,#0H MOV R7,#0H DelayLoop: DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET 查指令表可知 MOV,DJNZ 指令均需用两个机器周期,在 6MHz 晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为: ((256×2+2)×256+4)×2=263176

六、实验报告 1、解释为什么P1端口作为输入口时,需先对它置1,才能读取正确的外部输入数据? 2、画出完整的实验电路原理图 2、整理实验程序

连线 连接孔 1 连接孔 2 1 P1.0 L0 2 P1.1 L1 3 P1.2 L2 4 P1.3 L3 5 单脉冲输出 T0 实验二 外中断及定时、计数器实验 一、实验目的 1、掌握外部中断的运用方法,本实验中采用边沿触发模式。 2、学习 8051 内部 T0 T1 定时/计数器使用方法。 3、掌握中断处理程序的编程方法。 二、实验内容及要求 1、用单次脉冲申请外中断INTO ,采用边沿触发模式,在外中断处理程序中对输出信号灯LED6(P3.1控 制)进行反转(采用CPL 指令) 2、8031 内部定时计数器 T0,按计数器模式和方式2工作,对 P3.4(T0)引脚进行计数。将其数值按二进制数在 P1 口驱动 LED 灯上(L0,L1,L2,L3)显示出来。 3、用 T1作定时器中断方式计时,实现每一秒钟LED7(L7)(P3.0控制)灯闪烁一次 三、实验设备 1、IPC-610研华工控机一台。 2、伟福LAB2000P 教学实验系统。 四、实验电路及连线 注意: 本实验中,“单次脉冲”同时作为计数脉冲输入T0引脚,同时也引到引脚INTO 申请外部中断,本实验中将要求同时开放外部中断INTO 和T1的定时中断这两个中断。 五、实验说明 1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验T0使用的是计数器。T1使用的是定时器。 2.本实验中内部T0起计数器的作用。外部事件计数脉冲由 P3.4 引入定时器 T0。 单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能 检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON 。TMOD 用于设置定时器/计数器 连线 连接孔 1 连接孔 2 1 P3.0 L7

VxWorks操作系统MakeFile

VxWorks操作系统MakeFile(一) 时间:2008-8-24 夜 版权申明:本文为水煮鱼为水煮鱼@博客园撰写,不得用于商业用途,如需摘用,请与水煮鱼联系。 1、介绍 本文将介绍为什么要将你的C源代码分离成几个合理的独立文档,什么时候需要拆分,那又怎么拆分呢? 然后再介绍如何使用GUN Make使你的编译和链接步骤自动化。可能你使用的是其他的make工具,但是其实道理都差不多。当然如果你对自己的编程工具有怀疑的话,可以不妨实际的试试。 2、多文件项目介绍 a. why? 为什么使用多文件项目?他们有什么好处呢? 从表面上看,多文件项目是够复杂的了,又要头文件,又需要extern申明,并且如果你要查找一个文件的话,还需要在更多的文件里搜索。 但是如果把其考虑成一个项目,那一个项目根据功能划分为小的模块,那就不难理解了。 想想如果是一个一万行代码,如果你把其放到一个文件里,则在编译的时候,则需要对一万行代码进行重新编译。不过如果你如果把其放到不同的文件里,那修改一行,则只需要编译一个文件就可以了。可能你会说,一万行代码,就算全部编译,那点时间也基本可以忽略不计,但是实际情况是,在一个大的系统里,可能代码达到几十万甚至上百万,千万行代码的规模。以我们的项目为例,目前代码规模已经达到了上千万行的级别,如果全部重新编译,则将耗费几个小时甚至半天的时间。如果将其划分多多个文件,则修改一行所引入的编译代码,将不会随着你代码规模的增大而增大。所以多个文件的优点不言自明了。 不过对于不便于搜索的问题,其实只要文件划分得当,也并不会造成多大的困难。其实,从多个目标文件生成一个程序包比从一个单一文件生成程序包要好的多。当然,实际上这是不是一个优势还与你所使用的系统有关。但是当使用gcc/ld(一个GUN C编译器/连接器)把一个程序包连接到一个程序时,在连接的过程中,它会尝试不去连接没有使用到的部分,但它每次只能从程序包中把一个完整的目标文件排除在外。因此,如果你修改了一个程序包中某一个目标文档中任何一个符号的话,那么这个目标文件整个都会被连接进来。要是一个程序包被非常充分的分解的话,那么经过链接后,得到的可执行文件会比从一个大目标文件组成的程序包连接得到的文件小的多。 并且常常我们的程序是模块化的,高内聚,低耦合,使得文件之间共享部分被减少到了最少,因此采用多文件的方式,可以比较容易的找到代码中的bug。 b.when? 那什么时候分解你的项目? 如果你开发的是一个大项目,在开始前,应该好好考虑一下你将如何实现,并且将生成几个文件来存放你的代码。当然,在项目的开发过程中,你可以建立新的我文件,但是这将打乱你的整体布局,可能造成你整体结构的调整。因此特别建

Loadrunner 接口测试的两种方法

请求报文格式: < Publish > 123 456 2 123 456 Don't forget the meeting!

有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。 LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_s ubmit_data(),web_custom_request()。下面介绍两种我常用的方法: 方法一:使用web_submit_data() web_submit_data("insert", "Action=http://116.211.23.123/SNS/Publish.htm ", "Method=POST", "Referer=http://116.211.23.123/SNS/Publish.htm ",

"Mode=HTML", ITEMDATA, "Name= SNSID ","Value=6601",ENDITEM, "Name= UserID ","Value=123",ENDITEM, "Name= CommentsTypeID ","Value=1",ENDITEM, "Name= CommentsID ","Value=456",ENDITEM, "Name= AuthorID","Value=789",ENDITEM, "Name= CommentsContent ","Value=Just for testing",ENDITEM, LAST); 方法二:使用web_custom_request() char str[1000]; strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1 "); web_custom_request("Publish", "Url= http://116.211.23.123/SNS/Publish.htm", "Method=POST", "Referer=http://116.211.23.123/SNS/Publish.htm ", "Mode=HTTP", str, LAST); 这也是一种写法,可以跟web_submit_data互换。这种写法更利于拼接参数。 方法一适合一些xml结构的根元素下的子元素同处于根元素下面,且子元素数目较少的情况下,如果xml结构比较复杂,比如说根元素下面有多级子元素,或者xml树结构分叉较多的时候,我们可以先把x ml拼接成一个字符串然后通过web_custom_request()向服务器发送请求。 我们在做接口功能测试的时候会很注意接口的应答报文的信息,这时候我们可以通过LoadRunner 的日志信息查看或者可以通过web_reg_find()或者web_find()这样的API函数来统计接口的运行结果,推荐使用web_reg_find(),web_reg_find()和web_find()区别请大家百度一下,详细信息太多,在这里不便叙述。 因为web_reg_find()是注册型函数,所以应该放在web_submit_data()或者web_custom_request ()的前面。 如: web_reg_find("Text=0",//应答报文里边的信息 "SaveCount= StatusCodeCount", //统计查询字段的信息,如果找到值为1,如果未找到值为0 LAST);

MPC8377硬件环境下vxworks仿真的建立过程

MPC8377硬件环境下vxworks仿真的建立过程 2012-8-7 U-BOOT常用命令: 重启:reset 查看环境变量:printenv 修改环境变量:例如修改PC机IP,setenv serverip “……” 保存环境变量:saveenv 下载bootrom:run laodvx 如果需要用到其他命令,在命令行输入“?”查看。 1.首先,需要在FLASH中烧写好U-BOOT,把串口和网线连接好(如果多串口和网口的话,请检查并接在正确的位置),打开串口调试工具并设置在数据读取状态,然后上电,在倒计时读秒完成前在命令输入行输入任何信息进入U-BOOT层。 命令行 U-BOOT读秒区 2.在命令行输入printenv命令会显示U-BOOT的信息,如果ip不是我们想要的,可以通过setenv serverip “……”来修改,如下图中就把ip从192.168.1.24

改为192.168.1.43,修改完成后需要saveenv,然后reset,整个修改完成。 Printenv命令后的ip信息 Setenv serverip ”192.168.1.43” 后的结果 3.下载bootrom。先找到vxworks编译好的bootrom.bin文件,例如:本PC 上的路径C:\WindRiver-GPPVE-3.6-PPC-Eval\vxworks-6.6\target\config\mds837x,如下图。 需要的bootrom文件 把bootrom复制到tftp软件所在的位置,如下图。

放置好的bootrom文件 然后启动tftp软件,并在命令行输入:run loadvx,成功后如下图,至此bootrom 下载完毕。 下载成功后tftp显示信息 4.Vxworks下载。首先启动Vxworks6.6自带的ftp server,并配置好登陆用户和密码以及相关设置,主要有两部分设置,如下图。

接口测试总结

1.什么是接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 2.为什么做接口测试 首先,节省测试成本,数据模型推算,底层的一个bug能够引发上层的8个左右bug,而且底层的bug很容易引起全网的宕机。相反接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。 其次接口测试不同于传统开发的单元测试,接口测试是站在用户的角度对系统接口进行全面高效持续的检测。 最后接口测试是自动化并且持续集成的,这也是为什么接口测试能够低成本高收益的根源。 总之接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益的驱动作用下的最佳解决方案,接口测试是一个完整的体系,也包括功能测试、性能测试。 3.接口测试的适用范围 接口测试一般应用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。接口测试在淘宝的应用是一个自下而上的发展过程。 接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比。接口测试天生为高复杂性的平台带来高效的缺陷检测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。 4.在接口测试中如何应对需求的频繁变化 在现在这个互联网软件时代,需求的频繁变动已经不是什么新鲜事。客户的需求变更、市场需求的变更,项目本身的调整,以及新需求的出现等等都会导致需求的变化。这种需求的变化常会出现在项目开发阶段,根据需求的变化开发人员会对项目进行调整,而作为在项目开发阶段就接入进行测试的接口测试人员同样也会被影响,这种影响有时是巨大的,影响着我们的工作效率,它会导致我们需要重复以前的部分测试工作,甚至会让我们以前所做的测试工作白费。而且越是大型的、复杂的项目,这种影响越大,暴露出的问题也越多。 针对这段期间我在项目中的体验,将需求变化对接口测试的影响和出现的问题罗列下: 1. 需求变化,接口测试人员不知道或过了很久才知道。由于某些原因,常常会导致新需求变动接口测试人员不知道,或是过了很久才知道。往往接口测试人员是通过用例回归发现用例跑不通,然后会进行错误排查,最后发现问题后和开发确认后才知道是需求变化。这样是很浪费时间,甚至会遗漏一些需要测试的新需求的功能点,导致测试不全,遗漏bug。

接口测试文档

需求内容: 功能描述:店铺会有很多的评价,评价分两种类型,好评,差评,根据店铺的没个评价,确定这个店铺有多少个星。具体的要求是 1. 评价分好评,差评 2. 连续5个好评可以转换为1个星,有一个差评,减少1个星 3. 最多有5个星 4. 初始星为0,最少有0个星 接口设计: public interface IStoreService { /** *根据店铺Id,得到店铺的星数 *@param storeId店铺id *@return店铺星数 */ publicint getSotreStar(String storeId);} 分析过程: 从需求角度分析,需要测试的点包括: 1.店铺没有评价 2.店铺全部差评 3.店铺全部好评 4.店铺有差评,有好评 5.点评评价数小于5个 6.店铺评价中,连续好评不够5个 7.根据星计算规则,店铺所得星号大于5个 具体实现: privateint getStar(List pingJiaList) { if(pingJiaList ==null) { System.out.println("评价列表不能为null"); return0; }

int star = 0; int pingJiaCount = pingJiaList.size(); if(pingJiaCount < 5) { return star; } int goodPing = 0; for(int i = 0; i < pingJiaCount; i++) { if(pingJiaList.get(i).getPingJiaType() == PingType.goodPing) { goodPing++; if(goodPing == 5) { star++; goodPing = 0; } }else{ goodPing = 0; if(star > 0) { star -= 1; } } } if(star > 5) { star = 5; } return star; } 用例设计 略 测试过程: 1. 分析需求,找出被测需求测试点:

打通VxWorks调试环境 Step by Step(X86)

打通VxWorks调试环境Step by Step 1 引言 1.1 编写目的 概要说明如何建立使用Tornado开发、调试VxWorks的环境(X86版本)。 1.2 背景 1.3 定义 HOST:主机,运行Tornado集成环境,FTP Server,Target Server,以及编辑、build 工程、下载目标文件的各种软件工具; TARGET:目标机,HOST产生的vxWorks映像运行的位置,对于X86版本来说也是一台PC ; TORNADO:C:\Tornado,安装Tornado的路径; BSPNAME:C:\Tornado\target\config\pc486,BSP的路径,本例中我们选择pc486;PROJECT:C:\Tornado\proj\Project2,我们自己创建的工程的路径; BIN:C:\Tornado\host\x86-win32\bin,Tornado的可执行程序的路径; HOME:C:\Tornado\host\x86-win32\bin,FTP用户的根目录。 1.4 参考资料 Tornado User’s G uide (Windows Version), 2.0, Edition 1 VxWorks Programmer’s Guide, 5.4, Edition 1 2 总体描述 2.1 硬件环境 HOST与TARGET通过以太网互连,并且位于同一网段;同时,串口通过直连电缆(NULL Modem Cable)连接。目标机配置有软盘驱动器,网卡为3com 3c905B. 2.2 软件环境 主机操作系统为Windows 2000简体中文专业版(SP3);安装Tornado Version 2.0和Win 2k 补丁。 (CD No. TDK-12835-ZC-01 & TDK-13127-ZC-00, T2 LM for x86) 2.3 预览 在VxWorks调试环境中,HOST与TARGET之间连接的方式有多种,比如串口和网络;引导TARGET的方式也有多种,当然对X86平台来说最简单的是软盘引导了。在本文档中我们以网络连接、软盘引导为例,建立起调试环境。主要步骤包括: HOST上启动FTP Server, 配置BSP 创建可以引导TARGET的Boot ROM, 制作引导盘(软盘), 用软盘引导TARGET, TARGET通过网络连接从HOST下载vxWorks映像文件, TARGET运行vxWorks, HOST上启动Target Server连接Target Agent,成功建立调试环境之后,就可以在HOST 生成目标模块,下载到TARGET运行,并通过Tornado集成环境进行调试。

接口测试的两种方法

接口测试的两种方法 < Publish > 123 456 2 123 456 Don't forget the meeting!

有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。 LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_submit_data(),web_custom_request()。下面介绍两种我常用的方法: 方法一:使用web_submit_data() web_submit_data("insert", "Action=http://116.211.23.123/SNS/Publish.htm ", "Method=POST", "Referer=http://116.211.23.123/SNS/Publish.htm ", "Mode=HTML", ITEMDATA, "Name= SNSID ","Value=6601",ENDITEM, "Name= UserID ","Value=123",ENDITEM,

VxWorks 基本概念

VxWorks基本概念 Bootrom和Boot image的区别,Boot image和VxWorks image的联系和区别 bootrom 是指on-chip bootrom,在CPU芯片内部,内嵌有小的boot程序(bootloader),类似于PC机主板上的BIOS的存储区域。和boot image不是一回事。VxWorks文档中的bootrom区是指boot image存放的位置。 boot image的作用是把VxWorks image 加载到主板。boot image只初始化很少的硬件系统如串口,网口等。为加载VxWorks image做准备,当VxWorks系统下载完毕后,b oot image的作用也就完成了。 VxWorks image含有完整的VxWorks OS.是真正运行于目标板上的操作系统。应用程序运行于VxWorks系统之上。 boot image 和VxWorks image生成在使用BSP文件上的区别在于:在启动顺序中Bootrom调用bootConfig.c,而VxWorks调用usrConfig.c. 在ROM中VxWorks运行的方式(和bootrom编译到一起还是单独固化到ROM中),在ROM中的内存分配? VxWorks加载到主板运行,分不同的情况,如果VxWorks是压缩的,加载时解压到RAM的RAM_HIGH_ADRS.如果是ROM based VxWorks,VxWorks image的data段复制到RAM的LOCAL_LOW_ADRS, text部分留在ROM并在ROM中执行。 既不压缩又不ROM based的VxWorks直接copy到RAM_LOW_ADRS运行。 若在config.h中修改系统设置,如增加网卡等,是否需要重新烧bootrom?如果增加其他oem产品呢? 如果主板中有Boot image存在则不需要重新烧,用FTP等download加载VxWorks 即可。 VxWorks 系统编程中任务级与中断级的通讯如何实现? 中断是由硬件触发,软件的作用只是将中断服务例程(ISP)与中断事件连接起来。 1.使能中断,函数intEnable()。 2.用intConnect()登记中断号,和相应的中断例程ISR.这样一旦有中断发生,系统自动跳转到相应位置执行ISR.

相关主题
文本预览
相关文档 最新文档