实验五WinCE中的驱动程序开发

实验五WinCE中的驱动程序开发
实验五WinCE中的驱动程序开发

WinCE中的驱动程序开发

一.实验目的

1、熟悉WinCE中流式接口驱动程序的12个接口的功能。

2、掌握流式驱动程序的工作过程。

3、能够编写出流式接口的驱动程序。

二.实验内容

使用VS2005的智能设备应用程序开发方法,进行网络通信的编程,并通信多线程技术实现服务器与客户端之间的文件传输。

三.实验设备及工具

硬件:PC机一台;

软件:Windows XP操作系统,VS2005开发环境,WinCE 6.0开发环境,或Windows Mobile 5.0 SDK

四.实验步骤及说明

(1)写出流式接口驱动程序的12个接口,及每个接口的功能。

答:见教材515页

(2)写出流式驱动程序的工作过程。

答:第一步:加载驱动程序,主要有两种加载方式:(1)当系统启动时,设备管理器搜寻注册表的HKEY_LOCAL_MACHINE\Drivers\BuiltIn键下面的子键,并逐一加载该子键下的每一个驱动,此过程称为BusEnum;(2)应用程序可调用ActivateDeviceEx()函数动态地加载驱动程序。

第二步:设备管理器从注册表的dll键值中获取驱动程序所在的DLL文件名。

第三步:设备管理器调用LoadDriver()函数把该DLL加载到自己的虚拟地址空间中。

第四步:设备管理器在注册表的HKEY_LOCAL_MACHINE\Drivers\Active下,记录所有已经加载的驱动程序。

第五步:设备管理器调用驱动程序中的COM_Init函数,并把上一步中添加的注册表项的完整路径作为COM_Init函数的第1个参数传入驱动程序内。

第六步:在COM_Init中,通常须对硬件进行一些最基本的初始化操作。

通过以上的操作完成流式驱动程序的加载任务。

对驱动程序的操作:

第一步:应用程序使用该设备。首先,应用程序调用CreateFile(TEXT(“COM1”)….)打开设备。然后,文件系统判断打开的是文件还是设备。最后,如果打开的是设备,就将控制权交回设备管理器。

第二步:设备管理器调用驱动程序的COM_Open()函数打开设备。

第三步:COM_Open()函数把打开设备的结果返回给设备管理器。

第四步:设备管理器把SMP_open()的返回结果,返回给应用程序的CreateFile()函数调用。

通过第七步到第十步,设备已被成功打开,接下来可对设备进行读/写和控制操作。下面将以从设备中读取数据为例。

第一步:应用程序使用CreateFile()调用返回的句柄,调用函数ReadFile(),向设备发送读请求。

第二步:设备管理器调用驱动程序的COM_Read()函数,读取设备的数据信息。在此过程中,COM_Read()函数可与硬件交互,从硬件中读取必要的信息。然后返回给设备管理器,再返回给应用程序。

最后,当应用程序不再使用该设备时,它可调用CloseHandle()将设备关闭。

(3)实验过程及主要代码分析:

a. 写出两种导出动态链接库接口的方法

答:导出动态链接库接口的方法,主要有以下两种:

第一种,使用动态链接库的导出文件,即.DEF文件

LIBRARY GenDriver

EXPORTS

GEN_Init

GEN_Deinit

GEN_PreDeinit

GEN_Open

GEN_Close

GEN_PreClose

GEN_Read

GEN_Write

GEN_Seek

GEN_PowerDown

GEN_PowerUp

GEN_IOControl

第二种,使用__declspec(dllexport)关键字

__declspec(dllexport) DWORD GEN_Init (DWORD dwContext);

__declspec(dllexport) BOOL GEN_PreDeinit (DWORD dwContext);

__declspec(dllexport) BOOL GEN_Deinit (DWORD dwContext);

__declspec(dllexport) DWORD GEN_Open (DWORD dwContext, DWORD dwAccess,

DWORD dwShare);

__declspec(dllexport) BOOL GEN_PreClose (DWORD dwOpen);

__declspec(dllexport) BOOL GEN_Close (DWORD dwOpen);

__declspec(dllexport) DWORD GEN_Read (DWORD dwOpen, LPVOID pBuffer,

DWORD dwCount);

__declspec(dllexport) DWORD GEN_Write (DWORD dwOpen, LPVOID pBuffer,

DWORD dwCount);

__declspec(dllexport) DWORD GEN_Seek (DWORD dwOpen, long lDelta,

WORD wType);

__declspec(dllexport) DWORD GEN_IOControl (DWORD dwOpen, DWORD dwCode,

PBYTE pIn, DWORD dwIn,

PBYTE pOut, DWORD dwOut,

DWORD *pdwBytesWritten);

__declspec(dllexport) void GEN_PowerDown (DWORD dwContext);

__declspec(dllexport) void GEN_PowerUp (DWORD dwContext);

b.写出示例代码进行驱动程序的打开,并分析代码

答:打开驱动程序GenDriver的示例代码如下:

