文档详情

第7章 嵌入式操作系统及其移植(第二版)

hjk****65
实名认证
店铺
2024-11-28
PPT
1.46MB
约20页
第7章 嵌入式操作系统及其移植(第二版)_第1页
1/20
第7章 嵌入式操作系统及其移植(第二版)_第2页
2/20
第7章 嵌入式操作系统及其移植(第二版)_第3页
3/20

单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,,*,单击此处编辑母版标题样式,,第,7,章嵌入式操作系统及其移植,嵌入式操作系统,CLinux,3,7.1,嵌入式系统的,BootLoader,3,7.3,嵌入式操作系统,C,/OS-II,3,7.2,7.1,嵌入式操作系统,CLinux,1.CLinux,背景,Clinux,从,Linux2.0/2.4,内核派生,而来,沿袭了主流,Linux,的绝大部分特性;,专门针对,没有,MMU,的,CPU,运行,Clinux,操作系统的用户可以使用几乎所有的,Linux,API,函数,返回,CLinux,概述,2.,CLinux,特点,(1),通用,Linux API,(2),内核体积,512 KB,(3),内核,+,文件系统,900 KB,(4),完整的,TCP/IP,协议栈,(5),支持大量其它的网络协议,(6),支持各种文件系统,包括,NFS,、,ext2,、,ROMfs,and JFFS,、,MS-DOS,和,FAT16/32,Micro(,微小,),的意思,C,是,Control,的缩写,CLinux,是为微控制领域量身定做的,Linux,版本,CLinux,体系结构,内核采用的是单一内核结构,非抢占式的,控制,CPU,资源的分配,基于优先级的抢占式多任务,管理计算机的内存资源,VFS,,逻辑文件系统,设备驱动程序,通信方式有:管道,(pipe),、文件锁、,System V IPC,、,信号(,signal,)及共享内存,内核源代码的绝大部分是各种驱动程序,支持多种网络协议,如,IP,、,IPV6,、,IPX,、,Apple talk,及,Bluetooth,;并且支持路由、防火墙过滤等网络设备功能;提供标准的,BSD socket,编程接口,CLinux,的移植,1.CLinux,内核的移植可以分为:,2.,CLinux,发行版本中已经包含,S3C44B0X ARM7TDMI,处理器的移植包,因此,只需进行,CLinux,板级移植,。

板级移植:,对于,CLinux,发行版本中已经支持的嵌入式,处理器通常只需要针对板级硬件进行适当的修改即可;,片级移植:,对于,CLinux,发行版本中没有支持的处理器,则需要添加相应处理器的内核移植;,CLinux,内核移植方法,(1),1,内核移植的主要任务,(,1,),配置内核,(,2,),编译内核,(,3,),下载、运行、调试内核,2,Clinux,调试手段,(1),通过串口将显示信息发送到主机,由主机端超级 终端工具接收,;,同时在超级终端输入数据,然后由,Clinux,接收,;,(2),通过串口将调试信息打印到超级终端,CLinux,内核移植方法,(2),3.,CLinux,内核移植主要过程,(,1,)内核配置,(,2,)体系结构相关代码修改,(,3,)连接脚本,(,4,)中断处理,(,5,)加载文件系统,(,6,)编写驱动程序,(,7,)编译,Clinux,文件系统,7.2,嵌入式操作系统,C,/OS-II,C/OS-,(,micro controller OS II,)是免费的,源代码是开放的,特点如下:,(,1),C/OS-II,是一个可裁减的、源码开放的、结构小巧、可剥 夺型的实时多任务内核(一个进程对处理器的使用权是否强制交权给其它进程),;,(,2),C/OS-II,中最多可以支持,64,个任务,分别对应优先级,063,,其中,0,为最高优先级,;,(,3),C/OS-II,已成功移植到近,40,多种处理器体系上,;,(,4),C/OS-II,结构小巧,最小内核可编译至,2K;,(,5),C/OS-,实际上是一个实时操作系统内核,没有提供输入输出管理、文件系统、网络之类的额外服务。

