第7章 嵌入式操作系统及其移植(第二版)
发布时间:2024-08-29
发布时间:2024-08-29
操作系统移植
第7章嵌入式操作系统及其移植3 7.1
嵌入式操作系统μCLinux 嵌入式操作系统μC/OS-II嵌入式系统的BootLoader
3 7.23 7.3
操作系统移植
7.1 嵌入式操作系统μCLinux
返回
1.μCLinux背景 μClinux 从Linux2.0/2.4内核派生而来,沿袭 了主流Linux的绝大部分特性; 专门针对没有MMU的CPU
运行μClinux 操作系统的用户可以使用几乎 所有的Linux API函数mwhua@http://www.77cn.com.cn
操作系统移植
μCLinux 概述2. μCLinux特点(1) 通用Linux API C 是Control 的缩写 μCLinux 是为微控制领域 (2) 内核体积 < 512 KB Micro(微小)的意思 量身定做的Linux 版本 (3) 内核 +文件系统<900 KB (4) 完整的TCP/IP 协议栈 (5) 支持大量其它的网络协议 (6) 支持各种文件系统,包括 NFS、ext2、 ROMfs and JFFS、MS-DOS 和FAT16/32
mwhua@http://www.77cn.com.cn
操作系统移植
μCLinux体系结构内核采用的是单一内 核结构,非抢占式的网络VFS,逻辑文件系 统,设备驱动程序
文件系统通信方式有:管道(pipe)、 文件锁、System V IPC、
进程间通信控制CPU资源的 分配 ,基于优先级 的抢占式多任务
信号(signal)及共享内存 进程调度 内存管理 支持多种网络协议,如IP、IPV6、 IPX、Apple talk及Bluetooth;并且 驱动程序 硬件抽象层 管理计算机 支持路由、防火墙过滤等网络设备功 的内存资源 能;提供标准的BSD socket编程接口 硬件 内核源代码的绝大部 分是各种驱动程序
mwhua@http://www.77cn.com.cn
操作系统移植
μCLinux的移植1.μCLinux内核的移植可以分为:板级移植:对于μCLinux发行版本中已经支持的嵌入式 处理器通常只需要针对板级硬件进行适当的修改即可; 片级移植:对于μCLinux发行版本中没有支持的处理器 则需要添加相应处理器的内核移植;
2. μCLinux 发行版本中已经包含S3C44B0X ARM7TDMI处理器的移植包,因此,只需进行 μCLinux板级移植。mwhua@http://www.77cn.com.cn
操作系统移植
μCLinux内核移植方法(1)1.内核移植的主要任务(1)配置内核 (2)编译内核 (3)下载、运行、调试内核
2.μClinux调试手段(1) 通过串口将显示信息发送到主机,由主机端超级 终端工具接收;同时在超级终端输入数据,然后由 μClinux接收; (2)通过串口将调试信息打印到超级终端
mwhua@http://www.77cn.com.cn
操作系统移植
μCLinux内核移植方法(2)3. μCLinux内核移植主要过程(1)内核配置 (2)体系结构相关代码修改 (3)连接脚本 (4)中断处理 (5)加载文件系统 (6)编写驱动程序 (7)编译μClinux文件系统
mwhua@http://www.77cn.com.cn
操作系统移植
7.2 嵌入式操作系统μC/OS-II
返回
µC/OS-Ⅱ是免费的,源代码是开放的,特 点如下:(1) µC/OS-II是一个可裁减的、源码开放的、结构小巧、可剥 夺型的实时多任务内核; (2) µC/OS-II中最多可以支持64个任务,分别对应优先级0~63, 其中0为最高优先级; (3) µC/OS-II已成功移植到近40多种处理器
体系上; (4) µC/OS-II结构小巧,最小内核可编译至2K ; (5) µC/OS-Ⅱ实际上是一个实时操作系统内核,没有提供输入 输出管理、文件系统、网络之类的额外服务。
mwhua@http://www.77cn.com.cn
操作系统移植
7.2 嵌入式操作系统μC/OS-IIμC/OS-II中任务状态包括:等待状态、休眠状态、 就绪状态、运行状态、中断服务, 之间可转换。等待状 态任务OSFlagPost( ) OSTaskDel( ) OSMboxPost( ) OSMboxPostOpt( ) OSQPost( ) OSTaskResume( ) OSFlagPend( ) OSMboxPend( ) OSMutexPend( ) OSQPend( ) OSSemPend( )
等OSTaskCreat( ) OSStart ( )
等 OSIntExit( ) OS_TASK_SW( ) 运行态 任务任务的 CPU 使用权被剥夺 OSIntExit( ) OSTaskDel( )
OSTaskCreatExt( ) 睡眠态 任务OSTaskDel( )
就绪态 任务
中断服务 态任务
OSTaskDel( )
mwhua@http://www.77cn.com.cn
操作系统移植
μC/OS-II的体系结构应用软件 (用户代码) μC/OS-II (与处理器类型无关的代码) OS_CORE.C OD_FLAG.C OS_MBOX.C OS_MEM.C OS_MUTEX.C OS_Q.C OS_SEM.C OS_TASK.C OS_TIME.C uCOS_II.C uCOS_II.HμC/OS-II配置文件 (与应用程序有关)
OS_CFG.H INCLUDES.H
移植μC/OS-II (与处理器类型有关的代码) OS_CPU.H OS_CPU_A.ASM OS_CPU_C.C 软件 硬件CPU 定时器
mwhua@http://www.77cn.com.cn
操作系统移植
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这三 个文件的相关函数。
mwhua@http://www.77cn.com.cn
操作系统移植
7.3 嵌入式系统的BootLoader概述
返回
1.含义 Boot Loader就是在操作系统内核或用户应用程序运行之前 运行的一段小程序。(类似于PC的BIOS) 2.功能 初始化硬件设备、建立内存空间的映射图。将系统的软硬 件环境带到一个合适的状态,以便为最终调用操作系统内 核或用户应用程序准备好正确的环境。 3.任务 如图7.1所示。
mwhua@http://www.77cn.com.cn
操作系统移植
BootLoader与嵌入式系统的关系
每种不同的处理器体系结构都有不同的Boot Loader; Boot Loader还依赖于具体的嵌入式板级设备的配置; 系统加电后,处理器将首先执行Boot Loader程序。
存储设备典型空间分配结构
mwhua@http://www.77cn.com.cn
操作系统移植
Boot Loader的操作模式BootLoader的启动加载模式与下载模式: 加载模式:启动时将Flash中的操作系统加载到RAM 仅对于开发人员才有意义 , 中,Boot Loader的正常工作模式。 对于最终用户无此概念 下载模式:将主机中的应用程序等下载到嵌入式系统 的RAM中,比如:下载应用程序、数据文件、内核 映像等 ,这种模式通常在系统更新时使用。
mwhua@http://www.77cn.com.cn
操作系统移植
BootLoader的主要
功能及典型结构1.主要功能 正确地调用内核来执行。 2.典型结构(分两部分) 第一部分: 第二部分: 主要工作是硬件设备初始化,为加载Boot Loader的第二部分准备RAM空间,拷贝Boot Loader的第一部 主要作用是初始化本阶段要使用到的硬件设备,检测 分到RAM空间中,设置好堆栈后跳转到第二部分的 系统内存映射,将 kernel映像和根文件系统影响从 C程序入口点。通常都用汇编语言来实现。 flash 上独到RAM空间中,并为内核设置启动参数,最 后调用内核,完成Boot Loader的所有任务。通常用C 语言编写。 mwhua@http://www.77cn.com.cn
操作系统移植
Boot Loader的第一部分(1)屏蔽所有的中断
1.基本的硬件初始化
设置处理器的速度和时钟频率 RAM初始化 初始化LED 关闭处理器内部指令/数据cache
2. 为加载第二部分准备RAM 空间 推荐将第二部分安排到整个RAM空间的最顶 1MB(即(RamEnd-1MB)-RamEnd) 。mwhua@http://www.77cn.com.cn
上一篇:四年级be动词练习题
下一篇:实习报告三(多元线性回归分析)