基于ARM的GPIO程序设计修改版.docx
- 文档编号:29757427
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:34
- 大小:119.90KB
基于ARM的GPIO程序设计修改版.docx
《基于ARM的GPIO程序设计修改版.docx》由会员分享,可在线阅读,更多相关《基于ARM的GPIO程序设计修改版.docx(34页珍藏版)》请在冰豆网上搜索。
基于ARM的GPIO程序设计修改版
基于ARM的GPIO程序设计
摘要
随着科学技术的发展,嵌入式系统开发已经进入32位时代。
在当前数字信息技术和网络技术的高速发展的后PC时代,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术、娱乐业以及人们地日常生活等方方面面中。
随着国内外嵌入式产品地进一步开发和推广,嵌入式技术越来越和人们地生活密切相关。
Linux由于其代码开放性以及强大的网络功能等特点,在许多的嵌入式网络设备中有着广泛应用,与其他的嵌入式操作系统相比,具有更多的优势。
本文主要介绍了国内外嵌入式系统开发的现状和发展趋势。
并且详细论述了基于ARM.9处理器的硬件结构、嵌入式操作系统以及开发流程。
结合嵌入式开发板S3C2410的GPIO驱动程序的开发,对Linux字符设备驱动程序的组成、实现、调试和发布方法进行了详细地论述.
关键词:
嵌入式系统,Linux操作系统,ARM,GPIO.
Abstract
Withthedevelopmentoftechnology,theEmbeddedSystemhascometotheeraof32-bits.DuringtheperiodofLate-PC,withthehighlydevelopmentofdigitalinformationtechnologyandnetworktechnology,theEmbeddedSystemhaswidelyimmergedintoeveryaspects,suchastechnologyresearch,engineeringdesign,militarytech,kindsofproductsandcommercialart,entertainmentsandpersonallife.Withthedeeperandwiderdevelopmentofworldwideembeddedproducts,theembeddedtechhasbecomemoreandmorerelatedwithpeople’sdailylife.
ThesoftwareisbasedonLinux,whichhasbeenwidelyappliedinembeddedsystemsbecauseofitssignificantadvantages,suchasopencodesandpowerfulnetworksupport,etc.Thisarticlemainlyintroducesthedomesticandinternationalcurrentsituationanddevelopmentofembeddedsystem.Thisdissertationintroducesthehardwarestructure,operatingsystemanddevelopingflowoftheprocessorbasedonARM-9.Thecomponents,implementationanddebuggingofLinuxcharacterdevicedriversarediscussedindetailcombiningwiththedevelopmentofGPIOdriverontheS3C2410embeddeddevelopmentboard
KeyWords:
embeddedsystem,Linuxoperatingsystem,ARM,GPIO.
第一章国内外嵌入式系统开发的现状和发展趋势……………………………
(1)
第二章嵌入式系统概述…………………………………………………………
(2)
2.1嵌入式系统简介………………………………………………………
(2)
2.2嵌入式系统发展历史…………………………………………………(3)
2.3嵌入式系统的特点……………………………………………………(4)
2.4嵌入式系统的体系结构………………………………………………(5)
2.5几种主流嵌入式操作系统分析………………………………………(6)
第三章ARM处理器硬件开发平台………………………………………………(9)
3.1ARM处理器简介………………………………………………………(9)
3.2ARM体系结构简介……………………………………………………(9)
3.3ARM9体系结构………………………………………………………(10)
3.4S3C2410处理器详解…………………………………………………(15)
第四章嵌入式Linux中GPIO驱动程序开发…………………………………(18)
4.1设备管理概述…………………………………………………………(18)
4.2设计思想……………………………………………………………(18)
4.3设备驱动程序…………………………………………………………(18)
4.3.1设备程序的组成…………………………………………………………(19)
4.3.2GPIO驱动程序的开发流程……………………………………………(19)
4.3.3注册模块…………………………………………………………………(22)
4.3.4注销模块…………………………………………………………………(22)
4.3.5一些特定函数的实现……………………………………………(22)
4.4测试本驱动模块……………………………………………………(24)
第五章总结……………………………………………………………………(26)
第一章国内外嵌入式系统开发的现状和发展趋势
随着科学技术的飞速发展,计算机及其相关技术得到进一步的发展,计算将不再局限于传统的PC和服务器环境,网络计算和移动计算将很快成为人们日常生活的一部分,并逐渐呈现普及计算模式。
作为普及计算的支撑技术,嵌入式系统正逐步应用到越来越多的领域,包括智能过程控制、航天航空、交通、飞行控制、通信、多媒体、办公自动化、实时模拟、虚拟现实、医疗电子、军事电子、信息家电等领域。
国内从事嵌入式技术研究比较晚,没有自己生产嵌入式芯片的能力,在嵌入式操作系统方面有自主知道产权的产品很少,一般都使用的是开放源代码的操作系统。
目前主要在应用国外芯片和软件技术进行产品的设计和开发,产品有联想PDA,机顶盒等。
但产品的种类较少,价格较高,实用性不是很强。
很多厂商已经看到了嵌入式产品的巨大市场潜力正加入到对潜入式系统的研究和开发中来,如:
蓝点软件公司已经将嵌入式应用确定为公司未来的业务发展发向,并且成立了蓝点软件(北京)研发中心,主要研发方向是为互联网接入设备、机顶盒、WebTv和客户机开发嵌入式操作系统,目前蓝点软件公司已经为Imel、美国国家半导体、CirrusLogic、Winbond和Toshiba等厂商提供了蓝点嵌入式Linux操作系统。
“863计划”重点支持项目中就有使用Linux作为嵌入式系统开发的方向。
除此以外,中科红旗、中软等公司也同样将嵌入式系统的开发作为自己的主要发展方向之一。
国外嵌入式系统的发展由于起步较早,较为成熟,在处理器生产和研制等方面各大厂商都有自己的系列产品,并且在不断地根据市场需求,研制出新的产品。
在嵌入式操作系统和产品方面,80年代就有了完成特定功能的商用嵌入式操作系统,而嵌入式产品也不断问世。
目前的嵌入式微处理器有:
摩托罗拉系列的嵌入式微处理器及其开发板系列,ARM系列的微处理器和开发板系列。
目前国际上对嵌入式Linux的研究主要集中在三个方面:
内核裁减、实时性和移植性131141151。
国内对嵌入式Linux的研究开发则在体积、能源管理、GUI、开发环境、中文化和驱动程序等方面[1][2]。
第二章嵌入式系统概述
2.1嵌入式系统简介
尼葛洛庞帝2001年访华时的预言“4~5年后,嵌入式智能电脑将是继PC和Internet后的最伟大发明!
”如今,嵌入式系统已成功当今最为热门的领域之一,它迅猛的发展势头引起了社会各方面人士的关注。
如家用电器、手持通信设备、信息终端、仪器仪表、汽车、航天航空、军事装备、制造工业、过程控制等。
今天,嵌入式系统带来的工业年产值已超过1万亿美元。
用市场观点来看,PC已经从高速增长进入到平稳发展时期,其年增长率由20世纪90年代中期的35%逐年下降,使单纯由PC机带领电子产业蒸蒸日上的时代成为历史。
根据PC时代的概念,美国BusinessWeek杂志提出了“后PC时代”概念,即计算机、通信和消费产品的技术将结合起来,以3C产品的形式通过Internet进入家庭。
这必将培育出一个庞大的嵌入式应用市场。
那么究竟什么是嵌入式系统呢?
按照电器工程协会的定义,嵌入式系统是用来控制或者监视机器、装置、工厂等大规模系统的设备。
这个定义主要是从嵌入式系统的用途方面来进行定义的。
那么,下面再来看一个在多数书籍资料中的关于嵌入式系统的定义:
嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。
它具有“嵌入性”、“专用性”与“计算机系统”的三个基本要素。
从这个定义可以看出,人们平常所广泛使用的手机、PDA、MP3、机顶盒都属于嵌入式系统设备;而车载GPS系统、机器人也是属于嵌入式系统。
图2-1展出了人们日常生活中形形色色的嵌入式产品。
的确,嵌入式系统已经进入了人们生活的方方面面[3]。
PDA
Mp3
车载GPRS接收机
internet
智能通讯服务器
无线网络摄像机
图2-1生活中的嵌入式设备
2.2嵌入式系统发展历史
嵌入式系统经过30年的发展历程,主要经历了4个阶段。
第1阶段是以单芯片为核心的可编程控制器形式的系统。
这类系统大部分应用于一些专业性强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制。
这一阶段系统的主要特点是:
系统结构和功能相对单一,处理效率较低,存储容量较小,乎没有用户接口。
由于这种嵌入式系统使用简单、价格低,因此以前在国内工业领域应用较为普遍,但是现在已经远不能适应高效的、需要大容量存储的现代工业控制和新兴信息家电等领域的需求。
第2阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。
其主要特点是:
CPU种类繁多,通用性比较弱;系统开销小,效率高;操作系统达到一定的兼容性和扩展性;应用软件较专业化,用户界面不够友好。
第3阶段是以嵌入式操作系统为标志的嵌入式系统。
其主要特点是:
嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、支持多任务、支持网络应用、具备图形窗口和用户界面;具有大量的应用程序接口API,开发应用程序较简单;嵌入式应用软件丰富。
第4阶段是以Internet为标志的嵌入式系统。
这是一个正在迅速发展的阶段。
目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术结合日益密切,嵌入式设备与Internet的结合将代表嵌入式系统的未来。
2.3嵌入式系统的特点。
(1)面向特定应用的特点。
嵌入式系统与通用型系统的最大区别就在于嵌入式系统大多工作在为特定用户群设计的系统中,因此它通常都具有低功耗、体积小、集成度高等特点,并且可以满足不用应用的特定需求。
(2)嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
(3)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。
这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统,从事嵌入式系统开发的人才也必须是复合型人才。
(4)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘中。
(5)嵌入式开发的软件代码尤其要求高质量、高可靠性,由于嵌入式设备所处的环境往是无人职守或条件恶劣的情况下,因此,其代码必须有更高的要求。
(6)嵌入式系统本身不具备二次开发能力,即设计完成后用户通常不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行再次开发[4]。
2.4嵌入式系统的体系结构
嵌入式系统作为一类特殊的计算机系统,一般包括以下3个方面:
硬件设备、嵌入式操作系统和应用软件。
它们之间的关系如图2-2所示。
硬件设备包括嵌入式处理器和外围设备。
其中的嵌入式处理器(CPU)是嵌入式系统的核心部分,它与通用处理器最大的区别在于,嵌入式处理器大多工作在为特定用户群所专门设计的系统中,它将通用处理器中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
如今,全世界嵌入式处理器已经超过1000多种,流行的体系结构有30多个系列,其中以ARM、PowerPC、MC68000、MIPS等使用得最为广泛。
应用软件
嵌入式操作系统
嵌入式处理器
外围设备
硬件设备
图2-2嵌入式体系结构图
外围设备是嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其他部件。
目前常用的嵌入式外围设备按功能可以分为存储设备(如RAM、SRAM、Flash等)、通信设备(如RS-232接口、SPI接口、以太网接口等)和显示设备(如显示屏等)3类。
嵌入式操作系统从嵌入式发展的第3阶段起开始引入。
嵌入式操作系统不仅具有通用操作系统的一般功能,如向上提供对用户的接口(如图形界面、库函数API等),向下提供与硬件设备交互的接口(硬件驱动程序等),管理复杂的系统资源,同时,它还在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,具有更加鲜明的特点。
应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。
由于嵌入式系统自身的特点,决定了嵌入式应用软件不仅要求做到准确性、安全性和稳定性等方面需要,而且还要尽可能地进行代码优化,以减少对系统资源的消耗,降低硬件成本。
2.5几种主流嵌入式操作系统分析
1.嵌入式Linux
嵌入式Linux(EmbeddedLinux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。
在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。
这与它自身的优良特性是分不开的。
嵌入式Linux同Linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。
另外,为了更好地适应嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部分改进,如下所示。
●改善的内核结构
Linux内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这样虽然能够使系统的各个部分直接沟通,提高系统响应速度,但与嵌入式系统存储容量小、资源有限的特点不相符合。
因此,在嵌入式系统经常采用的是另一种称为微内核(Microkernel)的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际需要进行取舍。
这样就大大减小了内核的体积,便于维护和移植。
●提高的系统实时性
由于现有的Linux是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。
因此,利用Linux作为底层操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等各种领域。
嵌入式Linux同Linux一样,也有众多的版本,其中不同的版本分别针对不同的需要在内核等方面加入了特定的机制。
嵌入式Linux的主要版本如表2-1所示。
表2-1嵌入式Linux主要版本
版本
简单介绍
mCLinux
开放源码的嵌入式Linux的典范之作。
它主要是针对目标处理器没有存储管理单元MMU,其运行稳定,具有良好的移植性和优秀的网络功能,对各种文件系统有完备的支持,并提供标准丰富的API
RT-Linux
由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。
它已有广泛的应用
Embedix
根据嵌入式应用系统的特点重新设计的Linux发行版本。
它提供了超过25种的Linux系统服务,包括Web服务器等。
此外还推出了Embedix的开发调试工具包、基于图形界面的浏览器等。
可以说,Embedix是一种完整的嵌入式Linux解决方案
XLinux
采用了“超字元集”专利技术,使Linux内核不仅能与标准字符集相容,还涵盖了12个国家和地区的字符集。
因此,XLinux在推广Linux的国际应用方面有独特的优势
PoketLinux
它可以提供跨操作系统并且构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台
红旗嵌入式Linux
由北京中科院红旗软件公司推出的嵌入式Linux,它是国内做得较好的一款嵌入式操作系统。
目前,中科院计算机研究所自行开发的开放源码的嵌入式操作系统——EasyEmbeddedOS(EEOS)也已经开始进入实用阶段了
为了不失一般性,本书说所用的嵌入式Linux是标准内核裁减的Linux,而不是上表中的任何一种。
2.VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它是在当前市场占有率最高的嵌入式操作系统。
VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们造成的延迟很短。
另外VxWorks提供的多任务机制,对任务的控制采用了优先级抢占(Linux2.6内核也采用了优先级抢占的机制)和轮转调度机制,这充分保证了可靠的实时性,并使同样的硬件配置能满足更强的实时性要求。
另外VxWorks具有高度的可靠性,从而保证了用户工作环境的稳定。
同时,VxWorks还有很完备强大的集成开发环境,这也大大方便了用户的使用。
但是,由于VxWorks的开发和使用都需要交高额的专利费,因此大大增加了用户的开发成本。
同时,由于VxWorks的源码不公开,造成它部分功能的更新(如网络功能模块)滞后。
3.QNX
QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一,它具有独一无二的微内核实时平台,是建立在微内核和完全地址空间保护基础之上的,它同样具有实时性强、稳定可靠的优点。
4.WindowsCE
WINDOWSCE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。
它是精简的Windows95。
WindowsCE的图形用户界面相当出色。
WindowsCE具有模块化、结构化和基干Win32应用程序接口以及与处理器无关等特点。
它不仅继承了传统的Windows图形界面,并且用户在WindowsCE平台上可以使用Windows95/98上的编程工具(如VisualBasic、Visual++等)、也可以使用同样的函数、使用同样的界面风格,使绝大多数Windows上的应用软件只需简单的修改和移植就可以在WindowsCE平台上继续使用。
但与VxWorks相同,WindowsCE也是比较昂贵的。
5.PalmOS
PalmOS在PDA和掌上电脑有着很大的用户群。
PlamOS最明显的特点在精简,它的内核只有几千个字节,同时用户也可以方便地开发定制,具有较强的操作性
第三章ARM处理器硬件开发平台
3.1ARM处理器简介
ARM是一类嵌入式微处理器,同时也是一个公司的名字。
ARM公司于1990年11月成立于英国剑桥,它是一家专门从事16/32位RISC微处理器知识产权设计的供应商。
ARM公司本身不直接从事芯片生产,而只是授权ARM内核,再给生产和销售半导体的合作伙伴,同时也提供基于ARM架构的开发设计技术。
世界各大半导体生产商从ARM公司处购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
ARM公司从成立至今,在短短几十年的时间就占据了75%的市场份额,如今,ARM微处理器及技术的应用几乎已经深入到各个领域。
采用ARM技术的微处理器现在已经遍及各类电子产品,汽车、消费娱乐、影像、工业控制、海量存储、网络、安保和无线等市场。
到2001年就几乎已经垄断了全球RISC芯片市场,成为业界实际的RISC芯片标准。
ARM的成功,一方面得益于它独特的公司运作模式,另一方面,当然来自于ARM处理器自身的优良性能。
ARM处理器有如下特点。
●体积小、低功耗、低成本、高性能。
●支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。
●大量使用寄存器,指令执行速度更快。
●大多数数据操作都在寄存器中完成。
●寻址方式灵活简单,执行效率高。
●指令长度固定。
。
3.2ARM体系结构简介
1.ARM微处理器工作状态
ARM微处理器的工作状态一般有两种,并可在两种状态之间切换。
●第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令。
●第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
2.ARM体系结构的存储格式
●大端格式:
在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
●小端格式:
与大端存储格式相反,在小端存储格式中,低地址中存放是字数据的低字节,高地址存放的是字数据的高字节。
3.ARM处理器模式
ARM微处理器支持7种运行模式,分别如下。
●用户模式(usr):
ARM处理器正常的程序执行状态。
●快速中断模式(fiq):
用于高速数据传输或通道处理。
●外部中断模式(irq):
用于通用的中断处理。
●管理模式(svc):
操作系统使用的保护模式。
●数据访问终止模式(abt):
当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。
●系统模式(sys):
运行具有特权的操作系统任务。
3.3ARM体系机构
1.ARM微处理器系列简介
ARM微处理器系列主要特点及其主要应用领域如表4-2所示。
表4-2ARM微处理器系列
型号
主要特点
ARM7
低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。
主要应用领域为:
工业控制、Internet设备、网络和调制解调器设备、移动电话等多
种多媒体和嵌入式应用
ARM9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM GPIO 程序设计 修改