当前位置:主页 > 互联网 > 应用程序使用系统的统一调用模块来访问外设‘AG亚博真人’
应用程序使用系统的统一调用模块来访问外设‘AG亚博真人’
时间:2020-11-07 04:54 点击次数:
本文摘要:操作员效率评估在我们的一个项目中,系统集成了FPGA和ARM11作为核心控制器,其中FPGA在ARM11的控制下连接外部高速ADC、DAC和RF器件,构建了GB18000-6C标准的UHFRFID读写控制状态机。

应用层

前言根据Linux分层驱动思想,外设驱动与主机控制器驱动无关,主机控制器驱动不关心外设,外设驱动不关心主机。外围采访核心层的标准化应用于程序接口扩展数据传输,可以在主机和外围设备之间扩展给定的人群。

这种思想拒绝了应用不一定要面试物理地址,而应该通过调用驱动来搭建,以保持应用的可移植性和运营商面试的统一性。应用程序使用系统的统一调用模块来访问外设,如写()读()等功能。应用程序通过调用模块转移到内核函数后,内核使用copy_from_user()获取应用层数据,内核驱动通过分层继续进行物理访问,然后将获取的数据传递回带有copy_to_user()的应用程序调用方。因为驱动程序在外部必须有统一的模块,所以定义了一些结构、链表等机制,从而将应用操作符形式化。

在内核和应用程序之间复制数据并填充结构需要时间。有的时候是按照这个标准来叫的,因为操作人员太长时间无法完成设计目的。操作员效率评估在我们的一个项目中,系统集成了FPGA和ARM11作为核心控制器,其中FPGA在ARM11的控制下连接外部高速ADC、DAC和RF器件,构建了GB18000-6C标准的UHFRFID读写控制状态机。FPGA和ARM11的模块使用SPI,其中ARM11配合三星S3C6410作为SPI的主控,FPGA是SPI的从机,不受S3C6410控制。

在该系统中,SPI模块充当了ARM11和FPGA之间的桥梁。ARM11命令和动作参数被示教至FPGA,FPGA处理状态机启动。FPGA动作结果也通过SPI教授给ARM11。

系统中必须强调arm11与FPGA之间的通信效率。评估通信模块时,使用三星获得的SPI驱动功能,系统工作在533MHz,SPI时钟设置在16MHz。

该程序在linux3.0环境下以读/写方式打开。为了评估效率,使用了另一个GPIO输入脉冲命令运算过程,测试结果显示效率很低。

从应用层继续执行写代码到SPI端口输入时钟,延迟长达72s,SPI运算符后返回应用层的下一条语句也延迟了42s。对于相对较少的数据传输情况,可选的额外等待时间优于实际传输的有效时间。

从前面的数据来看,通过标准库调用严重影响系统性能,不能满足系统的市场需求。通过参考驱动的源代码可以发现,驱动层PCB,包括从应用层到内核的copy_from_user()和从内核到应用层的copy_to_user()临时存储数据,导致继续执行效率较低。

为了提高数据交互的效率,必须尽量绕过数据暂存等时间开销,最坏的情况是需要操作员注册。虽然这种思想与Linux分层驱动思想不一致,但在嵌入式系统中,有时需要执行效率低。如果使用系统的某些特定功能,构建高效的数据交互,完成设计目标是合适的,也是可能的。

linux中没有一个叫mmap的函数,可以把物理地址映射到虚拟地址,这个函数可以在应用程序中调用,而不是属于内核调用的函数,所以可以在应用层使用运营商S3C6410的物理外设。考虑到在特定的嵌入式系统中,特定外设的使用可以由程序控制,可以修改共享设备的物理地址维护,进一步增加代码量,提高访问效率。mmap函数调用实例mmap函数将物理地址映射到用户空间。

下面是对函数参数非常简单的解释:void*mmap(void*addr,size_tlen,intprot,intflags,intfd,off _ toff set);Addr:登录文件不应该同构于进程空间的连接地址,len:同构于用户空间的字节数,prot:登录同构于空间的访问权限,Flags:由以下常量注册:fd:文件同构于用户空间的描述符,offset:文件中同构内存区域的位移值,这个函数同构文件描述符,通过这个函数, 我们可以在应用层中对应的物理地址精确同构之后访问虚拟地址,并且该功能使我们能够在应用层中对给定的物理地址拥有操作员权限。以下代码配有S3C6410的SPI0。因为对于mmap来说是同构的,所以内核有没有SPI驱动并不会影响我们对于SPI0的使用。

但是因为这个程序必须对比研究标准驱动模式和必要的内存访问模式的区别,所以在内核中编译标准SPI驱动。由于S3C6410的大部分引脚都有适配功能,为了让SPI0准确工作,需要给相应的GPIO配备SPI功能(本质上是因为我们编译器的内核是由SPI0驱动的,所以内核程序已经完成了SPI初始化,部分内核没有编译器SPI,所以下面最初配备SPI供参考)。

同时,为了仔细观察和研究SPI的持续执行效率,我们的程序还配备了其他GPIO来输入脉冲,通过示波器仔细评估和观察,另外,我们还使用了几个时间标记来记录操作过程时间,不用示波器就可以评估执行时间。


本文关键词:AG亚博真人,驱动,效率,内核,函数

本文来源:AG亚博真人-www.canerart.com

Copyright © 2006-2020 www.canerart.com. AG亚博真人科技 版权所有  网站地图   xml地图  备案号:ICP备40962728号-7

在线客服 联系方式 二维码

服务热线

0234-129506398

扫一扫,关注我们