HWND hWnd = hMain;

DWORD dwwritten;

int count;

int ret;

//加载驱动

HANDLE HandleDriver = INVALID_HANDLE_VALUE; //驱动程序句柄

HANDLE hFile = INVALID_HANDLE_VALUE; //设备文件操作句柄

HKEY hDrvKey = NULL; //注册表操作句柄

HandleDriver = ActivateDeviceEx(L"Drivers\\BuiltIn\\GEN", NULL, 0, NULL);

/* 加载SimpleDriver 驱动*/

if (HandleDriver == INVALID_HANDLE_VALUE)

Add2List(hWnd,TEXT("加载SimpleDriver失败."));

else

Add2List(hWnd,TEXT("加载SimpleDriver成功."));

HANDLE hDrv =

CreateFile(TEXT("GEN0:"),GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORM AL,NULL);

//以打开文件的方式打开流式驱动程序

if(INVALID_HANDLE_VALUE == hDrv)

{

OutputDebugString(L"Failed to open driver...\r\n");

Add2List (hWnd, TEXT("Failed to open driver."));

return 0;

}

else

{

OutputDebugString(L"succeed to open driver...\r\n");

Add2List (hWnd, TEXT("File sent successfully."));

}

(4)实验结果及分析:

答:(1)用VS 2008生成GenDriver.dll,位于CHS Windows Mobile 5.0 PocketPC R2 Emulator 仿真器中,具体位置: \我的设备\Program files\GenDriver.dll。如图1所示。将GenDriver.dll 复制到根目录下(\)

图1生成的GenDriver.dll

(2)修改CHS Windows Mobile 5.0 PocketPC R2 Emulator的注册表。

第一步:打开VS2008的远程注册表编辑器,打开设备CHS Windows Mobile 5.0 PocketPC R2 Emulator。如图2所示

图2VS2008的注册表远程编辑器

第二步:在HKEY_LOCAL_MACHINE\Drivers\BuiltIn\下增加GenDriver,具体内容如下所示:

HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GEN

Prefix=GEN

Dll=\GenDriver.dll

FriendlyName=Simple Driver

Index=dword:0

Order=dword:0

最后,更新注册表

(3)运行流式驱动程序的加载测试程序MySquit,运行结果如图3所示:

图3GenDriver加载成功

(4)通过VS2008的远程进程查看器,也可以证明驱动程序已经运行,如图4所示

五.实验总结

软件开发实验报告doc

软件开发实验报告 篇一:软件开发实验报告 本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:CASE工具PowerDesigner的使用 实验地点:专业班级: 指导教师: XX年10月22日 本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:搭建Visual Studio开发环境,设计实验地点:致远楼B303指导教师:崔秀娟XX年9月28日 篇二:软件开发平台实验报告 课程设计报告 课程名称: 软件开发平台与工具任课教师: 姓名: 学号: 1. 引言 1.1. 课程设计项目 1.2. 背景简介从编程之初,便免不了和方法,类,接口之类的东西打交道。久而久之,自然会对此进行总结,

由此而产生了开发平台。而今中国的程序员之中,有很大一部分都是编一些企业MIS、政府MIS之类的程序。其主要工作就是对数据进行一下增删改查的操作,对MIS系统做一些基础的管理而已。软件开发平台有两种平台模式:一种是传统的C/S架构模式,一种是现在流行的B/S架构模式。B/S 架构模式是随着互联网的流行,自然又要求以互联网为基础,把这些都网络化,以实现网络资源共享,而不是传统的单机模式。这便激发了软件开发者的创造力,形成了软件开发平台的B/S架构模式(web开发平台)。对于web开发平台,我的个人理解是: 1.以web 2.0为基础,基于互联网的B/S架构的软件。它本身也是一个软件,只不过不是最终的软件产品,而是用于二次开发的软件。 2.用于实现各类业务系统,如CRM、MIS、ERP、HIS、OA 等等的开发。web开发平台本身就是一个二次开发平台,他不同于诸如eclipse等这样的开发工具,需要写大量的代码来完成各个业务模块,二次开发平台只需要设计好自己的数据结构,进行一些简单的配置、拖拉等操作就可以完成业务系统的开发。 3.能够快速的实现各种报表包括复杂的图表报表的设计制作,传统的编码式开发需要自己去编写想要的各种报表,而运用开发平台就简单多了,可以很轻松的配置出各种报表。

实验五WinCE中的驱动程序开发

