16-嵌入式Linux操作系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#make dep
更新配置文件
#make bzImage
(如果内核不大则执行#make zImage),执行该命令后,将在 /usr/src/linux/arch/i386/boot目录下生成内核文件bzImage(或 zImage)。 若配置中加入了模块的支持(选项为M),还需要执行#make modules 和#make modules_install。
中断1的中断延时 中断2的中断延时
t2
中断1的服务程序
中断2产生 中断1产生
t3
中断2的服务程序
t1
某任务
中断禁止区
19
Linux内核与实时性 内核与实时性
对比项目 Linux 2.4(s) Linux 2.6(s)
内核在无负载时中断延时最大值
8.5
31.0
内核在重负载时中断延时最大值
113.5
49.5
系统购买费 使用费 技术支持 网络协议栈 软件移植 产品开发周期 实时性能 稳定性
非常昂贵 每件产品需都需缴纳 开发商一家支持 需要额外购买 难,因为系统封闭 长,因为参考代码有限 好 好
商业版本需要一定服务费 免费 商业版厂商和Linux社团 免费且性能优异 易,因为代码开放 短,应用和参考丰富 可用RTLinux等模块弥补 较好,高性能系统待验证
14
网络可选择资源-实时扩展版
RTLinux:http://www.rtlinux.com RTAI:http://www.rtai.org/ EL/IX: http://www.sourceware.cygus.com/elix/ SRT-Linux: http://www.cl.cam.ac.uk/~dmi1000/linuxsrt/index.html
非实时进程1 非实时进程2
原Linux内核
实时任务
实时内核
硬件中断
RTLinux任务处理流程 任务处理流程
22
主要内容
嵌入式Linux系统基本概念 Linux嵌入式Linux系统裁减与移植 嵌入式Linux软件开发
23
从何处开始?
需要考虑的问题
是否支持自己的硬件平台 有多少可选软件、文件定制能力如何 是否有完整文档、新版本升级是否方便等等一系列 问题。
内核在无负载时中断任务响应延时最大值
104
412
内核在强负载时中断任务响应延时最大值
4446
578
20
嵌入式Linux实时化技术 实时化技术 嵌入式
非实时化通用内核 实时化内核 硬件平台 实时任务 非实时任务
RTlinux双内核实时化结构 双内核实时化结构
21
嵌入式Linux实时化技术 实时化技术 嵌入式
17
嵌入式Linux操作系统实时性 操作系统实时性 嵌入式
影响中断处理时间的因素
处理器硬件电路的延迟时间,通常这个时间可 以忽略。 操作系统处理中断并将控制权转移给中断处理 程序所需要的时间。 操作系统的中断禁止时间,这是操作系统为了 保护重要的系统程序代码暂停接受中断需要的 时间。
18
嵌入式Linux操作系统实时性 操作系统实时性 嵌入式
6
冯诺依曼体系结构模型
存储器
指令寄存器 控制器
程序 指令0 指令0 指令1 指令1 指令2 指令2 指令3 指令3 指令4 指令4
数据通道 输入 中央处理器
输出
数据 数据0 数据0 数据1 数据1 数据2 数据2
7
哈佛体系结构
地址 程序存储器 指令0 指令 指令1 指令 指令2 指令
指令寄存器 控制器
26
嵌入式Linux系统构建流程
1. 2. 3. 4.
裁减编译内核 建立root文件系统 制作系统映像 安装引导
27
第1步:裁减和编译内核
获得内核源代码
根据硬件平台获得对应的Linux系统源代码 从一个通用系统,如redhat系统获得源代 redhat 码
裁减编译内核的步骤
1. 配置内核 2. 更新编译文件 3. 编译内核
1. 建立目录系统
/proc、/mnt和/usr在此情况下都是空的,只需要 用mkdir创建它们即可。 /dev:设备文件需要用mknod产生。如果简单起 见用cp -dpR 参数开关来复制原系统的设备文件节 点也可以,例如cp -dpR /dev/mem /mnt/dev 。 至少需要console、kmem、mem、null、ram、 tty*等文件。 /etc:一般可以包含rc.d/* (系统启动脚本)、 fstab(列出要登录的文件系统)、inittab(包含启动 过程参数) 。
29
第1步:裁减编译内核
1. 2. 3. 4. 以root超级用户登录,进入目录/usr/src/linux。
如果目标系统和主机系统不是同一硬件平台需要先建立交叉编译环 境并获得目标系统的内核源代码
#make menuconfig
对内核模块进行配置(也可以在X Window中运行make xconfig)。
16.1.1 嵌入式系统的定义
电源 模块 时钟 复位
外围电路 微处理器 MPU
Flash RAM ROM
外设
USB LCD Keyboard Other
嵌入式系统硬件组成
4
嵌入式系统设备常见接口
I/O A/D、D/A 、 键盘 LCD 存储器接口 网络设备接口
5
CISC和RISC指令集
CISC:复杂指令集( Computer) CISC:复杂指令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式 8/2原则:80%的程序只使用20%的指令 8/2原则:80%的程序只使用20%的指令 原则 的程序只使用20% 大多数程序只使用少量的指令就能够运行。 大多数程序只使用少量的指令就能够运行。 X86系列或者兼容的低功耗芯片 如Intel X86系列或者兼容的低功耗芯片 RISC:精简指令集( RISC:精简指令集(Reduced Instruction Set Computer) 在通道中只包含最有用的指令 确保数据通道快速执行每一条指令 CPU硬件结构设计变得更为简单 使CPU硬件结构设计变得更为简单 如PowerPC, MIPS, ARM/XScale
指令
地址 数据通道 输入 中央处理器 输出 数据
数据存储器 数据0 数据 数据1 数据 数据2 数据
8
16.1.2 嵌入式操作系统的特点
“嵌入计算机系统的专用操作系统”。
嵌入性:物理环境(小型)、电气环境(可靠)、 成本(价廉)等要求。 专用性 :满足对象要求的最小软、硬件配置等。 性能要求:多任务调度、实时性能 功能要求:接口与通信能力
建立root文件系统的步骤 文件系统的步骤 建立
1. 在主机中建立目标系统的root文件系统目录结构 2. 从代码库中挑选并裁减出适用的各种文件 3. 将root文件系统目录中的所有内容打包制作成映像
31
第2步:建立root文件系统
root文件系统的内容 文件系统的内容
基本文件系统结构,至少含有目录/dev、/proc、/bin、 /etc、/lib、/usr、/tmp ; 最基本的系统应用程序,如sh、ls、cp、mv等; 最低限度的配置文件,如rc、inittab、fstab等; 基本设备,如/dev/mem、/dev/ tty*、/dev/console; 基本程序运行所需的C函数库。
5.
生成内核
/usr/src/linux/arch/i386/boot/bzImage文件为内核文件 改名为MiniKernel备用
30
第2步:建立root文件系统
什么是root文件系统? 文件系统? 什么是 文件系统
一个完整的Linux系统除了内核外,还必须有一个 由C库和系统应用程序构成的root文件系统。 一个root文件系统包括支持完整Linux系统运行的 全部东西。
VTRX,Palm OS,ucos etc
多线程、完整优先权、多任务的操作系统。 图形界面好,开发工具友好
Montavist Linx, RTlinux;
10
16.1.3 嵌入式Linux发展与应用
专用嵌入式实时操作系统 vs 嵌入式Linux 操作系统
专用嵌入式实时操作系统 嵌入式Linux操作系统
9
常见嵌入式操作系统
VxWorຫໍສະໝຸດ Baidus
市场占有率最高的系统。它支持多种处理器 ,高性能。
PSOSystem
模块化好,在中低端系统中应用广。pSOS已属于WindRiver。
QNX
小巧灵活,在航空航天和工业控制中广泛应用
Windows CE LinuxLinux-derived RTOS Other OS
28
编译内核原则
Linux内核拥有灵活方便的配置功能,菜单分 为,芯片组支持,外设支持,文件支持,网络 等,每类只将需要的内容编译进内核。
根据目标系统的硬件配置选择模块 根据应用目标选择其他功能模块 应当保证内核只支持一种或是两种必要的文件系统, 如ext2和minix; 为支持内存虚拟磁盘启动,需要编译内核支持ram disk和initrd
11
如何选择合适的linux版本
标准的Linux 版本。 小型化的嵌入式版本。 具有实时扩展功能的Linux 版本。 Linux 特殊应用版本。例如有许多针对不同 的如“瘦服务器”或“防火墙”应用的小型 化、实时特性增强的版本。
12
网络可选择资源-标准版本
Debian:http://www.debian.org.com/ Red Hat:http://www.redhat.com/ Slackware:http://www.slackware.com/ Turbo Linux:http://www.turbolinux.com/
32
第2步:建立root文件系统
1. 建立目录系统
以root用户登录开发主机,在合适的目录下(如根目录下), 用mkdir rootfs命令建立一个工作目录rootfs。 在rootfs/目录下的内容就是今后目标系统根目录(/)下的内容。 在当前目录下执行cd rootfs进入到rootfs目录中,然后用mkdir 命令分别在rootfs目录下建立以下目录:
操作系统
第16章 嵌入式 章 嵌入式Linux系统 系统
陆松年 snlu@sjtu.edu.cn
1
主要内容
嵌入式Linux系统基本概念 嵌入式Linux系统裁减与移植 嵌入式LINUX软件开发
2
主要内容
嵌入式Linux系统基本概念 Linux嵌入式Linux系统裁减与移植 嵌入式Linux应用
3
可以选择的方法
基于面向特定应用的嵌入式Linux版本 基于通用嵌入式Linux版本 基于某通用Linux系统和Linux源代码库
24
Linux系统的软件分层
直接访问 内核的 应用程序
内核 硬件 内核 C库 库
使用C库的应用程序 使用C
25
内核,C库,Shell和实用程序
典型的Linux系统包括3个主要的软件层:Linux内核、C库 和应用程序; 内核主要的功能包括内存管理、进程调度、设备驱动、 文件系统、网络协议栈和模块管理等; 内核之上是C库,这一层负责把符合POSIX标准的API转换 成内核可以识别的形式; 离硬件最远的是应用程序层,细分包含两部分: 系统程序,一般指运行系统所不可缺少的程序; 用户程序,给用户提供各种功能;
13
网络可选择资源-小型化版本
ETLinux: http://www.prosa.it/embedded/etlinux/ Linux Router Project: http://www.linuxrouter.org/ LOAF:http://loaf.ecks.org/ ucLinux:http://www.uclinux.org/
/etc 放置系统配置文件; /sbin 放置重要的系统程序; /bin 放置系统基本应用程序; /dev 设备文件的目录; /proc proc文件系统所需目录; /lib 准备存放共享函数库; /mnt 准备挂载其他设备的目录节点 /usr 准备放置用户应用程序。
33
第2步:建立root文件系统
15
嵌入式linux构建与应用的关键技术
对linux 的裁减达到小型化的目的; 对不同嵌入式微处理器的linux 内核代码移植, 驱动程序的研究; 专业应用开发: 移植应用程序,开发面向特 定应用的控制软件。
16
嵌入式Linux操作系统实时性 操作系统实时性 嵌入式
常用衡量实时性标准
确定性(Determinism):系统的行为表现应该是确 定的,每个系统调用执行的时间是可预测的。 中断延迟时间(Interrupt Latency Time):从接收 到中断信号到操作系统作出响应,并进入中断服务程 序的时间; 上下文切换时间(Context-Switching Time),就是 操作系统将控制权从执行中取回,然后交给另一个任 务所需的时间。