-
这是杨立峰的Blog,主要介绍嵌入式实时Linux方面的内容.本人毕业于重庆工学院(现在好像叫重庆理工大学不知道是不是真的),专业是自动化.目前在Linux下进行开发工作,对嵌入式方面感兴趣,希望有共同爱好的大家一起来交流学习.这篇文章是我的毕业时候写的毕业论文.
大家好,我制作的完整版本的FTP下载在这里。大家需要的话可以到那里去下载:我将不会在通过Email来发送文章了。http://wenku.baidu.com/view/6c7e753e0912a2161479291f.html
摘 要伴随着科技不断的日新月异推陈出新。信息家电,手持设备,无线设备等个性化设备的出现,相应的硬件和软件的迅速发展。许多设备都配有Intel,MIPS,摩托罗拉等公司生产的32位微处理器。许多开发商也开始为这些设备提供嵌入式操作系统。嵌入式系统与实时系统将会有越来越重要作用。
利用Linux搭建嵌入式操作系统是近年来出现的最令人振奋的方案。这有多方面的原因。首先,运行在嵌入式系统上的Linux能够提供全功能的桌面计算(Desktop Computing),且由于其开放代码,定制变得非常方便。其次,Linux 已经支持大多数嵌入式系统上使用的芯片,包括 StrongARM , MIPS 和 PowerPC。最后,Linux是免费的,使用Linux 不需要付出任何费用。现今风行世界的Linux操作系统,本着开放*的精神,吸引了全世界的目光,越来越多的程序员加入到它的行列中来。所以利用 Linux 作为底层操作系统, 在其上进行实时化改造,建立一个具有实时应用能力的操作系统是现在日益流行的嵌入式操作系统的解决方案。
市场上常见的 PDA 等小型手持式设备上,以前由于硬件条件等的限制,我们看到功能都非常简单,没有网络、GUI等非常实用方便的功能。但最近出现的 Palm 等手持式电脑或者在 Windows CE 等面向嵌入式系统的操作系统上,我们已经看到了完整的网络、图形用户界面支持。随着手持式设备的硬件条件的提高,估计嵌入式系统对嵌入式操作系统的需求会越来越迫切。
本人长期以来对Linux 操作系统比较感兴趣,并结合本专业,对Linux应用于嵌入式实时环境进行了一定的研究。本论文基于这些事实,对面向嵌入式实时环境的 Linux系统的体系结构和一些技术内幕做了较深入的探讨。
论文首先概述了嵌入式系统及实时系统的发展情况。第二章介绍了在实时Linux领域的相关研究。第三章介绍了典型的实时系统RTLinux的设计与实现,第四章介绍了RTLinux的编程模型和一些应用实例。本文的第五章将对RTLinux的性能进行测试评估。最后是一点感想和展望。
关键词: Linux; RTLinux; 实时系统; 嵌入式系统。
目 录
Abstract i
摘 要 Ii
目 录.............................................................................................. III
图表及程序目录.............................................................................. v
缩略语............................................................................................... VI
第一章 嵌入式实时系统概况.................................................. 1
1.1 嵌入式系统概况................................................................. 1
1.1.1 嵌入式技术的历史发展............................................ 1
1.1.2 嵌入式系统的技术特点和应用前景...................... 2
1.1.3 典型的嵌入式系统..................................................... 3
1.2 实时系统概况..................................................................... 4
1.2.1 什么是实时系统......................................................... 4
1.2.2 实时操作系统的特点................................................ 4
第二章 实时系统的相关研究.................................................. 6
2.1 LINUX的分时特性............................................................ 6
2.2 LINUX的性能测试............................................................ 8
2.2.1 中断延迟测试............................................................. 8
2.2.2 上下文切换测试....................................................... 11
2.3 当前的实时操作系统...................................................... 12
第三章 嵌入式实时Linux系统RTLinux的设计与实现 16
3.1 RTLinux的结构............................................................. 16
3.2 中断模拟............................................................................ 17
3.3 实时任务............................................................................ 19
3.3.1 实时线程数据结构.................................................. 20
3.3.2 创建线程和线程调度.............................................. 21
3.4 实时调度............................................................................ 21
3.4.1 实现的调度器........................................................... 21
3.4.2 设计用户自己的调度器.......................................... 22
3.5 计时.................................................................................... 22
3.5.1 时间相关函数........................................................... 23
3.6 进程间通信....................................................................... 23
3.6.1 FIFO设备.................................................................. 23
3.6.2 共享内存.................................................................... 24
3.6.3 mbuff驱动程序......................................................... 25
第四章 rtlinux应用程序设计........................................... 26
4.1 程序结构............................................................................ 26
4.2 基本API............................................................................ 26
4.2.1 POSIX线程创建函数.............................................. 26
4.2.2 时间相关函数........................................................... 28
4.2.3 线程调度函数........................................................... 29
4.3 编程示例............................................................................ 30
4.3.1 实时部分.................................................................... 30
4.3.2 非实时部分............................................................... 34
4.3.3 编译和运行程序....................................................... 35
第五章 rtlinux的性能测试............................................... 37
第六章 感想与体会................................................................... 38
参考文献.......................................................................................... 40
致 谢................................................................................................. 42
附录A............................................................................................... 43
附录B............................................................................................... 59
图表及程序目录
图 2.1 异步中断和中断响应时间........................................ 9
图 2.2 关中断时间.................................................................. 10
图 3.1 RTLINUX详细结构图.............................................. 17
图 4.1 程序结构图.................................................................. 26
图 4.2 实时程序结构图........................................................ 30
表 2.1 中断关闭时间直方图............................................... 10
表 2.2 中断关闭时间概率密度函数直方图................... 11
表 2.3 上下文切换时间........................................................ 12
表 5.1 实时中断延迟时间.................................................... 37
程序2.1 简单的发声程序.......................................................... 6
程序3.1 “软”cli, sti和iret............................................... 18
程序3.2 rtl_thread_struct结构............................... 21
缩略语
API Application Program Interface
ATM Asynchronous Transfer Mode
CPU Central Processor Unit
DMA Direct Memory Access
EDF Eariest Deadline First
FIFO First-In-First-Out
GUI Graphical User Interface
I/O Input/Output
IPC Interprocess Communication
ISR Interrupt Service Routine
IST Interrupt Service Thread
MCU Micro-Controller Unit
OS Operating System
PC Personal Computer
PDA Personal Data Assistant
POS Point Of Sells
POSIX Portable Operating System Interface for computer Environments
RAM Random-Access Memory
ROM Read-Only Memory
RT Real Time
RTOS Real Time Operating Systems
TLB Translation Lookaside Buffer