WinCE中的驱动程序开发 一.实验目的 1、熟悉WinCE中流式接口驱动程序的12个接口的功能。 2、掌握流式驱动程序的工作过程。 3、能够编写出流式接口的驱动程序。 二.实验内容 使用VS2005的智能设备应用程序开发方法,进行网络通信的编程,并通信多线程技术实现服务器与客户端之间的文件传输。 三.实验设备及工具 硬件:PC机一台; 软件:Windows XP操作系统,VS2005开发环境,WinCE 6.0开发环境,或Windows Mobile 5.0 SDK 四.实验步骤及说明 (1)写出流式接口驱动程序的12个接口,及每个接口的功能。 答:见教材515页 (2)写出流式驱动程序的工作过程。 答:第一步:加载驱动程序,主要有两种加载方式:(1)当系统启动时,设备管理器搜寻注册表的HKEY_LOCAL_MACHINE\Drivers\BuiltIn键下面的子键,并逐一加载该子键下的每一个驱动,此过程称为BusEnum;(2)应用程序可调用ActivateDeviceEx()函数动态地加载驱动程序。 第二步:设备管理器从注册表的dll键值中获取驱动程序所在的DLL文件名。 第三步:设备管理器调用LoadDriver()函数把该DLL加载到自己的虚拟地址空间中。 第四步:设备管理器在注册表的HKEY_LOCAL_MACHINE\Drivers\Active下,记录所有已经加载的驱动程序。 第五步:设备管理器调用驱动程序中的COM_Init函数,并把上一步中添加的注册表项的完整路径作为COM_Init函数的第1个参数传入驱动程序内。 第六步:在COM_Init中,通常须对硬件进行一些最基本的初始化操作。 通过以上的操作完成流式驱动程序的加载任务。 对驱动程序的操作: 第一步:应用程序使用该设备。首先,应用程序调用CreateFile(TEXT(“COM1”)….)打开设备。然后,文件系统判断打开的是文件还是设备。最后,如果打开的是设备,就将控制权交回设备管理器。 第二步:设备管理器调用驱动程序的COM_Open()函数打开设备。 第三步:COM_Open()函数把打开设备的结果返回给设备管理器。 第四步:设备管理器把SMP_open()的返回结果,返回给应用程序的CreateFile()函数调用。 通过第七步到第十步,设备已被成功打开,接下来可对设备进行读/写和控制操作。下面将以从设备中读取数据为例。 第一步:应用程序使用CreateFile()调用返回的句柄,调用函数ReadFile(),向设备发送读请求。

wince6.0_开发环境搭建

Window CE6.0开发平台搭建详解 2011年08月29日 Windows CE6.0的开发无非两大方面:操作系统开发和应用程序开发,操作系统开发包括系统的定制,驱动开发和其他需要完成的底层工作。应用程序开发主要是与实际应用结合紧密的程序开发。 要搭建这样的开发环境,至少要包括两部分,一个是硬件平台,一个是软件平台,在Windows CE6.0的开发中,微软公司把这些开发软件集成到了vs2005中。 Windows CE6.0开发环境需要安装的软件比较多、比较大,至少要10GB的空间,而且有着严格的安装顺序要求,一旦其中某一个环节出错,都会导致软件运行出现故障,为确保安装顺利,请仔细阅读本文,按照步骤一步一步进行安装。 一、所需安装软件 1、Visual Studio 2005 2、Visual Studio 2005 Service Pack 1 3、MSDN 4、platform builder for Windows Embedded CE6.0 5、Windows Embedded CE 6.0 Platform Builder Service Pack 1 6、Windows mobile 6的sdk 二、所用磁盘空间 在安装之前,请检查电脑的磁盘空间,VS2005和Windows Embedded CE6.0均是比较大 的软件,要占硬盘好10G多的空间,建议不要装在C盘,但是我装Windows Embedded CE6.0的时候,发现不能更改安装路径,没办法,只能把Windows Embedded CE6.0装在 C盘。 三、安装顺序 1.安装Visual Studio 2005 最好选择自定义安装方式,把不用的一些组件都删掉,这样会节省不少的磁盘空间。WINCE6.0的Platform Builder不像WINCE5.0是独立的,而是作为VS2005的插件,以后建立和定制OS、编译调试全部在VS2005里完成。 2.安装Visual Studio 2005 Service Pack 1

电子科技大学软件开发环境实验报告

电子科技大学软件开发 环境实验报告 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】

本实验总体目的是,通过使用huffman编码算法从而实现文件的压缩和解压,以达到使学生掌握并灵活运用分割函数的三项原则。 五、实验内容: 本实验要求实现一个exe程序。这个程序按照huffman编码方式,同时包含了压缩功能和解压功能。用户通过以下命令进行压缩: C:\> –c uncompress_filename compress_filename 上述命令中,是程序名,-c表示要进行压缩。uncompress_filename是要压缩的文件名,可以包含路径信息,而compress_filename是压缩之后的文件名,同样可以包含路径信息。用户可以通过如下命令进行解压: C:\> –u compress_filename uncompress_filename 上述命令中,-u表示要执行解压命令。compress_filename是要解压的文件名,可以包含路径信息;uncompress_filename就是解压后所得到的文件,同样可以包含路径信息。 提示:在实现程序时,需要考虑如何存储huffman树或者编码表或者词频表等等。 本实验要求实现两个版本的程序,一是C语言版本的,二是C++版本的。对这两个版本的要求如下: 对于每一个版本的程序,需要在实验报告中给出函数调用关系图、流程处理关系 图以及它们的文字说明等内容; 对于每一个版本的程序,都需要在实验报告中给出源代码。为了便于查重,代码 中注释的比例要占到总行数的20%; C++版本的程序,需要给出类关系图。 实验报告的评分标准,包括以下几个方面: 实验报告是否规范

