ARM速成教材.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM速成教材

实时操作系统(RTOS) RTOS是一段嵌入在目标代码中的程序,系统复位后首先执行 ,相当于用户的主程序,用户的其它应用程序都建立在RTOS之上。不仅如此,RTOS还是一个标准的内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。 RTOS是针对不同处理器优化设计的高效率实时多任务内核,RTOS可以面对几十个系列的嵌入式处理器MPU、MCU、DSP、SOC等提供类同的API接口,这是RTOS基于设备独立的应用程序开发基础。优秀RTOS上跨处理器平台的程序移植只需要修改1-4 的内容。 在RTOS基础上可以编写出各种硬件驱动 程序、专家库函数、行业库函数、产品库函数,和通用性的应用程序一起,可以作为产品销售,促进行业的知识产权交流,因此RTOS又是一个软件开发平台。 RTOS的基本结构 RTOS最关键的部分是实时多任务内核,它的基本功能包括任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理、旗语管理等,这些管理功能是通过内核服务函数形式交给用户调用的,也就是RTOS的 API。 ARM7启动顺序 ARM7启动过程 嵌入式系统资源有限,程序通常都固化在ROM总运行。 ROM中程序执行前,需要对系统硬件和软件运行环境进行初始化,这些工作是用汇编语言编写的启动程序完成。 启动程序是嵌入式程序的开头部分,应与应用程序一起固化在ROM中,应首先在系统上运行的启动程序应包含各模块中可能出现的所有段类,并合理安排他们的次序。 Boot Loade设计 Boot Loader概念 在嵌入式系统中,通常没有像PC机BIOS那样的固件程序,因此整个系统的加载启动任务就完全由Boot Loader来完成。对于我们的实验开发板,由于flash接的是微处理器Bank0的片选信号。映射的地址为0而实验系统在上电或复位时从地址0开始执行,所以在这个地址处安排系统的Boot Loader程序。由于Boot Loader与硬件结合非常紧密,所以对于不同结构的CPU其Boot Loader程序都是不同的。 Boot Loader总体设计 Stage1\stage2\根文件和映像文件关系如图 Boot Loader的stage1完成以下功能: (1)硬件设备初始化。 (2)设置堆栈。 (3)为加载Boot Loader的stage2准备RAM空间 (4)拷贝Boot Loader的stage2到RAM空间中。 (5)跳转到stage2的C入口点. Boot Loader的stage2必须完成以下功能: (1)初始化本阶段要使用到的硬件设备。 (2)将kernel映像和根文件系统映像从flash上读到RAM空间中。 (3)为内核设置启动参数。 (4)调用内核。 uClinux根文件及系统映象文件 对于uClinux根文件系统的制作则使用uClinux的dist包,在宿主机的Linux环境下通过make menuconfig命令来完成对根文件系统的配置,编译,连接等一系列工作,生成所需要的根文件系统映象文件。 注意: 不同CPU,依赖于CPU体系结构的代码。设备初始化代码都放在stage1中,并且都用汇编语言来实现,以达到短小精悍的目的。而stage2则用C语言来实现,实现系统功能。 Boot Loader实现 Boot Loader Stage1功能 术语解释 映象文件(IMAGE):指一个可以执行的文件,ELF格式. 段(section):描述映象文件的代码或数据块。 RO:是Read-only的简写形式.一般存放的代码。 RW:是Read-write的简写形式。一般是存放初始化的数据。 ZI:是Zero-initialized的简写形式。一般是存放零初始化数据。 输入段(input section):它包含代码、初始化数据或描述了在应用程序运行之前必须要初始化为0的一段内存。 输出段(output section):它包含一系列具有相同R0, RW, ZI属性的输入段。 域(Regions):在一个映象文件中,一个域包含了1-3个输出段。多个域组织在一起就构成了最终的映象文件 1、硬件的初始化 目的:为stage2的执行以及随后的kernel的执行准备好一些基本的硬件环境 1).屏蔽所有的中断。为中断提供服务是操作系统的设备驱动程序的责任,因此在Boot Loader的执行全过程中不必响应任何中断。中断屏蔽可以通过写ARM的CPSR寄存器来完成PI。 2).设置CPU的速度和时钟频率。 3)堆栈初始化。设置堆栈指针是为执行C语言代码作准备。把sp的值设置在RAM空间距最顶端1. 5KB的地方

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档