返回,7.2,嵌入式操作系统,C,/OS-II,C,/OS-II,中任务状态包括:,等待状态,、,休眠状态,、,就绪状态,、,运行状态,、,中断服务,,之间可转换C,/OS-II,的体系结构,应用软件,核心代码(处理器无关,),OS_CORE.C,OS_MBOX.C,OS_MEM.C,OS_Q.C,OS_SEM.C,OS_TASK.C,OS_TIME.C,uCOS_II,.H,设置代码(应用相关,),OS_CFG .H,INCLUDES.H,核心代码,消息队列,存储管理,消息管理,信号量,任务调度,定时管理,OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C,CPU,定时器,软件,硬件,7.2.2,C,/OS-II,的移植,要使,C,/OS-II,能正常运行,处理器必须满足以下要求:,处理器的,C,编译器能产生可重入代码;,处理器支持中断,并且能产生定时中断;,C,语言可以开,/,关中断;,处理器支持一定数量的数据存储硬件堆栈;,处理器有将堆栈和其他,CPU,寄存器读出和存储到堆栈或内存的指令,移植,C/OS-II,只需修改,OS_CPU.H,,,OS_CPU_A.ASM,,,OS_CPU_C.C,这三,个文件的相关函数。

7.3,嵌入式系统的,BootLoader,1.,含义,Boot Loader,就是在操作系统内核或用户应用程序运行之前运行的一段小程序类似于,PC,的,BIOS,),2.,功能,初始化硬件设备、建立内存空间的映射图将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境3.,任务,如图,7.1,所示概述,返回,BootLoader,与嵌入式系统的关系,每种不同的处理器体系结构都有不同的,Boot Loader,;,Boot Loader,还依赖于具体的嵌入式板级设备的配置;,系统加电后,处理器将首先执行,Boot Loader,程序存储设备典型空间分配结构,Boot Loader,的操作模式,BootLoader,的启动加载模式与下载模式,:,加载模式,:启动时将,Flash,中的操作系统加载到中,,Boot Loader,的正常工作模式下载模式,:将主机中的应用程序等下载到嵌入式系统的中,比如:下载应用程序、数据文件、内核映像等,这种模式通常在系统更新时使用仅对于开发人员才有意义,对于最终用户无此概念,BootLoader,的主要功能及典型结构,1.,主要功能,正确地调用内核来执行,。

2.,典型结构,(,分两部分,),第一部分:,第二部分:,主要工作是硬件设备初始化,为加载,Boot Loader,的,第二部分准备,RAM,空间,拷贝,Boot Loader,的第一部,分到,RAM,空间中,设置好堆栈后跳转到第二部分的,C,程序入口点通常都用汇编语言来实现主要作用是初始化本阶段要使用到的硬件设备,检测,系统内存映射,将,kernel,映像和根文件系统影响从,flash,上独到,RAM,空间中,并为内核设置启动参数,最,后调用内核,完成,Boot Loader,的所有任务通常用,C,语言编写Boot Loader,的第一部分,(1),1,基本的硬件初始化,2.,为加载第二部分准备,RAM,空间,推荐将第二部分安排到整个,RAM,空间的最顶,1MB(,即,(RamEnd-1MB)-RamEnd),屏蔽所有的中断,设置处理器的速度和时钟频率,RAM,初始化,初始化,LED,关闭处理器内部指令数据,cache,Boot Loader,的第一部分,(2),3,拷贝第二部分到,RAM,4,设置堆栈指针,sp,5,跳转到第二部分的,C,入口点,(1),第二部分的可执行映象在,固态存储设备的存放起始,地址和终止地址;,(2)RAM,空间的起始地址。

Boot Loader,在,FLASH,和,RAM,的系统布局,Boot Loader,的第二部分,(1),1,初始化本阶段要使用的硬件设备,如初始化串口和计时器等2,检测系统得内存映射,内存映射就是指在整个物理地址空间中有哪些地址范围被分配用来寻址系统的,RAM,单元Boot Loader,的第二部分,(2),3,加载内核影响和根文件系统映像,4,调用内核,ldr,r0,=0 xc300000,;,0 x300000,是前面拷贝,kernel,函数中的目的地址,mov,pc,r0,;修改程序地址寄存器,完成跳转,规划内存占用的布局,从,Flash,上拷贝,内核映像所占用的内存范围,根文件系统所占用的内存范围,本章结束,学习第章,。

下载提示
相关文档
正为您匹配相似的精品文档