WINCE驱动开发中几个内存分配函数比较

【转】LocalAlloc,VirtualAlloc,malloc,new的异同首先明白几个概念:虚拟内存是从硬盘置换出来的,堆本身就是内存,程序运行时,可用内存=物理内存+虚拟内存。虚拟内存一般用文件来保存数据,虚拟内存的出现主要是因为以前内存不够(16M的内存刚出来的时候可是天价啊),磁盘相对便宜一些,所以聪明的系统设计者就把设计了虚拟内存,在程序运行的时候把那些很久没有被访问过的(可能以后也不会用到)内存映射到文件里面去(以后需要的时候再读进内存),把内存腾出来给真正需要执行的代码和数据,这样看起来可用内存就比物理内存多了。 HeapAlloc()是堆分配内存函数,查看c,c++的malloc,new函数的代码,可以看到就是对HeapAlloc()函数的封装,在堆上可以动态分配内存。 1. 首先我们来看HeapAlloc: MSDN上的解释为:HeapALloc是从堆上分配一块内存,且分配的内存是不可移动的(即如果没有连续的空间能满足分配的大小,程序不能将其他零散的空间利用起来,从而导致分配失败),该分配方法是从一指定地址开始分配,而不像GloabalAlloc是从全局堆上分配,这个有可能是全局,也有可能是局部。函数原型为: LPVOID HeapAlloc( HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes ); hHeap是进程堆内存开始位置。 dwFlags是分配堆内存的标志。包括HEAP_ZERO_MEMORY,即使分配的空间清零。 dwBytes是分配堆内存的大小。 其对应的释放空间函数为HeapFree。 2. 再看GlobalAlloc:该函数用于从全局堆中分配出内存供程序使用,函数原型为: HGLOBAL GlobalAlloc( UINT uFlags, SIZE_T dwBytes ); uFlags参数含义 GHND GMEM_MOVEABLE和GMEM_ZEROINIT的组合 GMEM_FIXED 分配固定内存,返回值是一个指针 GMEM_MOVEABLE 分配活动内存,在Win32中,内存块不能在物理内存中移动,但能在默认的堆中移动。返回值是内存对象的句柄,用函数GlobalLock可将句柄转化为指针 GMEM_ZEROINIT 将内存内容初始化为零 GPTR GMEM_FIXED和GMEM_ZEROINIT的组合

软件开发工具与环境实验报告.

南昌大学实践报告 学生姓名:谢某某学号:0149001506109 专业班级:软件工程2006 实践类型:□验证□综合□设计□创新实践日期:2010-11-30 实践成绩: (以下主要内容由学生完成) 一、实验项目名称 利用VC++设计一个简单的电话薄管理程序 二、实验目的 综合运用面向对象程序设计的基础知识,设计一个小型的应用程序,提高解决问题的能力。 三、实验基本内容 设计一个电话簿管理程序,要求: 〔1〕具有添加、删除、显示、修改和查询联系人电话号码的功能。 〔2〕联系人的信息保存到文件中。 〔3〕可以实现为控制台程序或图形界面程序。 〔4〕按学院实验报告要求格式书写实验报告 四、主要仪器设备及耗材 PC一台,Microsoft Visual C++ 6.0 开发环境 五、实验步骤 该电话薄的实现代码如下: #include #include #include #include #include using namespace std; class book { public:

book();//默认构造函数 char inter_face();//首页 void add_person();//添加 void del_person();//删除 void show_all();//显示 void alter();//修改 void select();//查询 void save_new();//保存 private: string name;//姓名 string number;//电话号码 }; book::book() { name = "\0"; number = "\0"; } //首页 char book::inter_face() { system("cls"); cout <>choose; fflush(stdin); return choose; } //添加联系人 void book::add_person() { cout <>name; fflush(stdin); cout <<"电话 : "; cin >>number; fflush(stdin); save_new(); cout <

WinCE驱动开发流程

