2011-11第十一课、RTLinux, uCOS嵌入式软件
《嵌入式操作系统UCOSII原理及应用》任哲—学习笔记
第一章嵌入式实时操作系统的概念1. 计算机操作系统:对计算机系统资源进行管理,并向计算机用户提供若干服务。
OR:计算机操作系统是计算机硬件的一个软件包装,它为应用程序设计人员提供了一个更便于使用的虚拟计算机。
2. 操作系统功能:1)处理器的管理:(1) 中断管理;(2)对处理器工作进行调度;2)存储的管理:3)设备的管理:4)文件的管理:5)网络和通信的管理:6)提供用户接口:3. 嵌入式系统:对对象进行自动化控制而使其具有智能化并可嵌入对象体系中的专用计算机系统。
4. 嵌入式操作系统:运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件。
5. 实时操作系统:(1)多任务系统;(2)任务切换时间与系统中的任务数无关;(3)中断延时的时间可预知并尽可能短。
第二章uC/OS-II中的任务1. uC/OS-II操作系统内核的主要工作就是对任务进行管理和调度。
2. UC/OS-II的任务组成部分:(1)任务程序代码:任务的执行部分;(2)任务堆栈:保存任务工作环境;(3)任务控制块:保存任务属性。
3. uC/OS-II的两种任务:用户任务:由应用程序设计者编写的任务。
系统任务:系统提供的任务。
4. 任务的状态:(1)睡眠状态:是否配置或剥夺任务控制块的配置情况;(2)就绪状态:任务就绪表进行就绪登记,等待优先级,具备运行充分条件;(3)运行状态:获得CPU使用权限,任何时候只有一个任务处于运行状态。
(4)等待状态:正在运行的任务,需要等待一段时间或一件事件发生在运行,暂时交出CPU使用权。
5. 用户任务代码结构:任务的执行代码通常是一个无限循环结构,并且在这个循环中可以响应中断,这种结构叫做超循环结构。
6. OSTaskCreate()用来创建任务的函数;OSStart()用来启动各项任务的函数,启动后,任务就交由操作系统来管理和调度了。
7. uC/OS-II预定义了两个为应用程序服务的系统任务:空闲任务:每个应用程都必须使用的,是CPU处于空闲时有事可做,也可在其中添加用户工作代码;统计任务:根据实际需要进行选择使用。
嵌入式Linux应用开发培训讲义.pptx
Unix工具和程序都可以在Linux系统下运行。 UNIX-堂兄 Linux—表弟 ❖ 使用GNU工具开发:
➢ gcc,glibc,binutils,make等
❖ GNU = GNU is Not Unix ❖ GPL = General Public License
10
嵌入式系统与PC (2)
嵌入式系统
PC机
引导代码 操作系统 驱动程序
协议栈 开发环境 仿真器
Bootloader引导,针对不同电路板 主板的BIOS引导,无须改动 进行移植
WinCE、VxWorks、Linux等,需要 Windows、Linux等,不需要移
移植
植
每个设备驱动都必须针对电路板进 行重新开发或移植,一般不能 直接下载使用
❖ 微控制器(MCU) ARM7和ARM9的区别(3、5流水线)
❖ 数字信号处理器(DSP)(4流水线) ❖ 片上系统(SOC) ❖ 可编程片上系统(SOPC—Nios2)
8
典型的嵌入式系统与PC机
•软件(操作系统/驱动程序/应用程序)
•存储器
•输入
•处理器
•输出
9
设备名称
嵌入式系统
CPU
嵌入式处理器(ARM, MIPS)
12
❖ ARM ❖ PowerPC ❖ MIPS ❖ Xscale ❖ DSP ❖ X86 ❖ ……
如何选择嵌入式CPU?
13
❖ Linux ❖ uC/OS ❖ Windows CE ❖ VxWorks ❖ Palm OS ❖ Symbian
典型的嵌入式操作系统
嵌入式实时操作系统UC教案
嵌入式实时操作系统UC教案嵌入式实时操作系统UC/OS-II原理及应用第1章嵌入式实时操作系统的基本概念1.1 计算机操作系统1.1.1 什么是计算机操作系统1、计算机体系构架2、操作系统的作用:1)对计算机系统的主要资源进行管理;2)向计算机用户提供相关服务;3)隐藏计算机硬件,为应用程序提供透明的操作环境。
1.1.2 操作系统的作用和功能1、操作系统的作用为应用程序提供一个界面友好,性能稳定、安全,效率高,操作方便的虚拟计算机2、操作系统的功能1)处理器管理2)存储管理3)设备管理4)文件管理5)网络和通信管理6)提供用户接口1.2 嵌入式系统和嵌入式操作系统1.2.1 嵌入式系统的基本概念1、什么是嵌入式系统2、嵌入式系统的发展历程微型计算机→单板机→单片机→单片系统3、嵌入式系统的特点1)专用性强2)可裁剪性好3)实时性与可靠性好4)功耗低1.2.2 嵌入式操作系统1、什么是嵌入式操作系统运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和控制的系统软件2、嵌入式操作系统的特点1)微型化2)可裁剪性3)实时性4)高可靠性5)易移植性3、实时操作系统能及时响应外部事件的请求,并能及时控制所有实时设备与实时任务协调运行,且能在一个规定的时间内完成对事件的处理,这种操作系统称为实时操作系统。
4、实时操作系统的基本要求1)实时系统的计算必须产生正确的结果。
(逻辑或功能正确)Logical or Function Correctness)2)实时系统的计算必须在预定的时间内完成。
(时间正确)Timing Correctness5、实时操作系统的分类1)硬实时操作系统(极严格的时间内完成实时任务)2)软实时操作系统(系统完成实时任务的截止时间要求不十分严格)1.2.3 实时操作系统需要满足的条件1、实时操作系统应满足的条件1)必须是多任务操作系统2)任务的切换时间与系统中的任务数无关3)中断延迟的时间可预知并尽可能短1.2.4 嵌入式系统的任务及嵌入实时操作系统1、嵌入式系统的任务由于嵌入式系统所完成的是对一个装置或设备的控制任务,任务的功能相对固定,因此在一般情况下嵌入式实时操作系统所支持的典型任务应该是一个无限循环结构。
uCOS嵌入式开发PPT课件
Bit 5 in OSRdyGrp is 1 when any bit in OSRdyTbl[5] is 1.
Bit 6 in OSRdyGrp is 1 when any bit in OSRdyTbl[6] is 1. Bit 7 in OSRdyGrp is 1 when any bit in OSRdyTbl[7] is 1.
根据优先级确定就绪表
从上面的计算我们可以得到 : 若第 n 位置 1 ,则 应该与 2n 相或。 uC/OS 中,把 2n 的 n=0-7 的 8个值 先计算好存在数组 OSMapTbl[7] 中 , 也 就是: OSMapTbl[0] =20=0x1; OSMapTbl[1] =21=0x2; ……
OSMapTbl[7] =27=0x80;
根据优先级确定就绪表
利用OSMapTbl,通过任务的识别号-优先级o 来设置任务在就绪组和就绪表数组中相应位置的 数学式为:
OSRdyGrp |=OSMapTbl[prio>>3]; OSRdyTbl[prio>>3] |=OSMapTbl[prio & 0x07]; 假设优先级为12,1 100b OSRdyGrp |=0x02; OSRdyTbl[1] |=0x10;
What is uC/OS?
u: Micro C:control uC/OS : 适合于小的、控制器的操作系统 小巧 公开源代码,详细的注解 可剥夺实时内核 可移植性强 多任务 确定性
The Story of uC/OS
美国人Jean Labrosse 1992年编写的 商业软件的昂贵 应用面覆盖了诸多领域,如照相机、医疗器 械、音响设备、发动机控制、高速公路电话 系统、自动提款机等 1998年uC/OS-II,目前的版本uC/OS-II V2.51
Linux基础及应用教程 第11章 嵌入式Linux
11.4 嵌入式Linux开发
11.4.1 构造嵌入式Linux前先要了解的几个关键问题 1.如何引导? 在PC上运行的Linux依靠PC的BIOS来提供这些配置和 OS加载功能。 在一个嵌入式系统里经常没有这种BIOS。这样就要提 供同等的启动代码。 在大多数情况下,一个最小的通电自检模块,可以检查 内存的正常运行、让LED闪烁,并目驱动其它必须的 硬件以使主Linux OS启动和运行。
11.3.3 延迟时间 在用户模式中执行的进程不能精确地控制时 间,因为Linux是个多用户的操作环境,在执 行中的进程随时会因为各种原因被暂停大约 10ms到数秒(在系统负荷非常高的时候)。 然而对于大多数使用I/O端口的应用程序而言, 这个延迟时间实际上算不了什么。要缩短延迟 时间,需要使用函数nice将你在执行中的进程 设定成高优先权,或使用即时调度法(realtime scheduling)。
2.替代方法:/dev/port 另一个存取I/O端口的方法是以函数 open()打开文件/dev/port(一个字符设 备,主设备编号为1,次设备编号为4), 以便执行读与(或)写的动作(注意标 准输出入函数f*()有内部的缓冲,所以 要避免使用)。
11.3.2 硬件中断与DMA存取 用户程序如果在用户模式下执行,不可 以直接使用硬件中断 (IRQ) 或 DMA 。用 户必须编写一个内核驱动程序。也就是 说,在用户模式中所写的程序无法控制 硬件中断的产生。
11.1.2 嵌入式系统的特征 嵌入式系统是面向用户、面向产品、 面向应用的,如果独立于应用自行发展, 则会失去市场。嵌入式处理器的功耗、 体积、成本、可靠性、速度、处理能力、 电磁兼容性等方面均受到应用要求的制 约,这些也是各个半导体厂商之间竞争 的热点。
嵌入式RTOS及其软件开发
6 常用的RTOS
• VxWorks特点 – 微内核结构(最小结构 <8KB) – 微秒中断处理 – 高效的任务管理 – 多任务,具有256优先级 – 优先抢占和轮转调度 – 快速,确定的上下文转换 – 多处理器支持 – 灵活的任务间通信 – 具有优先级继承的二进制、 计数器、互斥的信号量 – – – – – – – – – – – 消息队列 套接字 共享内存 信号异常处理 符合POSIX 1003.1b实时扩 展标准 满足TCP/IP 网络标准 灵活的从ROM、磁盘或网 络的引导能力 快速、灵活的I/O系统 支持 MS-DOS 和 RT-11文 件系统 完全符合ANSI C标准 多于1100种功能例程
5
1.3.2分层系统
• 第一个分层操作系 统是THE (Technische Hogeschool Eindhoven,由E. D. Dijkstr于1968 年开发)系统,该 系统是一个简单的 批处理系统。
• 该系统有6层
6
1.3.3虚拟机系统
• 例如:windowsNT下的MS-dos方式
7
33
内容
• • • • • • • • 操作系统简介 嵌入式RTOS基本概念 RTOS的主要技术指标 RTOS的基本术语 RTOS的要求 常用的嵌入式RTOS介绍 基于RTOS开发应用 如何选择RTOS
34
5 RTOS要求
• 要求
– 逻辑:执行正确 – 时间:在确定的时间内执行完成、正确
• 实时系统
26
4 RTOS基本术语
• 6.任务
– RTOS中的任务相当于 一般操作系统的进程 (Process),一个任 务就是RTOS的一个可 以独立运行的例程。在 程序设计时,任务被设 计成无限循环程序(过 程)。
嵌入式系统课程-ucos嵌入式实时操作系统
内核概念
• 内核是操作系统最基本的部分。它是为众多应用程序提 供对计算机硬件的安全访问的一部分软件,这种访问是 有限的,并且内核决定一个程序在什么时候对某部分硬 件操作多长时间。直接对硬件操作是非常复杂的,所以 内核通常提供一种硬件抽象的方法来完成这些操作。硬 件抽象隐藏了复杂性,为应用软件和硬件提供了一套简 洁,统一的接口,使程序设计更为简单。 • 严格地说,内核并不是计算机系统中必要的组成部分。 程序可以直接地被调入计算机中执行,这样的设计说明 了设计者不希望提供任何硬件抽象和操作系统的支持, 它常见于早期计算机系统的设计中。最终,一些辅助性 程序,例如程序加载器和调试器,被设计到机器核心当 中,或者固化在只读存储器里。这些变化发生时,操作 系统内核的概念就渐渐明晰起来源 程序运行时可使用的软、硬件环境 统称为资源。资源可以是输入输出设备, 例如打印机、键盘、显示器。资源也可 以是一个变量、一个结构或一个数组等。
嵌入式操作系统
• 基本概念
——共享资源
可以被一个以上任务使用的资源叫做共享资 源。为了防止数据被破坏,每个任务在与共享资 源打交道时,必须独占该资源,这叫做互斥。
主要内容
1 嵌入式系统简介 2 嵌入式处理器 3 4 5 嵌入式操作系统 嵌入式系统典型应用
嵌入式系统的基本设计过程
RTOS介绍
实时操作系统的特点
• POSIX 表示可移植操作系统接口(Portable Operating System Interface of Unix
《嵌入式Linux开发技术及实践》课件第1章
图1-1 嵌入式系统组成
嵌入式系统各部分的功能如下:
应用软件可以具体实现用户的需求,是开发者在操作 系统上基于硬件接口所开发的软件,其功能是完成嵌入式系 统的功能应用;
嵌入式操作系统是整个系统的核心,它负责整个系统 的软、硬资源的分配,任务的调度和控制等,可实现系统所 要求的功能;
硬件设备包括嵌入式处理器及其外围设备,其中嵌入 式处理器是硬件设备中的核心,外围设备是嵌入式系统用于 实现存储、通信、显示等功能的辅助部件。
但是CPU与系统的兼容性很差,功能相对单一。
2. 现在 随着新技术、新工艺的飞速发展,嵌入式系统技术也获 得了广阔的发展。具体表现在:
嵌入式操作系统能够运行于各种不同类型的处理器上, 兼容性好、操作系统内核小、效率高,并且有高度的模块化 和扩展性。
同时具备文件和目录管理,支持多任务,支持网络应 用,具备图形窗口和用户界面,具有大量的应用程序接口 API,使得开发应用程序比较简单。
T:表示支持Thumb指令集。
D:表示支持片上调试。
M:表示支持内嵌硬件乘法器。
I:表示支持片上断点和调试点。
E:表示支持增强型DSP功能。
对于每一个授权公司和厂商来说,他们获得的授权都是 独一无二的。他们可以根据不同的应用领域和自身的技术优 势,适当加入外围电路,形成自己的ARM微处理器芯片进入 市场,从而缩短了开发周期,提升了产品竞争力。例如本书 采用的ARM9系列的ARM S3C2440,即为三星公司在ARM公 司向其授权的ARM9内核及开发技术基础上开发研制而成的 半导体芯片。
更重要的是,设计者们还可以根据目标系统的要求进行 软件、硬件的定制。
3. 未来 未来的时代是信息化、智能化和网络化的,嵌入式系统 还具有极其宽广的发展空间。根据目前用户对嵌入式设备的 需求来看,未来嵌入式系统应具有以下特点: 系统开发需要强大的开发工具和操作系统的支持。 Internet联网成为必然趋势。 精简系统内核、算法,降低功耗和软硬件成本。 提供良好的人机交互界面。
uClinux多任务编程与自启动( 有操作系统的嵌入式系统软件开发)
有操作系统的嵌入式系统软件开发摘要:传统的系统综合性强,但运行速度慢,耗用存储空间大,成本高。
嵌入式系统是基于指令可裁剪的面向应用、成本功能严格要求的计算机系统,针对性强。
本课程设计基于uClinux操作系统下,完成LED显示和串口通信两个任务与内核裁剪的编译以及硬件电路的设计。
实现对两个进程的调度,同时可以通过计算机的超级终端显示串口通信,在硬件电路中实现LED的显示功能。
关键字:嵌入式系统,uClinux操作系统,LED显示,串口通信,超级终端目录第1章绪论 (1)1.1 课题题目 (1)1.2 课程设计的任务 (1)1.3 课题研究的背景和意义 (1)1.4 研究的主要内容 (2)1.5 项目需用仪器设备名称 (2)第2章嵌入式操作系统软件开发概述 (3)2.1 有操作系统的软件开发流程 (3)2.2 有操作系统的软件运行模式 (4)第3章 Linux操作系统简介 (7)3.1 Linux操作系统介绍 (7)3.2 Linux操作系统的gcc编译器 (7)3.3 VI的介绍与使用 (8)第4章开发环境的建立 (9)4.1 建立主机Linux平台 (9)4.2 安装交叉编译工具 (10)第5章 uCLinux裁剪与编译 (11)第6章操作系统下多任务应用程序开发 (13)6.1 操作系统下多任务应用程序的开发流程 (13)6.2 添加应用程序至内核,使其随内核编译 (13)总结与心得 (16)参考文献 (17)附录1 led.c源代码 (18)附录2 uart.c源代码 (19)第1章绪论1.1 课题题目本课程设计的题目是:有操作系统的嵌入式系统软件开发《嵌入式技术》是我学院各专业的专业课程。
嵌入式系统开发的实质就是完成一台专用计算机系统的开发,嵌入式系统的两大特点是软、硬件密切联系和以应用为中心。
它是一门实践性很强的课程,既要掌握较多的软、硬件知识与技巧,又要实现嵌入式系统硬件平台进而加载应用程序,最后让系统上电自动运行。
嵌入式实时操作系统RTOS uCOS-II 原理及应用共115页
嵌入式实时操作系统RTOS uCOS-II 原 理及应用
56、极端的法规,就是极端的不公。 ——西 塞罗 57、法律一旦成为人们的需要,人们 就不再 配享受 自由了 。—— 毕达哥 拉斯 58、法律规定的惩罚不是为了私人的 利益, 而是为 了公共 的利益 ;一部 分靠有 害的强 制,一 部分靠 榜样的 效力。 ——格 老秀斯 59、假如没有法律他们会更快乐的话 ,那么 法律作 为一件 无用之 物自己 就会消 灭。— —洛克
嵌入式软件系统PPT课件
完整的嵌入式操作系统 内核 文件系统 人机界面等
25
2.4网络协议栈
协议栈为嵌入式系统产品提供网络功能 嵌入式协议栈的提供方式
独立的第三方协议栈产品 例如: inter niche的嵌入式TCP/IP
嵌入式操作系统的提供商提供协议栈产品 例如:NetBIOS、IPX/SPX
26
27
2.5应用软件
硬
件
LCD
USB
键盘
海量 存储器
时钟 日历
14
API函数(应用程序编程接口)
API 函数
绘图函数 Display.h
后台 缓冲区
文件读写函数 OSFile.h
文件管理函数 File.h
双向链表函数 List.h
系统控件函数 Control.h
15
操作系统
信号量
邮箱
消息 队列
任务调 度模块
动态内 基于uCOS-II 存管理 的RTOS内核
绘图函数 Display.h
后台 缓冲区
文件读写函数 OSFile.h
文件管理函数 File.h
双向链表函数 List.h
系统控件函数 Control.h
键盘扫描
系统消息
系统 消息队列 OSMessage.h
主任务
信号量
驱动 程序 drv.h LCD240.h
USB.h
Flash.h
Keyboard16.h
• 由于其本身不具备自主开发能力,必须有一套 开发工具和环境才能进行开发。
• 调试需要各种逻辑分析仪、混合信号示波器等。
3 概念列示
• 通用计算机程序开发和编译在一台计算机上完成
——直接编译。
• 嵌入式系统采用“宿主机/目标机”方式——交叉编译。
嵌入式实操作系统uCOS分析讲课文档
Washing machines and dryers
UPS (Uninterruptible Power Supplies)
Industrial controllers
GPS Navigation Systems
Microwave Radios
Instrumentation
Point-of-sale terminals
第十七页,共118页。
Korean
ISBN 89-951540-5-5
17 17
µC/OS-II的各种商业应用
全世界有数百种产品在应用:
Avionics(航空电子设备)
Medical
Cell phones
Routers and switches
High-end audio equipment
硬件抽象层的引入
嵌入式实时系统自底向上包含三个部分
硬件环境 嵌入式实时操作系统——RTOS 嵌入式实时应用程序
由于嵌入式系统应用的硬件环境差异较大 新增加的中间层位于操作系统和硬件之间,
包含了系统中与硬件相关的大部分功能 , 隐蔽了底层硬件的多样性
3
第三页,共118页。
嵌入式系统的体系结构
关中断/开中断
23 23
第二十三页,共118页。
C/OS-II开关中断的方法(续1)
C/OS-II定义了两个宏调用来开关中断:
OS_ENTER_CRITICAL( ) (禁止中断的宏)
OS_EXIT_CRITICAL( ) (启用中断的宏) 通常成对出现
上述宏定义取决于使用的微处理器。在文件 OS_CPU.H有相应的宏定义
HAL设计目标
支持多种的国际主流嵌入式芯片
支持数字电视机顶盒、智能手机、数字化音视频、数字仪表等数字化产品 中常见外设的驱动
嵌入式实时操作系统RTOS分析教学大纲
嵌入式实时操作系统RTOS分析教学大纲《嵌入式实时操作系统RTOS分析》教学大纲一、课程概述嵌入式计算机系统开发技术是继互联网技术之后,计算机应用技术的又一个发展热点,它的发展,对人类的工作、生活的影响,将较之互联网技术的影响更为深远,对计算机科学技术学科教学模式,人才培养模式也将产生重大的影响。
嵌入式系统是一项以计算机开发技术为基础的计算机应用技术,在嵌入式系统开发中,特别是嵌入式软件开发中,如何更好的使用各种开发工具,组织各种开发资源,是嵌入式软件开发的核心问题,其中,操作系统作为嵌入式基本软件资源,在嵌入式系统开发中,具有及其重要的地位,因此,学生在学完前续课程之后,开设《嵌入式实时操作系统分析》这门课程。
《嵌入式实时操作系统分析》是一门培养学生具有嵌入式系统管理软件、应用软件开发能力的技术基础课。
是计算机系嵌入式系统专业的主要课程之一,本课程在教学方面应着重基本知识、基本理论和基本方法,在培养实践能力方面着重于软件设计,特别是计算机管理软件设计构思、设计技能的基本训练。
《嵌入式实时操作系统分析》是计算机系嵌入式系统专业的专业基础课程,与《嵌入式系统应用原理》、《单片机应用技术》等课程处于同一层次。
它与《计算机组成原理》、《C语言程序设计》、《算法与数据结构》、《操作系统》、《单片机》等课程构成计算机系嵌入式系统专业系列课程体系。
先修课程有《电工电子电路》、《数字电路》、《计算机组成原理》、《C语言程序设计》、《算法与数据结构》、《单片机》、《操作系统》。
这门学科的重点是为“计算机系嵌入式系统专业”专业的学生,在系统软件应用设计与编程方面奠定最基本的知识和技能基础。
二、课程目标1.具有正确的系统软件设计思想、勇于创新探索、实事求是的严谨学习态度2.掌握系统管理软件的基本工作机理,掌握实时操作系统工作的—般规律,进而具有综合运用所学的知识,研究改进或开发新的基础管理软件及设计简单的管理模块的能力;3.具有运用编程规范、手册、图册和查阅有关技术资料的能力;4.掌握计算机系统管理软件的基本设计方法,获得有关计算机管理软件设计的基本技能的基本训练;5.了解当前的有关嵌入式技术的发展概况,并对嵌入式技术的新发展有所了解。
嵌入式Linux系统PPT课件
1,200
1,000
Millions of units
800
600
400
ARM68KMSIHP-S7XPXowXerP8C0X8S6PARCST20+
200
0
1998 1999 2000 2001 2002 2003 2004 2005 2006 2007
Founded in November 1990 Spun out of Acorn Computers---Advanced RISC Machines Ltd, now just ARM Ltd.
小
PXA270-S平台上Linux的引导加载程序设计第1阶段汇编代码,完成:
复位处理异常中断处理, 处理器及外设的初始化; 复制第2阶段代码到内 存
第2阶段汇编代码,初始 化各个操作代码的堆栈, 跳转到C代码
start.S
trampoline.S
C代码的主程序,将各个 功能串接起来,完成应 用的主要功能
4,500
4,000
3,500
3,000
2,500
2,000
1,500
1,000
500
0
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
PC/WS Embedded
相关内容 嵌入式系统 嵌入式处理器与平台的选择 Linux嵌入式操作系统
常见的嵌入式处理器:ARM、MIPS、PowerPC、x86……
为什么在嵌入式系统教学中选用ARM
典型的RISC体系结构
软件资源丰富、完善 编译器 操作系统 应用程序 调试工具
第11章Linux操作系统基础(60)(2)精品PPT课件
2020/10/9
10
A Free sample background from
Slide 11
构建交叉开发工具链的过程
5. 第一次编译gcc
完成此过程需要执行三个步骤,分别如下:
(1)修改t-linux下的内容
(2)配置gcc
(3)编译、安装gcc
6. 交叉编译glibc
这一步骤生成的代码是针对目标机cpu的,因此它属于一个交叉
4-12 13-17 18-37 38-45 46-52 53-60
2020/10/9
3
A Free sample background from
Slide 4
11.1 嵌入式Linux的开发环境
11.1.1 交叉开发概述 11.1.2 桌面Linux的开发工具链 11.1.3 嵌入式Linux的交叉开发工具链
到相关的网站下载包括binutils、gcc、glibc(如)及linux( 如)内核的源代码.注意:glibc和内核源代码的版本必须与目标机 上实际使用的版本保持一致. 2.建立环境变量
声明以下环境变量的目的是在之后编译工具库的时候用到, 很方便输入,尤其是可以降低输错路径的风险。
2020/10/9
。
2020/10/9
11
A Free sample background from
Slide 12
构建交叉开发工具链的过程
7. 第二次编译gcc 由于第一次安装的gcc没有交叉glibc支持,现在已经安装了
宿主机(Host)通过串口、网络连接或调试接口(如JTAG仿真 器)与目标机通信。宿主机的软硬件资源比较丰富,其操作系统 主要有Windows和Linux两种,其上用于开发程序的那套软件 工具,通常叫做开发工具链。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
采用完全适应于实时应用的按优先级抢占CPU的调度方法 采用完全适应于实时应用的按优先级抢占CPU的调度方法 CPU 这种方法保证任何时刻都是优先级最高的任务占用CPU CPU。 这种方法保证任何时刻都是优先级最高的任务占用CPU。 优先级最高的任务可以中断当前运行的程序而抢占CPU; 优先级最高的任务可以中断当前运行的程序而抢占CPU; 优先级较低的任务, 优先级较低的任务,只有在所有优先级比它高的任务都运行完 后才能投入运行。 后才能投入运行。
12
的性能特点-2 µC/OS的性能特点 的性能特点
抢占式(Preemptive) 抢占式(Preemptive)实时结构 多任务 C/OS-II可以管理64个任务 其中保留8个给系统。 可以管理64个任务, µC/OS-II可以管理64个任务,其中保留8个给系统。应用程序最多 可以有56 56个任务 可以有56个任务 可确定性 全部µ C/OS-II的函数调用与服务的执行时间是可确定的 的函数调用与服务的执行时间是可确定的。 全部µ C/OS-II的函数调用与服务的执行时间是可确定的。 任务栈 每个任务有自己单独的栈, 允许每个任务有不同的栈空间, 每个任务有自己单独的栈, 允许每个任务有不同的栈空间,以便减 少应用程序对RAM的需求。 RAM的需求 少应用程序对RAM的需求。 系统服务 C/OS-II提供很多系统服务 例如邮箱、消息队列、信号量、 提供很多系统服务, µC/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大 小固定的内存的申请与释放、时间相关函数等。 小固定的内存的申请与释放、时间相关函数等。 中断管理 中断可以使正在执行的任务暂时挂起, 中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该 中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行, 中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中 断嵌套层数可达255 255层 断嵌套层数可达255层。 稳定性与可靠性 13
4
RTLinux
支持POSIX.1b标准 支持POSIX.1b标准 POSIX 不同于微内核和大型内核,属于实时EXE( EXE(realtime executive)体 不同于微内核和大型内核,属于实时EXE(realtime executive)体 系结构。 系结构。 核技术: 个微型的RTLinux内核把原始的Linux RTLinux内核把原始的Linux内核作为它在空 双核技术:一个微型的RTLinux内核把原始的Linux内核作为它在空 闲时的一个线程来运行 闲时的一个线程来运行 Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核 在Linux内核与硬件中断之间增加一个精巧的可抢先的实时内核
µC/OS-II提供的系统服务 提供的系统服务
信号量 带互斥机制的信号量 减少优先级倒置的问题 事件标志 消息信箱 消息队列 内存管理 时钟管理 任务管理
1
课程大纲
RT-Linux操作系统 RT-Linux操作系统 实时操作系统μC/OS简介 实时操作系统μC/OS简介 μC/OS 实时操作系统μ /OS-II的内核结构 实时操作系统μC/OS-II的内核结构 实时操作系统μ /OS-II中的中断与任务通讯 实时操作系统μC/OS-II中的中断与任务通讯 实时操作系统µC/OS-II在ARM7上的移植 实时操作系统µC/OS-II在ARM7上的移植 µC/OS 上的 实时操作系统µC/OS实时操作系统µC/OS-III µC/OS
2
RTLinux(A Real-Time Linux) ( )
新墨西哥矿业及科技学院的 Yodaiken开发 新墨西哥矿业及科技学院的V. Yodaiken开发 Fsmlabs公司 Fsmlabs公司
有限状态机实验室 finite state machine labs, 有限状态机实验室
两个版本
RTLinux Free:由社区支持的 Pro:FSMLabs的商业版本 Pro:FSMLabs的商业版本 的商业
也支持其他的调度策略
EDP算法(截止时限靠前者最先调度) EDP算法(截止时限靠前者最先调度) 算法 RM算法 周期短者优先级高) 算法( RM算法(周期短者优先级高)等
RTlinux将任务调度器本身设计成一个可装载的内核模 RTlinux将任务调度器本身设计成一个可装载的内核模 用户可以根据自己的实际需要, 块,用户可以根据自己的实际需要,编写适合自己的调 度算法
由此可以看出,Linux程序的屏蔽中断( cli)不能禁止 由此可以看出,Linux程序的屏蔽中断( cli)不能禁止 ,Linux程序的屏蔽中断 实时中断的发生, 实时中断的发生,实时中断的延迟时间也完全由实时内 核的处理速度而决定。 核的处理速度而决定。
RTlinux的调度机制 的调度机制
任务调度策略
正常的Linux进程仍可以在Linux内核上运行 正常的Linux进程仍可以在Linux内核上运行 Linux进程仍可以在Linux
既可以使用标准分时操作系统即Linux的各种服务 既可以使用标准分时操作系统即Linux的各种服务 Linux 又能提供低延时的实时环境
RT-Linux
一个实时内核负责处理硬件消息,接管中断, 一个实时内核负责处理硬件消息,接管中断,实时任 务可在该内核上直接运行
嵌入式系统
AnIntroductiontoEmbeddedSystem
第十一课 嵌入式实时操作系统 RT-Linux,μC/OS RT-Linux,μC/OS
浙江大学计算机学院 陈天洲 2011.4.27 2011夏学期 周三下午1 夏学期, 周四晚上1 2011夏学期,周三下午1-3节,周四晚上1-3节 玉泉曹光彪西501 玉泉曹光彪西501
10
实时操作系统µ 实时操作系统µC/OS简介 简介
1992年美国人Jean Labrosse开发了 开发了µ 1992年美国人Jean Labrosse开发了µC/OS 年美国人 用于照相机、医疗器械、音响设备、发动机控制、 用于照相机、医疗器械、音响设备、发动机控制、高速 公路电话系统、 公路电话系统、自动提款机等诸多应用领域 1998年推出 C/OS年推出µ 1998年推出µC/OS-II
可以将其用于教学和私下研究 可以将其用于教学和私下研究 用于商业须许可 目前的版本 的版本µ 目前的版本µC/OS -II V2.88
2009年推出µC/OS2009年推出µC/OS-III 年推出
只提供库, 只提供库,不开源 抢先式多任务处理,无数目限制的任务及优先级,时间片轮番调度法 抢先式多任务处理,无数目限制的任务及优先级, 允许多任务具有相同的优先级
RTlinux的中断机制 的中断机制
RTlinux采用在Linux内核和中断控制硬件之间增加一 RTlinux采用在Linux内核和中断控制硬件之间增加一 采用在Linux 层仿真软件的方法截取所有的硬件中断, 层仿真软件的方法截取所有的硬件中断,将这些中断分 Linux中断和实时中断两类 中断和实时中断两类。 成Linux中断和实时中断两类。
没有针对实时操作系统的特性而重写Linux的 没有针对实时操作系统的特性而重写Linux的内核 Linux
工作量非常大 工作量非常大 非常 难以保证兼容性 难以保证兼容性
3
Linux提供实时性需要解决三个问题 提供实时性需要解决三个问题 提供实时性需要解决三个
1.关中断问题
Linux处于内核临界区时,中断会被系统屏蔽 Linux处于内核临界区时,中断会被系统屏蔽 处于内核临界区时 如果当前进程正处于临界区 即使它的优先级较低, 当前进程正处于临界区, 如果当前进程正处于临界区,即使它的优先级较低,也会延迟 高优先级的中断请求。 高优先级的中断请求。
Tlinux收到实时中断 收到实时中断) if(RTlinux收到实时中断) 继续向硬件发出中断; 继续向硬件发出中断; else if(Linux内核屏蔽它 内核屏蔽它) if(Linux内核屏蔽它) 此中断请求将被忽略; 此中断请求将被忽略; else 将其交于Linux内核来处理; Linux内核来处理 将其交于Linux内核来处理;
2.进程调度问题 2.进程调度问题
内核不可抢占,基于固定时间片的可变优先级调度 内核不可抢占,基于固定时间片的可变优先级调度 固定时间片的可变优先级
3.时钟问题
Linux为了提高系统的平均吞吐率, Linux为了提高系统的平均吞吐率,将时钟中断的最小间隔设 为了提高系统的平均吞吐率 置为10ms 不能满足实时任务的 10ms, 满足实时任务的需要 置为10ms,不能满足实时任务的需要 由于Linux的进程切换比较费时 把时钟间隔改 Linux的进程切换比较费时, 时钟中断变 由于Linux的进程切换比较费时,把时钟间隔改小,时钟中断变 频繁, 在中断处理上的时间就越多 频繁,花在中断处理上的时间就越多
2000年 得到美国航空管理局(FAA)的认证, 2000年,得到美国航空管理局(FAA)的认证,可以用 于飞行器中 11 网站www.ucos ( www.ucos网站()
µC/OS的性能特点 的性能特点
开源代码 可移植性(Portable) 可移植性(Portable) C/OS-II源码主要用 源码主要 C写 移植性很强的。 µ C/OS-II源码主要用ANSI C写,移植性很强的。 只有和微处理器硬件相关的那部分直接用汇编语言写的 只有和微处理器硬件相关的那部分直接用汇编语言写的,汇编语 言写的部分已经压到最低限度,约200行 言写的部分已经压到最低限度, 200行 限度 µ C/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、 C/OS-II可以在绝大多数8 16位 32位以至64位微处理器、 可以在绝大多数 位以至64位微处理器 数字信号处理器(DSP)上运行。 微控制器 、数字信号处理器(DSP)上运行。 可固化(ROMable) 可固化(ROMable) C/OS-II是为嵌入式应用而设计的 内核可以裁剪得很小, 是为嵌入式应用而设计的, µ C/OS-II是为嵌入式应用而设计的,内核可以裁剪得很小,可 以嵌入到任何产品中 以嵌入到任何产品中 最小内核可编译至 2KB 可裁剪(Scalable) 可裁剪(Scalable) 通过条件编译,可以根据应用需要只使用µ C/OS-II中的部分那 通过条件编译,可以根据应用需要只使用µ C/OS-II中的部分那 些系统服务。 些系统服务。