- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基干ARM嵌入式系统设计探究
基于ARM的嵌入式系统设计研究 1 嵌入式系统
嵌入式系统是一种具有专业用途的计算机系统,系统以计算机技术作为技术支撑,软件和硬件可以根据实际的应用需求进行设置,适用于对系统功能、稳定性、成本、占用空间以及功耗有较高要求的条件。为了追求系统的高性能,嵌入式系统的软件和硬件都要尽可能的设计为最佳性能,减少冗余部分,在有限的空间,有限的硅片上,实现软硬件的性能最大化。32位ARM嵌入式处理器的性能高于同类,且其能耗很低,其可编程性和可操作性,让系统软件的设计更加方便,能够在现有的硬件基础上,根据所需自由设计软件。目前,32位ARM嵌入式处理器已经在电子产品、无线通信以及网络通信等各个领域得到了非常普遍的应用。嵌入式Linux是一种小型操作系统,其内核经过特殊剪裁,系统模块也是对应功能要求而定制的。嵌入式Linux具有以下特点:内核相对很小,仅占用不到1M的空间;同时支持包括X86在内的三十多种8bit-64bit的MPU和MCU;支持ROM等各类存储器;可以多任务多进程同时进行,具备一定的实时性;全面支持通信网络,具有良好的软件开放性,Linux主机中的软件应用可以自由导入到嵌入式Linux系统中;嵌入式Linux经过多年研发,具备坚实的技术支撑。基于ARM的嵌入式Linux系统,硬件方面主要包括32位ARM内核处理器,存储器以及相关的外部接口和设备,在设计过程中,最需要注意的是ARM选型、Bootloader开发、系统初始化、操作系统固化以及存储器管理等
2 ARM选型
目前,能够适用于嵌入式系统设计的ARM微处理器存在许多系列,ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、Intel的Xscale以及StrongARM。前四个系列是通用型处理器,每一个系列的处理器具备独特的功能和性能,能够应用于各个领域,满足对应的需求。SecurCore系列的处理器的安全性很高,可用于保密程度高的情况。ARM微处理器的内核结构各式各样,能够在不同领域和条件下发挥作用,用户需要根据自己的实际需求,来选择最合适的芯片。例如,如果用户想要在系统中使用标准Linux等操作系统来更方便快捷的进行软件设计,那么最佳的选择是ARM720T以上,并且具备MMU功能的ARM芯片。此外,诸如uCLinux一类的不需要MMU功能支持的操作系统已经研发出来,并在不具备MMU功能的微处理器上获得了成功应用,而且其系统稳定性和功能,都具有较高水平
3 Bootloader开发
Bootloader是嵌入式系统的芯片引导程序,由开发人员应用汇编语言设计出来。Bootloader固化在目标板的ROM中,其功能是启动ROM或RAM中的嵌入式软件程序。在CPU支持的情况下,bootloader在开发时可以在RAM中运行。在基于ARM的嵌入式系统设计过程中,需要结合硬件目标板的相关特性来设计相应的bootloader程序,从而达到初始化处理器和相关硬件的目的。初始化处理器是通过bootloader对处理器中的配置寄存器进行初始化,这很容易实现,例如,在使用ARM处理器的MMU时,只需通过bootloader调用控制命令打开MMU。对于嵌入式系统必备硬件的初始化,一般是对系统内存、Flash ROM以及终端控制器的初始化,此外,从主机下载系统映像需要在硬件板和主机之间通过接口设备连接,系统的接口设备初始化也是由bootloader完成的。例如,一些嵌入式系统硬件板是通过以太网从主机下载系统映像文件的,在这里,bootloader就会使用以太网卡驱动程序来对相关硬件进行初始化,然后再与bootloader客户端程序进行连接,下载映像文件
4 系统初始化
基于ARM的嵌入式系统芯片大多属于复杂的片上系统,这种系统的硬件部分很多都是可以自由配置的,其工作状态和参数属性也是由一定的软件进行设置的。用户在使用应用程序前,需要首先使用对应的启动代码对系统硬件进行初始化,这种初始化任务可由bootloader完成。在系统的初始化中,主要包括三个部分。其一,初始化中断向量表。ARM处理器对中中断向量表的位置有特殊要求,一般来说必须在从0地址开始的32字节的空间内。在ARM处理器的工作过程中,每当发生一个中断,ARM处理器都会将PC指针置为向量表中对应的中断类型的地址值。由于每个中断都只占据向量表一个字节的存储器空间,所以只能存放一条ARM指令,在一般情况下,向量表中并不直接存放ARM指令,而是跳转指令,程序可以由向量表在指令作用下跳转到寄存器的其他地址,然后再进行中断处理。其二,初始化堆栈。ARM具有7种不同的执行状态,每一种状态对应的堆栈指针寄存器都是相互独立的。所以,在程序中调整ARM执行状态需要给每个寄存器定义堆
您可能关注的文档
- 在教育科研陪伴下成长.doc
- 在数学教学中如何培养学生创新思维.doc
- 在数学活动中培养幼儿认知能力.doc
- 在新课改背景下初中语文教学中情感教育探析.doc
- 在智能录播教室上课应注意问题.doc
- 在数学教学中重视生活化数学教育.doc
- 在民族地区医高专五专生中开展气排球教学可行性探析.doc
- 在积极展示中张扬学生个性化数学思维.doc
- 在班队工作中培养学生快乐向上心理品质.doc
- 在现代市场营销框架中浅析新型推销沟通互联.doc
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)