首页 > 范文大全 > 正文

基于Win CE的EP9315_SPI驱动程序设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Win CE的EP9315_SPI驱动程序设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:编写联系操作系统和相应硬件设备的驱动程序至关重要。在Platform Builder 4.2开发环境下,基于流接口驱动程序模型,详细阐述嵌入式操作系统win ce下EP9315芯片的SPI接口的驱动程序设计方法,就设计步骤、虚拟地址映射实现和关键程序代码编写等进行具体分析,并论述驱动程序与EVC编程环境下SPI应用程序之间的关系。驱动程序和相应应用程序能正确运行于优龙的FS_EP9315开发平台。实践证明,该方法正确可行。

关键词:嵌入式操作系统;Win CE;SPI;驱动程序

中图分类号:TP311文献标识码:B

文章编号:1004-373X(2009)10-069-04

Design of EP9315-SPI Driver Based on Win CE

ZHANG Dong1,XU Dijian2

(1.Chongqing University of Arts and Sciences,Chongqing,402160,China;2.Chongqing University of Science and Technology,Chongqing,401331,China)

Abstract: It is very important to compile driver connecting operating system with corresponded hardware device.Based on stream interface driver model,the design of SPI driver in embedded operating system Win CE in development environment of platform builder 4.2 and design method are introduced and analysed,realizing virtual address map,key code and the relationship between driver and SPI application program in EVC program environment is discussed.Driver and corresponded application program can be operated on FS_EP9315 development platform of ucdragon rightly.Experience indicates the methord is right and feasible.

Keywords:embedded operating system;Win CE;SPI;driver program

0 引 言

嵌入式是“以应用为中心,以计算机技术为基础,软硬件可裁剪,适合应用系统对功能、可靠性、成本、体积、功耗严格要求的计算机系统”。Windows 是Microsoft推出的功能强大的紧凑、高效、可伸缩的32位嵌入式操作系统,主要面对各种各样嵌入式系统的产品[1,2]。

该系统具有多线程、多任务、完全抢占式的特点,是为各种具有严格资源限制的硬件系统所设计的。为了将操作系统和硬件设备连接起来,硬件和软件的驱动联系就显得很重要。SPI是一种高速、全双工、同步的通信总线,在芯片的管脚上只占用4根线,节约了芯片的管脚,同时为PCB的布局节省了空间,提供了方便,正是出于这种简单易用的特性,现在越来越多的芯片都集成了这种通信协议。SPI的工作模式有两种:主模式和从模式,SPI总线可以配置成单主单从、单主多从、互为主从。为了充分利用芯片的SPI接口进行相应的驱动程序设计以及应用程序设计,通用方法的研究就显得十分重要。

1 Win CE提供的驱动模型

Win CE操作系统支持两种类型的驱动程序,一种为本地驱动程序,是把设备驱动程序作为独立的任务实现的,直接在顶层任务中实现硬件操作,因此有明确和专一的目的。本地驱动程序适合于那些集成到Win CE平台的设备,诸如键盘、触摸屏等设备。另一种是具有定制接口的流接口驱动程序,它是一般类型的设备驱动程序,为用户一级的动态链接库(DLL)文件,用来实现一组固定的函数称为“流接口函数”,这些流接口函数使得应用程序可以通过文件系统访问这些驱动程序。这里论述的SPI驱动就属于流接口驱动。

2 SPI驱动程序的设计

2.1 EP9315芯片及SPI接口简介

EP9315是一款基于ARM920T,由Cirrus Logic公司生产的工业级芯片[3,4] ,内带MMU,16 KB的指令Cache,16 KB的数据Cache和数学协处理器,主频为200 MHz,系统总线为100 MHz。该芯片拥有一组SPI接口,利用它可方便实现与SPI器件进行通信,可大大简化工程应用的硬件设计软件。

SPI驱动程序采用Win CE流驱动的标准形式。下面从驱动程序具体设计步骤以及驱动代码的编写两个方面做较为详细的阐述。

2.2 SPI驱动程序设计步骤

在Platform Builder 4.2下设计Win CE流接口驱动程序可按照以下步骤进行[5-7]:

(1) 在C:\\Win CE420\\PLATFORM\\ep931x\\drivers目录下新建一个目录SPI;

(2) 从其他驱动目录下复制makefile文件到SPI目录下;

(3) 用文本编辑器建立4个文本文件,文件名分别为SPI.c,SPI.h,SPI.def和sources;

(4) 编辑目录C:\\Win CE420\\PLATFORM\\ep931x\\driver下的dirs文件。用文本编辑器打开该文件,找到“DIRS=”等式,在该等式最后添加一行, 如下面所示:

DIRS=…

SPI

(5) 在Platform Builder 4.2中打开Platform.bib文件,在该文件最后和FILES之前加入一行,指明在生成Windows CE内核映射时自动将SPI.dll加入到内核映像中,添加内容如下:

SPI.dll MYM(_FLATRELEASEDIR)\ SPI.dll NK SH

(6)具体的流接口驱动程序跟注册表密不可分,在Platform Builder 4.2中打开platform.reg文件,在该文件最后加入如下所示注册表信息,以使在生成操作系统映像时,Platform Builder将注册表信息加入到注册表中。在Platform.reg中添加内容如下:

[HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\SPI]

"Prefix"=" SPI "

"Dll"=" SPI.dll"

"FriendlyName"=" SPI Driver"

"Index"=dword:1

"Order"=dword:0

(7) 为了通知Windows CE驱动的函数,需要在SPI.def文件中指出要导出的函数,编写内容如下:

LIBRARYSPI