wince驱动开发学习笔记 嵌入式技术/walking_man 发表于2007-03-20, 20:03 首先是wince驱动的分类问题。按照书上讲的说CE下驱动分成单体驱动和分层驱动,而看到另一种说法是本机驱动和流式驱动。经过microsun大哥的指点,把这两种分类法分开了。在这里引用一下:“单体与分层只是从代码的形式上做的分类.分层驱动代码上分为PD D与MDD,一般的微软已经实现了MDD,可能也实现了PDD,我们只需要对PDD做些修改就能使用,比如音频的驱动,显示的驱动。单层驱动是把PDD与MDD写在一起,没有做严格的区分,通常这种驱动比较简单,比如:ATADISK。 至于本地驱动和流式驱动是从驱动与系统其它模块(调用者)的接口 形式上做的分类.其实,本地驱动这个名称不大恰当,可能叫专用驱动或其它名字更为合适.它是指调用它的模块给它有特定的接口,比如电源驱动和通用LED驱动。而串口,网卡等就是流接口驱动程序. 所以,一个驱动程序可以是单体的流式驱动,例如:ATADISK.也可以 是分层的流式: 如OHCI ” 按照我的理解,单体和分层是驱动实现方式上的分类,而本地和流式则是驱动模型上的分类,所谓本地驱动就是操作系统有保留专门的接口,所谓流式是指编写的DLL文件里可以导出各种流式接口函数。 第二点:驱动的功能属性。设备驱动程序是操作系统内核和硬件的接口,操作系统定义了一组标准的接口,编写驱动的过程也就是实现这些接口。从应用程序到具体硬件间有如下这些环节起作用:

应用程序-调用OS函数-操作系统-驱动接口-驱动程序-硬件操作函数-硬件。在wince里驱动都以用户态的DLL存在,需要通过进程加载到slot里。共有三类系统进程用来加载:Device.exe,GWES.exe,File Sys.exe.绝大多数设备驱动都是通过Device.exe加载的。需要注意的是,不同的OS保留的设备驱动接口是不一样的,如桌面windows 和wince就不同。 第三点:wince下设备的初始化分为两个阶段:Device.exe的初始化;外设的枚举和加载。其流程是:上电-启动bootloader-启动N K-启动注册表init键(Device.exe启动)-初始化数据结构,I/O,电源管理等-加载BusEnum.dll(总线枚举器)-枚举注册表下Driver/buil din的所有子键。这里的枚举过程就是循环调用ActivateDeviceEx()函数加载驱动的过程。在OS启动完毕后,我们可以用PB的Remot e Registry Tool查看H_L_M/drivers/active包含的子键,看哪些驱动随启动而加载。 第四点:流接口驱动的概念。暴露流式接口函数的驱动即是流驱动,它把外设抽象成一个文件。过程是:应用程序使用文件API 对设备进行访问,OS接受API调用FileSys.exe,转到device.exe,调用流接口,与硬件交互。所谓流接口函数有十个,包括XXX_Init、XXX_Deinit、XXX_Open、XXX_Close、XXX_Read、XXX_Write、XXX_P owerUp、XXX_PowerDown、XXX_Seek、XXX_IOControl,在wince5.0中 增加le了XXX_PreClose,XXX_PreDeinit.而我们在应用程序里对应的文件A PI有CreateFile、DeviceIoControl、 ReadFile、 WriteFile,CloseHan dle,SetFilePointer. 第五点:编写流驱动的步骤。有两种实现途径:1。写DLL,做

软件工程实验报告

软件工程实验报告 姓名:冯巧 学号 实验题目:实验室设备管理系统 1、系统简介: 每天对实验室设备使用情况进行统计,对于已彻底损坏的作报废处理,同时详细记录有关信息。对于有严重问题(故障)的要即时修理,并记录修理日期、设备名、修理厂家、修理费用、责任人等。对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后立即对新设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。 2、技术要求及限定条件: 采用C#语言设计桌面应用程序,同时与数据库MySql进行交互。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案实施相对容易,成本低,工期短。 一:可行性分析 1、技术可行性分析 计算机硬件设备,数据库,实验室设备管理软件与实验室设备管理系统的操作人员组成,能够实现实验室设备管理的信息化,提高工作效率,实现现代化的实验室设备管理。系统需要满足实验室设备管理(包括对实验设备的报废、维修和新设备的购买)、实验室设备信息查询(包括按类别进行查询和按时间进行查询)、实验室设备信息统计报表(包括对已报废设备的统计、申请新设备购买的统计和现有设备的统计)。这些功能框图如下图所示: 2、经济可行性分析 依据用户的现实需求、技术现状、经济条件、工期以及其他局限性因素等等因素,考虑到工期的长短、技术的成熟可靠、操作方便等因素,本方案具备经济可行性。

3、系统可选择的开发方案 ①方案A用C#开发系统的特点是:开发工具与数据库集成一体,可视化,开发速度较快,但数据库能够管理的数据规模相对较小。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案的实施相对容易,成本低,工期短。 ②方案B:以小型数据库管理系统为后台数据库,该前台操作与数据库分离,也能够实现多层应用系统。系统对硬件的要求居中,特别适合在网络环境下使用,操作方便。但系统得实现最复杂,成本最高,工期也较长。 二:软件需求分析 1.软件系统需求基本描述: 实验室设备管理系统是现代企业资源管理中的一个重要内容,也是资源开发利用的基础性工作。实验室设备在信息化之前,在用户系统管理、设备维修管理、设备的增删改查管理等方面存在诸多不利于管理的地方,不适应现代的企业管理形势和资源的开发利用。 2.软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成): 1)顶层数据流图 2)二层流程图 3)总数据流图

