- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARMLinux的底层IO操作的实现研究.pdf
第22I$4M 机电产品开发与刨新 VOI.22,No.4
至里里皇竺Z旦 堕!生!竺竺苎!竺!:竺!!!兰竺竺!!!!!苎!!竺!!型!I竺坚竺竺 生!堕:!呈塑!
文章编号:1002-6673(2009)04—113-03
ARM—Linux的底层IO操作的实现研究
周剑秋
(中冶南方工程技术有限公司,湖北武汉430223)
摘 要:随着嵌入式应用的迅猛发展,各种不同的设备广泛应用于嵌入式系统中,通过设置相应的寄存器
可以控制设备的工作方式,因此了解嵌入式操作系统在相关平台上的Io操作的实现。对于在嵌
入式系统中应用各种设备是至关重要的,本文研究了基于ARM平台S3C2410的嵌入式linux操作
系统的IO操作的实现。
关键词:嵌入式;$3C2410;Linux;IO
中图分类号:TP39文献标识码:A doi:10.3969/j.issn.1002-6673.2009.04.047
内存存取速度对CPU性能是至关重要的。并且因为
0引言 l
它是无边际效应的,可以采用多种方法来进行优化,从
随着开源技术的推广。Linux得到了迅速发展。由而提高系统的效率。常用的方法有:值被缓存、读,写指
于其开源、免费、功能强大、可裁剪以及支持多种平台 令被重编排。当应用于普通的内存时这些优化是透明和
等优良的特性,Linux被广泛的应用于嵌入式系统之中。有益的,可以提高CPU的效率。但是这种优化对正确
的I,o操作可能是致命的,因为它们影响了那些边际效
尤其是基于arm平台的Linux嵌入式系统被广泛的应用
与消费类电子和工控领域中,因此基于arm平台的Lin.应。它们依赖于寄存器存取的顺序。而这种优化却可能
UX嵌入式系统将成为一种发展趋势。本文就以移植到 改变这种顺序,导致设备不能正常工作。因此一个驱动
必须确保没有进行缓冲,并且在存取寄存器时没有发生
$3C2410上的Linux为例。进行分析Linux在ARM上的I
底层的IO实现。 读或写的重新编排。
1.2防止影响“边际效应”的措施
1 S3C2410处理器的IO
对于IO操作而言。如果影响其边际效应可能会不
满足我们希望的IO操作,因此要防止对“边际效应”
$3C2410处理器采用统一编址模式.即10设备和
内存单元统一编址。它与外部设备通信是通过设置相应 产生影响。影响“边际效应”的原因有硬件缓冲。编译
的寄存器来进行的,这些寄存器和内存单元是使用相同 器优化和硬件重新编排。硬件缓冲的问题的解决方法
的地址空间。因此对IO寄存器的操作与读写内存单元 是:当存取FO区时(不管它们是内存还是端I:l区域),
的操作指令是一样的。但是这些IO寄存器和普通的内 底层的硬件被配置(或者自动地或者通过Linux初始化
存单元是不一样的。IO寄存器存在着边际效应。边际效 代码)成禁止任何硬件缓冲。
应是指正确的设置寄存器使得设备生效.对于某些设备 对编译器优化和硬件重编排的解决方法:是在必须
来说,各个寄存器操作的顺序是至关重要的,如果寄存 以一个特殊顺序对硬件进行的操作之间安排一个内存屏
器之间的操作顺序改变,可能造成设备无法正常响应。 障。Linux提供以下宏来解决所有可能的排序问题:
因此对于硬件设备的操作是不能破坏其边际效应的。 #includ
文档评论(0)