基于ecos操作系统的flash驱动程序分析与移植

基于ecos操作系统的flash驱动程序分析与移植

ID:33352981

大小:158.50 KB

页数:5页

时间:2019-02-25

基于ecos操作系统的flash驱动程序分析与移植_第1页
基于ecos操作系统的flash驱动程序分析与移植_第2页
基于ecos操作系统的flash驱动程序分析与移植_第3页
基于ecos操作系统的flash驱动程序分析与移植_第4页
基于ecos操作系统的flash驱动程序分析与移植_第5页
资源描述:

《基于ecos操作系统的flash驱动程序分析与移植》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于eCos操作系统的FLASH驱动程序分析与移植0引言  嵌入式系统需要支持的外部设备种类繁多,如何构造运行良好的嵌入式设备的驱动程序,对嵌入式操作系统的实际应用有重要意义。eCos是一种源代码公开的实时嵌人式操作系统,对嵌入式应用具有良好的支持,内核专门设计了便于设备驱动管理和开发的I/O包和DEV包,开发人员可以方便地将自己开发的驱动程序加入其中,与别的系统组件一起进行配置。  1系统目标板简介  硬件目标板是为无人机系统设计的系统开发板,它是从Arca系统测试板经过功能简化设计而来的满足无人机系统要求的目标板。硬件目标板如图1所示。  GT2000支持SRAM,FLASH

2、,ROM,VLIO(静态段支持可变等待时间I/O设备)和SDRAM(同步动态RAM)等外部扩展存储器。GT2000的外部地址空间是按体(bank)划分的,有四个体属于静态存储器区域,由引脚CS0~CS3选择,在将FLASH,SRAM,VLIO(用作其他外设接口)等静态I/O设备地址分别设计在CS0~CS2区域内,由GT2000内部的外部内存访问接口(EMI)控制器中的静态内存访问控制寄存器(SMCR)进行访问控制,分配地址访问接口。  系统目标板选用两片Intel公司的TE28F320的FLASH(16位)并联获得32位总线宽度。Intel公司的TE28F320是32Mb(2M×

3、16b)多功能FLASH,2.7~3.6V单电源供电,读取时间为70ns,封装格式为48-PinTSoP(12mm×20mm)或48-BallTFB-GA,可被擦写10000次。方舟的JTAG仿真器支持TE28F320FLASH,可以通过JTAG接口进行在线读写和擦除,这给调试程序和硬件提供了方便。  FLASH的电路原理图以及GT2000的引脚“DACK[2..1]/MD_MEM[1..0]”设置如图2所示。  2eCos驱动程序的体系结构与驱动程序设计模式  eCos操作系统的设备驱动程序通常包含以下内容:提供一些底层函数,负责完成设备初始化与配置、注册设备,从设备收发数据、

4、控制设备、处理设备中断等,并进行设备管理。eCos操作系统内核支持设备驱动程序的同步、计时、内存管理、缓冲区管理、设备名空间及资源管理等。  eCos系统的I/O包中包含了设备的驱动程序接口模块,全部是以组件的形式存在。设备驱动程序模块支持系统设计的分层结构。设备I/O包中的程序需要使用设备DEV包中的程序,而设备DEV包中的程序需要调用eCos的硬件抽象层包中的底层接口函数,如图3所示。  2.1设备驱动程序用户API  eCos为应用程序提供了一组用户API函数,这些操作包括对设备进行初始化和配置,获取配置信息,对设备进行读写等。设备驱动程序必须使用设备句柄进行设备操作,通过

5、cyg_io_lookup()函数把设备在系统中的惟一名字映射成设备句柄。  2.2eCos驱动程序与内核及HAL的接口  应用程序在使用设备的时候,通过驱动程序的用户API函数访问设备驱动程序,设备驱动程序又调用设备内核API函数与内核和硬件抽象层HAL进行交互,设备驱动程序和内核又通过硬件抽象层HAL对硬件平台进行操作。  eCos内核向设备驱动程序提供调度、时钟、同步、中断等内核服务的支持。在某些嵌入式应用中,部分内核服务并不是必需的。在配置时不选择Kernel包,设备驱动程序的内核服务支持由硬件抽象层提供。  HAL包含所有与平台相关的代码,是eCos操作系统对硬件进行的

6、抽象定义,它直接控制和访问硬件,为eCos内核和高层代码提供服务。  I/O包和DEV包构成了eCos驱动程序的基本框架。设备驱动程序一般分为三个部分,分别为设备表入口DEVTAB_ENTRY、设备I/O函数表DEVIO_TAB和设备I/O函数。I/O包提供抽象的设备操作支持,应用程序访问设备时使用逻辑设备名,每个设备都对应一个惟一的逻辑设备名。DEV包提供设备操作的底层实现,对硬件通过HAL直接操作。  eCos中的所有设备驱动程序都使用设备表入口进行描述。设备表入口使用宏DEVTAB_ENTRY()可以生成一个设备表入口数据结构。其中,_handlers指向DEVIO_TAB

7、LE入口函数。提供用户应用程序的调用支持;_priv指向设备真正的硬件操作数据结构,提供硬件设备与上层软件的交互。设备I/O入口宏定义如下:  2.3设备驱动程序的设计模式  一般来说,eCos提供了三种驱动程序设计模式。设备驱动程序与内核和HAL之间的API接口主要对中断以及中断处理程序的ISR,DSR和线程的同步进行控制和管理。eCos设备驱动程序的中断模块分为三个层次,分别是中断服务程序ISR,中断滞后服务程序DSR和中断线程。中断服务程序ISR在响应中断时立即调用,中断滞

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。