第5章无操作系统的应用软件开发.ppt
《第5章无操作系统的应用软件开发.ppt》由会员分享,可在线阅读,更多相关《第5章无操作系统的应用软件开发.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 无操作系统的应用软件开发无操作系统的应用软件开发嵌入式软件系统:无操作系统和有操作系统;嵌入式软件系统:无操作系统和有操作系统;u无操作系统包含无操作系统包含引导程序引导程序和应用程序。和应用程序。u有操作系统在引导程序结束后,要运行操作系统,并有操作系统在引导程序结束后,要运行操作系统,并将应用程序作为任务添加到操作系统中。将应用程序作为任务添加到操作系统中。u嵌入式操作系统不管是否使用操作系统,都需要一段嵌入式操作系统不管是否使用操作系统,都需要一段引导程序引导程序bootloader来初始化硬件,为操作系统或应用程来初始化硬件,为操作系统或应用程序做准备。序做准备。n n引导
2、程序是驻留在磁盘的第一个扇区的程序,例如硬盘引导程序是驻留在磁盘的第一个扇区的程序,例如硬盘引导程序是驻留在磁盘的第一个扇区的程序,例如硬盘引导程序是驻留在磁盘的第一个扇区的程序,例如硬盘的的的的MBRMBR(主引导记录)。在启动过程中,在检测过系统(主引导记录)。在启动过程中,在检测过系统(主引导记录)。在启动过程中,在检测过系统(主引导记录)。在启动过程中,在检测过系统之后,如果系统被设置成为从之后,如果系统被设置成为从之后,如果系统被设置成为从之后,如果系统被设置成为从MBRMBR引导的话,引导的话,引导的话,引导的话,BIOSBIOS(基(基(基(基本输入本输入本输入本输入/输出系统)
3、将控制权交给输出系统)将控制权交给输出系统)将控制权交给输出系统)将控制权交给MBRMBR,而驻留在,而驻留在,而驻留在,而驻留在MBRMBR中的程序就是引导程序,它负责将控制权传递给操作系中的程序就是引导程序,它负责将控制权传递给操作系中的程序就是引导程序,它负责将控制权传递给操作系中的程序就是引导程序,它负责将控制权传递给操作系统,以完成启动过程统,以完成启动过程统,以完成启动过程统,以完成启动过程 。n nGRUBGRUB是功能强大的引导程序,可以引导多种不同类型是功能强大的引导程序,可以引导多种不同类型是功能强大的引导程序,可以引导多种不同类型是功能强大的引导程序,可以引导多种不同类型
4、的操作系统,例如的操作系统,例如的操作系统,例如的操作系统,例如Windows,DOS,Linux,GNUWindows,DOS,Linux,GNU HurdHurd,*BSD,*BSD等。等。等。等。n nLILOLILO是最流行的引导程序,用来引导多种不同的操作是最流行的引导程序,用来引导多种不同的操作是最流行的引导程序,用来引导多种不同的操作是最流行的引导程序,用来引导多种不同的操作系统。系统。系统。系统。1.无操作系统的软件运行模式无操作系统的软件运行模式A A应用程序和引导程序在一个工程中一起被编译成应用程序和引导程序在一个工程中一起被编译成应用程序和引导程序在一个工程中一起被编译成
5、应用程序和引导程序在一个工程中一起被编译成.bin.bin文件,烧写到文件,烧写到文件,烧写到文件,烧写到FlashFlash的的的的0 x00 x0地址地址地址地址B B应用程序和引导程序分别被编译为两个应用程序和引导程序分别被编译为两个应用程序和引导程序分别被编译为两个应用程序和引导程序分别被编译为两个.bin,.bin,引导程引导程引导程引导程序烧写到存储器地址序烧写到存储器地址序烧写到存储器地址序烧写到存储器地址0 x00 x0,应用程序烧写到某个地址,应用程序烧写到某个地址,应用程序烧写到某个地址,应用程序烧写到某个地址C C扩展引导程序,使其初始化功能结束后可以跳转到一扩展引导程序
6、,使其初始化功能结束后可以跳转到一扩展引导程序,使其初始化功能结束后可以跳转到一扩展引导程序,使其初始化功能结束后可以跳转到一个函数入口,也可以跳转到指定地址个函数入口,也可以跳转到指定地址个函数入口,也可以跳转到指定地址个函数入口,也可以跳转到指定地址D D应用程序编译为应用程序编译为应用程序编译为应用程序编译为.axfaxf文件,下载到文件,下载到文件,下载到文件,下载到SDRAMSDRAM存储器中存储器中存储器中存储器中运行。运行。运行。运行。应用程序应用程序应用程序应用程序引导程序引导程序引导程序引导程序SDRAMSDRAMflashflash2MB16MB0 x000 00000 x
7、100 00000 x120 0000IMPORT C_EntryBL C_Entry无操作系统运行模式无操作系统运行模式A应用程序应用程序应用程序应用程序引导程序引导程序引导程序引导程序SDRAMSDRAMflashflash2MB16MB0 x000 00000 x100 00000 x120 00000 x001 0000LDR R1,=0 x10000MOV PC,R1无操作系统的软件运行模式无操作系统的软件运行模式B目前应用在手机上的操作系统主要目前应用在手机上的操作系统主要有有PalmOS、Symbian、Windows CE和和Linux四种。四种。Palm OS操作系统操作系统
8、 Palm OS操作系统由操作系统由Palm公司自行开发的,并授权给公司自行开发的,并授权给Handspring、索尼和高通等设备厂家,这种操作系统更、索尼和高通等设备厂家,这种操作系统更倾向于倾向于PDA的操作系统。的操作系统。Palm OS在在PDA市场占有主导地位。市场占有主导地位。Palm的产品线本的产品线本身就包括智能手机,又宣布与最早的智能手机开发者身就包括智能手机,又宣布与最早的智能手机开发者Handspring购并,同时将软件部门独立。购并,同时将软件部门独立。Symbian是一个实时性、多任务的纯是一个实时性、多任务的纯32位操作系统,具有功位操作系统,具有功耗低、内存占用少
9、等特点,非常适合手机等移动设备使用,耗低、内存占用少等特点,非常适合手机等移动设备使用,经过不断完善,可以支持经过不断完善,可以支持GPRS、蓝芽、蓝芽、SyncML、以及、以及3G技术。最重要的是它是一个标准化的开放式平台,任何人都技术。最重要的是它是一个标准化的开放式平台,任何人都可以为支持可以为支持Symbian的设备开发软件。的设备开发软件。Symbian系统系统 第一款基于第一款基于Symabian系统的手机是系统的手机是2000年上市的某款爱立年上市的某款爱立信手机。而真正较为成熟的同时引起人们注意的则是信手机。而真正较为成熟的同时引起人们注意的则是2001年年上市的诺基亚上市的诺
10、基亚9210,它采用了,它采用了Crystal分支的系统。而分支的系统。而2002年推出的诺基亚年推出的诺基亚7650与与3650则是则是Symbian Pearl分系的机分系的机型,其中型,其中7650是第一款基于是第一款基于2.5G网的智能手机产品,他们都网的智能手机产品,他们都属于属于Symbian的的6.0版本。版本。Windows CE系统系统WindowsCE系统包括系统包括PocketPC和和Smartphone,前者,前者针对无线针对无线PDA,后者专为手机,已有多个来自,后者专为手机,已有多个来自IT业的新手业的新手机厂商使用,增长率较快。机厂商使用,增长率较快。Pocket
11、PC2002推出了应用在手机上的推出了应用在手机上的PhoneEdition(电话版本),国内贴牌机多普达(电话版本),国内贴牌机多普达686就使用了这就使用了这个系统。不过它在移动通讯方面的功能并不是很全面。针个系统。不过它在移动通讯方面的功能并不是很全面。针对这种情况,微软于对这种情况,微软于2002年底发布了专门为手机开发的操年底发布了专门为手机开发的操作系统作系统SmartPhone2002,像,像symbianPearl一样,是专为一样,是专为移动通讯设备开发的系统。移动通讯设备开发的系统。虽然从众多手机厂商的反应来看,全球手机五大厂商中虽然从众多手机厂商的反应来看,全球手机五大厂商
12、中只有三星购买了微软的软件许可,所以其在手机市场上占只有三星购买了微软的软件许可,所以其在手机市场上占有率还很低。有率还很低。Linux系统系统 Linux系统件是一个源代码开放的操作系统,目前已经有系统件是一个源代码开放的操作系统,目前已经有很多版本流行。但尚未得到较广泛的支持。很多版本流行。但尚未得到较广泛的支持。操作系统:操作系统:Symbian S40 诺基亚诺基亚 6600S诺基亚诺基亚5230XM Symbian OS 9.3 版版 S60 第三版第三版 诺诺基亚基亚 6700s Palm Web OS palm Pixi Plus 夏新夏新WinCE手机手机E8 Windows
13、CE操作系统操作系统 摩托罗拉摩托罗拉 V8 系统:系统:Linux 摩托罗拉摩托罗拉 A1600黄金版黄金版 软件系统开发概述软件系统开发概述嵌入式系统的嵌入式系统的Bootloader,类似于,类似于PC上的上的 BIOS,系统上电复位后,首先执行的一段程序,用以完成系统上电复位后,首先执行的一段程序,用以完成整个系统的启动加载任务。整个系统的启动加载任务。1.Bootloader1.Bootloader的基本任务的基本任务的基本任务的基本任务Bootloader一般是被烧录或者下载到一般是被烧录或者下载到bootrom的的0 x0地址处,作为上电后执行的第一部分指令,地址处,作为上电后执
14、行的第一部分指令,bootloader需要完成两个任务:需要完成两个任务:(1).memory remap,(2).把把kernel装载到装载到SDRAM里合适的位置里合适的位置上去。在完成这两个任务后,上去。在完成这两个任务后,bootloader就就“功成功成身退身退”了。了。2 2 4510B4510B开发板上的存储介质开发板上的存储介质开发板上的存储介质开发板上的存储介质 n一块一块4510B开发板上,一般有三种存储介质:开发板上,一般有三种存储介质:FLASH,SDRAM和和4510片内的片内的SRAM。nFLASH一般是只读的(只在运行的时候),而且一般都作为一般是只读的(只在运行
15、的时候),而且一般都作为bootrom使用,因为使用,因为FLASH 里存储的内容在掉电的时候也不会里存储的内容在掉电的时候也不会丢失,所以丢失,所以flash很适合作为很适合作为bootrom,用来保存,用来保存bootloader。nSDRAM,是可读写的存储介质,速度比,是可读写的存储介质,速度比FLASH快的多,在快的多,在系统运行的时候,系统运行的时候,SDRAM是主要的存储介质。但是主要的存储介质。但SDRAM里里的数据在掉电后即消失,无法用来保存数据。所以每次启动的数据在掉电后即消失,无法用来保存数据。所以每次启动的时候都需要的时候都需要bootloader将内核装重新装载到将内
16、核装重新装载到SDRAM里去。里去。n在在4510的片内还集成了的片内还集成了8k的的SRAM,SRAM也是可读写的,也是可读写的,一般作为系统的一般作为系统的cache使用。使用。3 3一般程序结构一般程序结构一般程序结构一般程序结构 一般的可执行程序都包括代码段、数据段和一般的可执行程序都包括代码段、数据段和BSS段。也可段。也可以简单的看作由两部分组成:以简单的看作由两部分组成:RO段和段和RW段。段。nRO段一般包括代码段和一些常量,在运行的时候是只读段一般包括代码段和一些常量,在运行的时候是只读的。的。nRW段包括一些全局变量和静态变量,在运行的时候是可段包括一些全局变量和静态变量,
17、在运行的时候是可以改变的(读写)。如果有部分全局变量被初始化为零,以改变的(读写)。如果有部分全局变量被初始化为零,则则RW段里还包括了段里还包括了ZI段。段。RO:Read Only RW:Read Write ZI:Zero Init nRO段是只读的,在运行的时候不可以改变,所以,在运行段是只读的,在运行的时候不可以改变,所以,在运行的时候,的时候,RO段可以驻留在段可以驻留在Flash里(当然也可以在里(当然也可以在SDRAM或者或者SRAM里了)。而里了)。而RW段是可以读写的,所以,在运行段是可以读写的,所以,在运行的时候必须被装载到的时候必须被装载到SDRAM或者或者SRAM里。
18、里。在在ADS里,有一些预先定义了的变量可以用(里,有一些预先定义了的变量可以用(linker defined symbol)。在下面的实现里,用到了几个预定)。在下面的实现里,用到了几个预定义的变量:义的变量:Image$RO$Base 该变量指定了该变量指定了RO段的段的 BASE Image$RO$Limit 该变量指定了该变量指定了RO段的段的 Limit Image$RW$Base 该变量指定了该变量指定了RW段的段的 BASE Image$RW$Limit 该变量指定了该变量指定了RW段的段的 Limit Image$ZI$Base 该变量指定了该变量指定了ZI段的段的 BASE
19、Image$ZI$Limit 该变量指定了该变量指定了ZI段的段的 Limit Image$RO$Limit 减减 Image$RO$Base 等于等于RO段段的大小的大小 Image$RW$Limit 减减 Image$RW$Base 等于等于RW段的大小段的大小 Image$ZI$Limit 减减 Image$ZI$Base 等于等于ZI段的段的大小大小 4.4.程序的实现与分析:程序的实现与分析:程序的实现与分析:程序的实现与分析:(1)进入)进入SVC32工作模式,并且禁止所有的中断工作模式,并且禁止所有的中断地址地址地址地址异常异常异常异常进入模式进入模式进入模式进入模式0 x000
20、0 00000 x0000 0000复位复位复位复位管理模式管理模式管理模式管理模式0 x0000 00040 x0000 0004未定义指令未定义指令未定义指令未定义指令未定义模式未定义模式未定义模式未定义模式0 x0000 0000 x0000 0008 8软件中断软件中断软件中断软件中断管理模式管理模式管理模式管理模式0 x0000 0000 x0000 000C C中止(预取指令)中止(预取指令)中止(预取指令)中止(预取指令)中止模式中止模式中止模式中止模式0 x0000 000 x0000 001010中止(中止(中止(中止(数据数据数据数据)中止模式中止模式中止模式中止模式0 x
21、0000 000 x0000 001 14 4保留保留保留保留保留保留保留保留0 x0000 00180 x0000 0018IRQIRQIRQIRQ0 x0000 0010 x0000 001C CFIQFIQFIQFIQ异常向量表异常向量表当异常发生时,处理器当异常发生时,处理器PC指针会强制性跳转到固定的地址处,指针会强制性跳转到固定的地址处,根据异常的类型不同,各地址也各部相同。根据异常的类型不同,各地址也各部相同。CODE32AREA Init,CODE,READONLYENTRY B Reset_Handler;启动后跳转到标号启动后跳转到标号 ;Reset_Handler处处 N
22、OP ;未定义指令中断未定义指令中断NOP ;软件中断软件中断NOP ;预取指令终止预取指令终止NOP ;数据终止数据终止NOP ;保留保留NOP ;IRQ中断中断NOP ;FIQ中断中断n没有使用中断时,在中断向量表处可存放没有使用中断时,在中断向量表处可存放NOP指令,需要使用指令,需要使用中断向量时,如中断向量时,如IRQ中断时,在相应的中断向量地址处存放一中断时,在相应的中断向量地址处存放一条跳转到中断服务程序的跳转指令即可。条跳转到中断服务程序的跳转指令即可。NOP ;未定义指令中断未定义指令中断NOP ;软件中断软件中断NOP ;预取指令终止预取指令终止NOP ;数据终止数据终止N
23、OP ;保留保留B IRQHandler ;IRQ中断中断NOP ;FIQ中断中断(2 2)初始化系统配置寄存器)初始化系统配置寄存器)初始化系统配置寄存器)初始化系统配置寄存器系统配置寄存器系统配置寄存器SYSCFG决定了编址空间中特殊功能寄存器组决定了编址空间中特殊功能寄存器组的起始地址,以及片内的起始地址,以及片内SRAM的使用方式和起始地址,应首先的使用方式和起始地址,应首先对其初始化。(基址为对其初始化。(基址为0 x3FF 0000)寄存器寄存器寄存器寄存器偏移地址偏移地址偏移地址偏移地址 描述描述描述描述复位值复位值复位值复位值ROMCON0ROMCON00 x30140 x30
24、14ROM/SRAM/FlashROM/SRAM/Flash组组组组0 0控制寄存控制寄存控制寄存控制寄存器器器器0 x2000 00600 x2000 0060ROMCON1ROMCON10 x30180 x3018ROM/SRAM/FlashROM/SRAM/Flash组组组组1 1控制寄存控制寄存控制寄存控制寄存器器器器0 x0000 00600 x0000 0060ROMCON2ROMCON20 x301C0 x301CROM/SRAM/FlashROM/SRAM/Flash组组组组2 2控制寄存控制寄存控制寄存控制寄存器器器器0 x0000 00600 x0000 0060ROMCO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 应用软件 开发
限制150内