收藏 分享(赏)

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

上传人:dzzj200808 文档编号:5750396 上传时间:2019-03-15 格式:PPT 页数:20 大小:1.46MB
下载 相关 举报
第7章 嵌入式操作系统及其移植(第二版).ppt_第1页
第1页 / 共20页
第7章 嵌入式操作系统及其移植(第二版).ppt_第2页
第2页 / 共20页
第7章 嵌入式操作系统及其移植(第二版).ppt_第3页
第3页 / 共20页
第7章 嵌入式操作系统及其移植(第二版).ppt_第4页
第4页 / 共20页
第7章 嵌入式操作系统及其移植(第二版).ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、第7章嵌入式操作系统及其移植,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/3

2、2,Micro(微小)的意思,C 是Control 的缩写,CLinux 是为微控制领域量身定做的Linux 版本,CLinux体系结构,内核采用的是单一内核结构,非抢占式的,控制CPU资源的分配 ,基于优先级的抢占式多任务,管理计算机的内存资源,VFS,逻辑文件系统,设备驱动程序,通信方式有:管道(pipe)、文件锁、System V IPC、 信号(signal)及共享内存,内核源代码的绝大部分是各种驱动程序,支持多种网络协议,如IP、IPV6、IPX、Apple talk及Bluetooth;并且支持路由、防火墙过滤等网络设备功能;提供标准的BSD socket编程接口,CLinux的移

3、植,1.CLinux内核的移植可以分为:2. CLinux 发行版本中已经包含S3C44B0X ARM7TDMI处理器的移植包,因此,只需进行CLinux板级移植。,板级移植:对于CLinux发行版本中已经支持的嵌入式 处理器通常只需要针对板级硬件进行适当的修改即可; 片级移植:对于CLinux发行版本中没有支持的处理器 则需要添加相应处理器的内核移植;,CLinux内核移植方法(1),1内核移植的主要任务(1)配置内核(2)编译内核(3)下载、运行、调试内核 2Clinux调试手段(1) 通过串口将显示信息发送到主机,由主机端超级 终端工具接收;同时在超级终端输入数据,然后由Clinux接收

4、;(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个任务,分别对应优先级06

5、3,其中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的体系结构,7.2.2 C/OS-II的移植,要使C/OS-II能正常运行,处理器必须满足以下要求: 处理器的C编译器能产生可重入代码; 处理器支持中断,并且能产生定时中断; C语言可以开/关中断;

6、处理器支持一定数量的数据存储硬件堆栈; 处理器有将堆栈和其他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与嵌入式系统的关系

7、,每种不同的处理器体系结构都有不同的Boot Loader; Boot Loader还依赖于具体的嵌入式板级设备的配置; 系统加电后,处理器将首先执行Boot Loader程序。,存储设备典型空间分配结构,Boot Loader的操作模式,BootLoader的启动加载模式与下载模式: 加载模式:启动时将Flash中的操作系统加载到中,Boot Loader的正常工作模式。 下载模式:将主机中的应用程序等下载到嵌入式系统的中,比如:下载应用程序、数据文件、内核映像等 ,这种模式通常在系统更新时使用。,仅对于开发人员才有意义 ,对于最终用户无此概念,BootLoader的主要功能及典型结构,1.

8、主要功能 正确地调用内核来执行。 2.典型结构(分两部分) 第一部分: 第二部分:,主要工作是硬件设备初始化,为加载Boot Loader的 第二部分准备RAM空间,拷贝Boot Loader的第一部 分到RAM空间中,设置好堆栈后跳转到第二部分的 C程序入口点。通常都用汇编语言来实现。,主要作用是初始化本阶段要使用到的硬件设备,检测 系统内存映射,将kernel映像和根文件系统影响从 flash上独到RAM空间中,并为内核设置启动参数,最 后调用内核,完成Boot Loader的所有任务。通常用C 语言编写。,Boot Loader的第一部分(1),1基本的硬件初始化 2. 为加载第二部分准

9、备RAM 空间推荐将第二部分安排到整个RAM空间的最顶1MB(即(RamEnd-1MB)-RamEnd) 。,屏蔽所有的中断,设置处理器的速度和时钟频率,RAM初始化,初始化LED,关闭处理器内部指令数据cache,Boot Loader的第一部分(2),3拷贝第二部分到RAM4设置堆栈指针sp5跳转到第二部分的C入口点,(1)第二部分的可执行映象在固态存储设备的存放起始地址和终止地址; (2) RAM空间的起始地址。,Boot Loader在FLASH和RAM的系统布局,Boot Loader的第二部分(1),1初始化本阶段要使用的硬件设备如初始化串口和计时器等。2检测系统得内存映射内存映射就是指在整个物理地址空间中有哪些地址范围被分配用来寻址系统的 RAM 单元。,Boot Loader的第二部分(2),3加载内核影响和根文件系统映像4调用内核ldr r0, =0xc300000 ;0x300000是前面拷贝kernel函数中的目的地址mov pc, r0 ;修改程序地址寄存器,完成跳转,规划内存占用的布局,从Flash上拷贝,内核映像所占用的内存范围根文件系统所占用的内存范围,本章结束,学习第章,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报