- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 无操作系统的应用软件开发 嵌入式软件系统:无操作系统和有操作系统; 无操作系统包含引导程序和应用程序。 有操作系统在引导程序结束后,要运行操作系统,并将应用程序作为任务添加到操作系统中。 嵌入式操作系统不管是否使用操作系统,都需要一段引导程序bootloader来初始化硬件,为操作系统或应用程序做准备。 引导程序是驻留在磁盘的第一个扇区的程序,例如硬盘的MBR(主引导记录)。在启动过程中,在检测过系统之后,如果系统被设置成为从MBR引导的话,BIOS(基本输入/输出系统)将控制权交给MBR,而驻留在MBR中的程序就是引导程序,它负责将控制权传递给操作系统,以完成启动过程 。 GRUB是功能强大的引导程序,可以引导多种不同类型的操作系统,例如Windows,DOS,Linux,GNU Hurd,*BSD等。 LILO是最流行的引导程序,用来引导多种不同的操作系统。 1.无操作系统的软件运行模式 软件系统开发概述 固化程序到Flash存储器 (3)进行第一次存储器映射 板子刚上电后,只有Flash是可用的(在这里我们不考虑片内SRAM)。SDRAM没有被初始化,是不可用的。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. LDR r0, =ROMCON0 ;把flash映射到0x0--0x20,把sdram映射到0x40--0x140 LDR r1, =rfROMCON0 LDR r2, =rROMCON1 LDR r3, =rROMCON2 LDR r4, =rROMCON3 LDR r5, =rROMCON4 LDR r6, =rROMCON5 LDR r7, =rfSDRAMCON0 LDR r8, =rSDRAMCON1 LDR r9, =rSDRAMCON2 LDR r10,=rSDRAMCON3 LDR r11,=rREFEXTCON STMIA r0, {r1-r11} 将地址从r0处开始的数据内容传送至r1-r11,将各寄存器 的赋值一次性写入相应的特殊功能寄存器。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. (4)从Flash复制程序到SDRAM 第一次映射中SDRAM 0x40 0000~0x140 0000处,由于 SDRAM具有更快的读、写速度,所以将程序从Flash中复制 到SDRAM中执行。 ldr r0, =0x0 ;初始化复制数据的源地址 ldr r1, =0x200000 ;初始化循环次数 ldr r2, =0x400000 ;初始化复制数据的目的地址 flash_copy ;把程序从flash拷贝到sdram ldr r3, [r0], #4 str r3, [r2], #4 subs r1, r1, #4 bne flash_copy Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. (5)进行第二次存储器映射 将SDRAM存储器地址映射成0x0~0x100 0000,将Flash 存储器地址映射到0x120 0000 ~0x140 0000. 由于Flash存储器比SDRAM容量小,读写速度慢,而ARM芯片的硬件构成决定了异常向量必须存放在0x0处, 如果将Flash映射到0x0,将明显减少系统对异常的处理时间,在Flash中不方便对异常向量表的修改通常将异常向量表存放到SDRAM中,因此要进行第二次映射。 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. 实现第二次映射的程序: LDR r0, =ROMCON0 ;把flash映射到0x0--0x20, ; 把sdram映射到0x40--0x140 LDR r1, =rsROMCON0 LDR r2, =rROMCON1 LD
文档评论(0)