下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、xscale pxa270在linux下的fpga设备驱动intel公司推出的xscale采纳 v5te结构,是strong arm的升级换代产品。xscale pxa270处理器最高主频可达到624m赫兹,加入了wireless mmx、intel speedstep等新技术,以其高性能、低功耗、多功能等特点在信息家电、工业控制等领域得到了广泛的应用。在控制中,“微处理器”是一种常用的解决计划,fpga(现场可编程门阵列)有编程便利、集成度高、速度快等特点,设计人员可以通过硬件编程的办法来实现fpga芯片各种功能的开发,在我们的一个数控平台的讨论项目中,采纳xscale pxa270作为主c
2、pu,并对其举行fpga扩展,使其具有插补、电机驱动、信号处理、i/o口扩展的功能。以其内核精炼、高效、源代码开放且免费等优势,嵌入式领域得到了广泛的应用。下面以intel xscale pxa270上的 flex/acex的应用为例,具体介绍linux下的fpga设备驱动的实现。1 altera flex/acex芯片结构altera flex/acex芯片是基于查找表lut(lookuptable)原理而实现的,lut本质上就是一个ram。目前fpga中多用法4输入的lut,所以每个lut可以看成一个有4位地址线的16×1的ram。当用户通过原理图或hdl语言描述一个规律以后,f
3、pga开发软件会自动计算规律电路的全部可能的结果,并把结果事先写入ram,这样,每输入一个信号举行规律运算都等于输入一个地址举行查表,找出地址对应的内容,然后输出即可。因为lut主要适合sram工艺生产,所以目前大部分fpga都是基于sram工艺的,而sram工艺的芯片在掉电后信息就会走失,一定要外加1片专用配置芯片(本试验电路用法altera epc2lc20),在上电时,由这个专用配置芯片把数据加载到fpga中然后fpga即可正常工作。因为配置时光很短,因此不会影响系统正常工作,在用法acex1k50之前,应对其举行设计编程,实现相应寄存器及i/o口的功能。有关fpga的具体内容请参阅相关
4、资料。2 intel xscale pxa270处理器的系统存储器接口pxa270处理器的可编程静态存储体系结构1所示。在系统上,acex1k50位于ncs2上,物理地址0x80000000x8001000共4k的静态地址空间,图2表示了intel xscale pxa270与acex1k50的硬件衔接关系。3 linux下acex1k50设备驱动的实现3.1 linux下设备驱动基本原理设备驱动程序是应用程序与硬件之间的一个中间软件层,设备驱动程序为应用程序屏蔽了硬件的详情。这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作一般文件一样对应用设备举行操作,设备驱动程序是内核的一
5、部分,它主要实现的功能有:对设备举行初始化和释放;把数据从内核传送到硬件和从硬件读取数据;读取应用程序传送给设备文件的数据,回送应用程序哀求的数据以及检测和处理设备浮现的错误。linux将设备分为最基本的两大类:一类是字符设备;另一类是块设备,字符设备和块设备的主要区分在于是否用法了缓冲技术,字符设备以单个字节为单位举行挨次读/写操作,通常不用法缓冲技术,块设备为了提高效率,利用一块系统内存作为读/写操作的缓冲区,因为涉及缓冲区管理、调度和同步等问题,实现起来比字符设备复杂得多。linux通过设备文件系统对设备举行管理,各种设备都以文件的形式存放在/dev名目下,称为“设备文件”。应用程序可以
6、像一般文件一样打开、关闭和读/写这些设备文件,为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号,主设备号用来区别不同种类的设备,而次设备号用来区别同一类型的多个设备,linux为全部的设备文件都提供了统一的操作函数接口,办法是用法数据结构struct file_operations,这个数据结构中包括许多操作函数的指针,如open()、close()、read()和write()等,但因为外设的种类较多,操作方式各不相同,struct file_operations结构体中的成员为一系列的接口函数,如用于读/写的read/write函数和用于控制的ioct1等。打开一个文
7、件就是调用这个文件file_operations中的open操作,不同类型的文件(如一般的磁盘数据文件)有不同的file_operations成员函数,接口函数完成磁盘数据块读/写操作,而对于各种设备文件,则终于调用各自驱动程序中的i/o函数举行详细设备的操作,这样,应用程序根本不必考虑操作的是设备还是一般文件,可一律当做文件处理,具有十分清楚 、统一的i/o接口,所以file_operations是文件层次的i/o接口。3.2 acex1k50在linux下设备驱动的实现驱动程序中用法内存映射可以提供应用户程序挺直拜访设备内存的能力。用法内存映射得益处是处理大文件时速度显然快于标准文件i/o
8、,无论读/写,都少了一次用户空间与内核空间之间的复制,在用户空间对acex1k50 fpga设备的拜访是通过内存映射来实现的。acex1k50可以看作是硬件衔接在pxa270微处理器的ncs2上的一段物理地址来寻址。由于有虚拟内存管理单元,所以假如linux下,必需先把物理地址映射到虚拟地址空间,然后才干对该段地址举行读/写。在内核驱动程序的初始化阶段,通过ioremap()将acex1k50的这段物理地址映射到内核虚拟空间;在驱动程序的mmap系统调用中,用法remap_page_range()将该块com映射到用户虚拟空间,这样内核空间和用户空间都能拜访acex1k50的这段被映射后的虚拟
9、地址。因为acex1k50位于ncs2上,参照pxa270静态存储体系结构映射表,其物理起始地址为0x08000000。另外,其设备名称及主次设备号定义如下:其中fpga主设备号定义为零,使得操作系统可以随机为该设备分配主设备号。ioremap()的作为是把一个物理内存地址点映射为一个内核指针,被映射数据的长度由size参数设定,该函数的实质上把一块物理区域二次映射到一个可以从驱动程序里拜访的虚拟地址上去,以下是该函数的定义:voidioremap(unsigned long phys_addr,unsigned long size);设备驱动通过fpga_init()函数初始化fpga设备,
10、终于通过init_module(fpga_init)在内核启动时初始化fpga设备。fpga_init()函数的流程3所示。ioremap()调用的语句如下:pxa270_fpga_base(unsigned long)ioremap(fpga_phy_start,sz_4k);可以通过ioremap()调用的返回值pxa270_fpga_base来推断fpga物理地址到内核虚拟空间是否映射胜利。if(!pxa270_fpga_base)printk(“ioremap pxa270 fpga failedn”);returneinval;向设备文件系统注销fpga设备通过调用cheanup_m
11、odule()函数来实现。其代码如下:在向内核设备文件系统注册该fpga驱动后,还须实现设备驱动的file_operations结构,acex1k50的设备驱动定义了如下file_operations成员函数:其中fpga_open和fpga_release系统调用的功能只容易地实现了fpga设备用法计数器的递增与递减,fpga_ioctl系统调用也只是容易的打印一条没有ioctl控制的信息提醒。这里不再分析实现的详细代码。下面详细分析fpga_mmap的实现过程:fpga_mmap(struct filefilp,struct vm_area_structvma)系统调用允许挺直将fpga设备内存线性地映射到用户进程的地址空间中,fpga_mmap系统调用是通过调用remap_page_range()函数来实现一段线性物理地址的映射,调用remap_page_range()函数需要填写vm_area_struct结构的几个关键字段。4 acex1k50设备驱动在用户程序中的用法当设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 管井房电缆改造合同
- 广告导演聘用合同
- 合同标准质量范文
- 犬耳螨的诊断与治疗
- 2024正规厂房租赁合同书
- 煤矿安全规程
- 2024设备改造的合同范本
- 2024专卖店申请加盟合同模板
- 2024家庭装修全包合同
- 专题06课文理解与填空-2022-2023学年四年级语文上册期末复习知识点精讲精练(部编版)
- 2019新教材人教版生物必修1教材课后习题答案
- 2024年中国白酒行业数字化转型研究报告-36氪-202409
- 《学校主人公:3 校园广播站》教学设计-2024-2025学年五年级上册综合实践活动沪科黔科版
- 外伤急救包扎技术说课课件
- 人教版(2024新版)七年级上册英语全册语法知识点讲义
- 全国青岛版信息技术七年级下册专题一第8课三、《高级统计-数据透视表》教学设计
- 内分泌科品管圈成果汇报提高糖尿病患者健康教育知晓率
- 2024年秋季新人教版七年级数学上册教学课件 第五章 一元一次方程 5.3实际问题与一元一次方程(第4课时)
- 清淡的晚餐(课件)六年级上册劳动北京版
- 妇科内分泌疾病诊断与治疗考核试卷
- 城镇雨污分流项目可行性研究报告
评论
0/150
提交评论