chapt 04嵌入式系统程序的设计基础.pptVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Chapt 04 嵌入式系统设计基础 嵌入式硬件的设计 嵌入式系统的bootloader 嵌入式系统的开发流程 嵌入式硬件主要平台的设计包括结构、主要接口、存储器选用方案以及外设、显示等方面的内容。 ??嵌入式硬件开发平台的体系结构 ??外围存储器接口设计方法 ??键盘、LCD等人机交互接口的设计 ??触摸屏的设计 ??以太网设计 ??CAN总线设计 硬件系统 硬件概述 片选CS分布 系统分布 地址空间分布-补充 BootLoader概述 bootloader就是在操作系统内核运行前运行地一段小程序.通过这段小程序,可以对硬件设备,如CPU、SDRAM、Flash、串口等进行初始化,也可以下载文件到系统板、对Flash进行擦除和编程,真正起到引导和加载内核镜像的作用, 但是随着嵌入式系统的发展,bootloader已经逐渐在基本功能的基础上,进行了扩展,bootloader可以更多地增加对具体系统的板级支持,即增加一些硬件模块功能上的使用支持,以方便开发人员进行开发和调试。 从这个层面上看,功能扩展后bootloader可以虚拟地看成是一个微小的系统级的代码包。 Bootloader的启动过程可以是单阶段的,也可以是多阶段的。 通常多阶段的bootloader能提供更为复杂的功能,以及更好的可移植性。 从固态存储设备上启动的bootloader大多数是二阶段的启动过程,也即启动过程可以分为stage 1和stage 2两部分。 Bootloader 的一般作用 对于一个ARM系统来说,本质上,bootloader作为引导与加载内核镜像的“工具”,在实现上,必须提供以下几个功能,更确切地说,必须做到以下几点: (1)?初始化RAM(必需):bootloader必须能够初始化RAM,因为将来系统要通过它保存一些Volatile数据,但具体地实现要依赖与具体的CPU以及硬件系统。 (2)?初始化串口(可选,推荐):bootloader应该要初始化以及使能至少一个串口,通过它与控制台联系进行一些debug的工作;甚至与PC通信。 (3? 启动内核镜像(必需):根据内核镜像保存的存储介质不同,可以有两种启动方式:FALSH启动以及RAM启动;但是无论是哪种启动方式,下面的系统状态必须得到满足: CPU寄存器的设置: ???? R0=0; R1=机器类型; R2=启动参数标记列表在RAM中的起始地址; 这三个寄存器的设置是在最后启动内核时通过启动参数来传递完成的 CPU模式:?? 关闭中断; 属于SVC模式; Bootloader中没有必要支持中断的实现,这属于内核机制以及设备驱动管理的管理范畴;SVC模式是系统的一种保护模式 这样就可以进行一些只能在SVC模式下的操作,例如一些特定寄存器访问操作。 Cache和MMU的设置:?? ?? MMU必须关闭; 数据cache必须关闭; 指令cache可以关闭也可以开启; Bootloader中所有对地址的操作都是使用物理地址,是实在的实地址,不存在虚拟地址,因此MMU必须关闭。Bootloader主要是装载内核镜像,镜像数据必须真实写回SDRAM中,所以数据cache必须关闭; 而对于指令cache,不存在强制性的规定,但是一般情况下,推荐关闭指令cache。 ?Bootloader启动内核镜像的方法是通过跳转语句直接跳转至内核镜像的第一句指令语句。 Boot Loader 的操作模式 Stage 1初始化流程图 Stage 2流程图 2410init.s .global _start//开始执行处 _start: //下面是中断向量 b reset @ Supervisor Mode//重新启动后的跳转 ?? ?? reset: ldr r0,=WTCON /WTCON地址watchdog的控制寄存器 */ ldr r1,=0x0 /*关watchdog*/ str r1,[r0] ldr r0,=INTMSK ldr r1,=0xffffffff /*屏蔽所有中断*/ str r1,[r0] ldr r0,=INTSUBMSK ldr r1,=0x3ff /*子中断也一样*/ str r1,[r0] /*Initialize Ports...for display LED.*/ ldr r0, =GPFCON ldr r1, =0x55aa str r1, [r0] ldr r0, =GPFUP ldr r1, =0xff str r1, [r0] ldr r0,=GPFDAT ldr r1,=POWERO

文档评论(0)

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

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

1亿VIP精品文档

相关文档