Wince6.0驱动开发

Wince6.0驱动开发 (1) 在WINCE600\PLATFORM\LPC32XX \SRC\DRIVERS目录下新建一个目录MyDriver. (2) 在MyDriver目录下新建5个文件。 a) MyDriver.c 实现流接口函数的具体代码。 b) MyDriver.h 为MyDriver.h的头文件。 c) MyDriver.def 定义导出的函数名称。 d) makefile 与其它驱动的相同,不用改。 e) sources 链接和编绎文件。 (3) 前缀定义为MYD (4)文件内容完成后,在平台的“解决方案”的界面下,寻找FLATFORM\LPC32XX\src\drivers\MyDriver,然后单击鼠标右键,在弹出的菜单中选择“Build”,开始编绎驱动,完成后,在WINCE600\PLATFORM\LPC321XX\target\ARMV4I\retail下可找到MyDriver.dll. (5) 驱动加载的方法:手动,自动。 这里介绍自动加载的方法: a) 在MyDriver目录的位置找到dirs文件,在该文件中插入一行mydriver (都为小写),并在上一行后加“\”。 b) 在平台的“解决方案”的界面下,寻找FLATFORM\LPC32XX\Parameter Files\platform.bib.打开此文件,在相关位置添加mydriver(_FLATRELEASEDIR)\mydriver.dll NK SHK SHK指明该文件的属性,S—系统文件,H—隐藏文件,K—在内核中的位置固定。 c) 在Platform.req文件中相关位置添加程序如下: ;MyDriver [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MYD] “Prefix”=”MYD”

软件工程导论实验报告

软件工程导论实验报告 一、实验题目: 学生成绩管理系统、图书借阅管理系统、工资管理系统、网络订餐系统、招聘考试成绩管理系统 二、实验目标 通过独立完成项目开发,加深对软件开发分析过程的流程和方法的理解,建立软件工程的思想,同时,明确软件开发的成本和时间管理的相关概念。 实验一 实验要求: ①.在实验题目列出的几个系统中选择一个作为自己要开发的软件系统,要求该系统有明确的功能需求,并建立系统的分析模型。 ②.对系统进行需求分析,掌握ER图、DFD、DD的设计与编写 ③.熟悉Visio环境和基本操作,制作一个简单的系统流程图和数据流图、主要数

据项的数据字典描述及主要加工的逻辑说明(自己选择结构语言、判定树、判定表等)。 ④.撰写需求分析规格说明书 用户需求分析 作为图书管理系统,其主要的需求人员是借阅者,借阅者对其的要求可 以大体概括如下: 1)能按各种方式,比如书名、编号、作者等查询图书馆的藏书情况; 2)能熟悉使用图书管理系统; 3)能方便地借阅图书、续借图书、归还图书; 4)能查询自己的基本资料、借阅图书情况; 5)能方便图书管理员对图书的录入登记、注销; 6)能方便对新生的登记或注销已经毕业学生的信息; 7)能及时发布一些学院学生借阅图书超期情况、馆藏书情况等。 功能说明 1)、读者管理系统 (1)未注册者可以进入注册系统进行注册;

(2)已注册借阅者可按、编号或号登陆进入借阅者检索系统查询借阅者情况; (3)、已注册借阅者可按书名、或作者对图书信息进行检索查询或 提出预约请求; 2)、图书管理员管理系统 (1)图书管理员通过图书管理员身份认证进入图书管理员管理系统; (2)读者可借阅在库图书; (3)在规定期限借阅者归还借阅图书; (4)读者在不违规情况下可继续借阅已借阅图书; (5)读者可以预约图书。 3)、系统管理员管理系统 (1)系统管理员通过系统管理员身份认证进入系统管理员管理系统; (2)系统管理员可以对图书进行图书管理(如:查询、删除、修改图书资料或图书分类查询修改、删除管理); (3)系统管理员可以对借阅者进行学生管理(如:查询、删除、修改借阅者信息或借阅者类别

软件开发实验报告

本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:CASE工具PowerDesigner的使用 实验地点: 致远楼B501 专业班级: 指导教师: 2013年10月22日

2、转换物理模型,学生宿舍管理的PDM如下图:

本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:搭建Visual Studio开发环境,设计 Windows控制台应用程序 实验地点:致远楼B303 指导教师:崔秀娟 2013年9月28日

namespace Test2__02 { class Program { static void Main(string[] args) { int m=0; int n; long sum=0; Console.WriteLine("请输入n的值:"); n = int.Parse(Console.ReadLine()); for (int i = 1; i <= n; i++) { m += i; sum += m; } Console.WriteLine("sum = {0}",sum); Console.WriteLine("请输出sum的值:{0}", sum); } } } (方法二) namespace Test2__02 { class Program { static void Main(string[] args) { int i, j; int n; long sum=0; Console.WriteLine("请输入n的值:"); n = int.Parse(Console.ReadLine()); for (i = 1; i <= n; i++) for (j = 1; j <= i; j++) sum += j; Console.WriteLine("sum = {0}",sum); Console.WriteLine("请输出sum的值:{0}", sum); } }

开发wince驱动步骤

开发wince驱动步骤: software:VS20005+wince6.0+BSP hardware:AT91SAM9261开发板(MCUZONE)1在vs2005新建一个驱动工程DemoDrv。

2编写好所有DemoDrv的源文件,例如“.cpp”or“.c”or“.REG”文件,特别注意source文件编写,然后单独编译DemoDrv看有无错误,这样避免全部编译NK导致时间太久。然后立即看到编译结果。若编译成功,会在$:\WINCE600\PLATFORM\AT91SAM9261EK\target目录有相应的DemoDrv.dll文件。(在实现文件“.c”需添加串口抛出信息以便调试)在如图所示:

3在目录$:\WINCE600\PLATFORM\AT91SAM9261EK\FILES找到配置文件:platform.reg 和platform.bib文件。 platform.bib文件添加: IF BSP_AT91SAM9261EK_DemoDrv DemoDrv.dll$(_FLATRELEASEDIR)\DemoDrv.dll NK SHK ENDIF BSP_AT91SAM9261EK_LED platform.reg文件添加: IF BSP_AT91SAM9261EK_DemoDrv #include"$(_TARGETPLATROOT)\SRC\DRIVERS\DemoDrv\DemoDrv.reg" ENDIF BSP_AT91SAM9261EK_LED 添加后分别保存。 4在$:\WINCE600\PLATFORM\AT91SAM9261EK\CATALOG目录下at91sam9261ek.PbcXml 文件打开: 添加文件: Item:ADENEO:BSP_AT91SAM9261EK_ DemoDrv Driver DemoDrv Driver for AT91SAM9261EK boards DemoDrv Driver for AT91SAM9261EK boards BspSpecific BSP_AT91SAM9261EK_DemoDrv Cpu:ARMV4I DemoDrv.dll Device Drivers\DemoDrv 保存文件 5新建NK工程文件或者手动方式更改之前NK工程文件,例如之前工程文件:E:\BSP\BSP\trunk\sample9261\Wince600\AT91SAM9261EK_ARMV4I\PBInitEnv.bat添加 set BSP_AT91SAM9261EK_DemoDrv=1

软件工程实验报告(总)

信息工程学院软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

软件工程实验报告

1.1 实验一结构化需求分析 一.实验类型 图书馆管理系统 假定校图书馆需要你设计一个图书馆管理系统,要求包括以下功能: ●图书管理员可以管理馆藏图书,包括每本图书的藏书编号、书名、编著者、 ISBN号、出版社、出版时间、入馆时间、馆藏数量(如果馆藏数量为1,则标明为孤本图书)、在馆数量、学科类别等(或其它你认为有用的信息); ●管理员可以查询、统计所有图书、每一类图书或每一本书的借阅记录; ●图书管理员可以管理所有读者的信息,包括读者类型(学生、教师、社会人 士)、姓名、图书证编号、办证时间、证件状态(正常、挂失、冻结)等信息; ●图书管理员可以查询和统计所有读者、每一类读者或每一个读者的借阅记录; ●读者可以通过本系统查询馆藏图书; ●读者可以通过本系统借阅读书。但对于孤本图书或在馆数量为1的图书则不 准外借; ●管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年 不归还图书的读者冻结其图书证; ●读者可以通地本系统归还图书。如果图书超期,则自动计算罚款金额。二.实验目的 1.掌握数据流的分析技术 2.掌握软件需求分析的过程和方法。 3.熟悉项目开发计划和需求规格说明书的制定方法。 三.实验内容和要求 1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。 2.正确运用图表工具进行表示。 3.按规范正确编写软件文档。

四.实验步骤 1.理解所承担项目的业务流程和业务内容。 本软件项目是面向中小型学校、单位机构对于图书管理的基于服务的一款便捷式软件。能满足一系列常用图书管理的功能模块,提供简介、准确的操作性,可以很大程度减少人为因素带来的数据错误,统计错误,系统逻辑错误。并且规模小,很容易进行推广。 ●本项目的参与对象有图书管理员及读者。 ●对于读者,能通过该软件浏览馆藏的所有图书。读者在图书馆找到自己喜欢 的书后,能自行通过该软件操作完成借阅操作。若读者是第一次借书,必须通过图书管理员进行添加读者记录,登记读者信息。读者在登陆后方能完成借阅操作,对于孤本图书(即图书馆中馆藏只有一本的图书)则拒绝进行借阅操作。在规定期限内,读者可以通过该软件完成还书操作,对于超期的图书,应将扣除一定罚款金额,对于超期一年不归还图书的读者冻结其图书证。 并且读者能修改个人信息。 ●对于图书管理员,能管理自己和比自己低一级管理权限的管理员。一级管理 员能完成维护管理员的基本信息和二级管理员的一切操作。二级管理员则能维护自己的信息和添加读者、添加图书的功能。管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年不归还图书的读者冻结其图书证; 2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。 根据软件编程经验,本系统将采用面向对象的设计方法,使用Eclipse开发工具,java窗体应用程序,操作系统使用Win8。 3.绘制数据流图、功能分析图等。

用Labview开发WINCE应用程序

用Labview开发WINCE应用程序 概述 这几年安装Windows CE系统的单板电脑开始在工控行业里普及。用VS2005/VS2008开发Windows CE系统的应用程序可以像开发PC机的应用程序一样。现在我们还可以选择LabVIEW开发Windows CE系统的应用程序。这样我们就可以很容易开发出漂亮而且专业的界面。如仪表,波形显示等。Labview 2009安装和激活Touch Panel Module后即可支持Windows CE。推出的WINCE工业单板电脑系列有4.3寸,5.6寸,7寸,8寸,10.4寸,15寸均支持Labview开发。 图1 安装Windows CE系统的单板电脑 1.用Labview 2009开发WinCE应用程序 需要安装的工具包括了:USB驱动程序、Microsoft ActiveSync 同步软件、Labview 2009、和LabVIEW 2009 Touch Panel Module。随光盘附带有丰富的例子:串口、波形图等。 1.1.准备步骤 1.1.1.安装USB驱动程序 Wince 单板电脑首次与PC机(一般是桌面电脑)相连时,会提示需安装USB驱动程序。以后可跳过这步。将PC机与Wince 单板电脑通过USB口相连,当PC机提示发现新硬件时,找到附带光盘中的USB驱动文件夹中WINCE下面的wceusbsh 文件。 1.1. 2.安装工具软件步骤 1.Microsoft ActiveSync 4.2同步软件;

2.开发工具: ①安装Labview 2009开发系统平台; ②安装触摸屏面板模块(LabVIEW 2009 Touch Panel Module); 1.1.3.重点提示 以上工具安装完成后,当WinCE运行并与开发机通过USB 相连时,ActiveSync 会自动启动,要求建立合作关系,如下图 1.1: 图 1.1 按默认设置即可,完成后如下图 1.2所示: 图 1.2

智能移动终端软件开发实验报告

实验题目实验一:描述用户界面 实验地点502 实验日期3-24 机器号27 一、实验目的 学会写自己的第一个Android程序,从最简单的从模拟器上输出“Hello,world!”开始。 二、实验内容 1,先自己创建一个项目。 2.此时在窗口右边有一个“Activities”的项目,右击部署到模拟器上 三、实验步骤及结果 1,helloActivity.JA V A package net.lightwinner.app; import android.app.Activity; import android.os.Bundle; package net.lightwinner.app; import android.app.Activity; import android.os.Bundle; package net.lightwinner.app; package net.lightwinner.app;

import android.app.Activity; package net.lightwinner.app; import android.app.Activity; import android.os.Bundle; public class helloActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/0018274469.html,yout.main); } } 2.MAIN.JA V A 3.STRING Hello World, helloActivity! 我的第一个应用

《软件项目开发与管理系统》实验报告材料

《软件项目开发与管理》实验指导书2016/2017年第_二_学期 姓名: 学号: 班级: 指导教师:朱迎庆 软件工程系编写

实验一项目计划制定............................................ - 1 - 实验二理解项目............................................... - 3 - 实验三资源管理、成本管理..................................... - 8 - 实验四项目控制和动态跟踪.................................... - 10 - 附录A ........................................................ - 13 -

实验一项目计划制定 一、实验目的 掌握如何使用Microsoft project 2000制定项目计划。 二、实验环境 软件平台:Microsoft Windows2000 /XP。软件工具:Microsoft project 2000以上版本。 三、实验内容与要求 1.Microsoft project2003的基本界面。主要包括:标题栏、菜单栏、工具栏、编 辑栏、任务窗格、视图栏。 2.新建项目计划。主要包括:定义项目、设置项目常规工作时间、设置项目属性。 3.建立项目任务列表。主要包括输入任务、设置项目里程碑、设置项目摘要任务、 创建WBS图表、添加其它项目任务信息。 4.设置任务工期。主要包括:任务工期的表示、任务工期估算技术、显示具有任务 工期的任务。 5.设置任务链接。主要包括:建立和修改任务链接、设置链接的前置重叠和延隔时 间。 6.项目进度计划管理工具。主要包括:设置任务限制、设置任务期限、使用任务日 历、使用关键路径管理项目进度。 7.要求在试验报告中写出主要的操作流程,并插入适当的主要截图和必要的说明。 四、实验预习和准备 参考Microsoft Project相关书籍,对Microsoft Project2003有初步的认识和了解。 五、实验过程与结果 打开Project 2007,根据实验要求一次完成项目的基本设定。在项目设定过程中,对于如何降级不明白,后来明白了只要降级的部分右击选中降级就行了。根据自己的需要选择和输入内容,最终建立一个新的项目,截图:

相关文档
最新文档