河北网络_vxworks任务管理

合集下载

VxWorks使用说明书

VxWorks使用说明书

VxWorks使用说明书1、概述VxWorks操作系统的集成环境叫Tornado。

T ornado集成环境提供了高效明晰的图形化的实时应用开发平台,它包括一套完整的面向嵌入式系统的开发和调测工具。

Tornado环境采用主机-目标机交叉开发模型,应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器(T arget Server)与目标机上的目标代理(Target Agent)的通信完成对应用程序的调试、分析。

它主要由以下几部分组成:VxWorks高性能的实时操作系统;* 应用编译工具;* 交互开发工具;下面对T ornado集成环境的各组件功能分别介绍:* Tornado开发环境Tornado是集成了编辑器、编译器、调试器于一体的高度集成的窗口环境,同样也可以从Shell窗口下发命令和浏览。

* WindConfig:T ornado系统配置通过WindConfig可选择需要的组件组成VxWorks实时环境,并生成板级支持包BSP的配置。

通过修改config.h可以实现WindConfig的所有功能,并且,可以实现WindConfig不能实现的功能。

* WindSh:Tornado外壳WindSh是一个驻留在主机内的C语言解释器,通过它可运行下载到目标机上的所有函数,包括VxWorks和应用函数。

Tornado外壳还能解释常规的工具命令语言TCL。

WindSh不仅可以解释几乎所有的C语言表达式,而且可以实现所有的调试功能。

它主要有以下调试功能:下载软件模块;删除软件模块;产生任务;删除任务;设置断点;删除断点;运行、单步、继续执行程序;查看内存、寄存器、变量;修改内存、寄存器、变量;查看任务列表、内存使用情况、CPU利用率;查看特定的对象(任务、信号量、消息队列、内存分区、类);复位目标机。

* 浏览器Tornado浏览器可查看内存分配情况、任务列表、CPU利用率、系统目标(如任务、消息队列、信号量等)。

VxWorks操作系统基础(适合初学者阅读)2024新版

VxWorks操作系统基础(适合初学者阅读)2024新版
提供最基本的系统服务,如任务调度、内存管理、中断处理等。
系统库(System Library)
提供一系列操作系统服务,如文件操作、网络协议栈等。
驱动程序(Device Drivers)
与硬件设备交互,实现对硬件设备的控制和管理。
内核组成及作用
内核组成及作用
01
内核的主要作用包括
02 管理系统资源,如CPU、内存、I/O设备等 。
06
VxWorks文件系统操作指南
文件系统类型及特点介绍
RAM-based File System
基于RAM的文件系统,读写速度快,但数据在 关机后丢失。
TrueFFS
Wind River特有的闪存文件系统,提供磨损均 衡和掉电保护功能。
ABCD
DOS File System (dosFs)
兼容MS-DOS的文件系统,支持FAT12、FAT16 和FAT32格式。
01
VxWorks操作系统概述
VxWorks操作系统定义
VxWorks是一款由美国风河公司( Wind River)开发的嵌入式实时操 作系统(RTOS),专为需要实时响 应和高可靠性的应用而设计。
VxWorks提供了丰富的中间件和开发 工具,支持多种处理器架构和硬件平 台,广泛应用于航空、航天、通信、 医疗、工业自动化等领域。
在ISR中处理完中断事件后, 需要及时清除中断标志,避 免重复处理。
中断优先级设置和嵌套处理
01
VxWorks支持多级中断优先级,高优先级的中断可以打断低优先 级的中断处理。
02
中断优先级可以通过配置文件或动态调整进行设置,以满 足不同应用场景的需求。
03
在处理中断时,如果发生更高优先级的中断请求, VxWorks会自动保存当前中断的上下文信息,并跳转到更 高优先级的中断处理程序中。处理完成后,再恢复之前中 断的上下文信息并继续执行。这种机制称为中断嵌套处理 。

VxWorks简要手册

VxWorks简要手册

1.
VxWorks操作系统概述
1.1.VxWorks 操作系统简介
实时多任务操作系统是能在确定的时间内执行其功能,并对外部的异步事件作出响应的计算机系 统。多任务环境允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资 源。 VxWorks 系统提供多处理器间和任务间高效的信号灯、消息队列、管道、网络透明的套接 5
7
1.1.任务管理
任务是代码运行的一个映象,从系统的角度看,任务是竞争系统资源的最小运行单 元。任务可以使用或等待CPU、I/O设备及内存空间等系统资源,并独立于其它任务,与 它们一起并发运行(宏观上如此)。 VxWorks 内核使任务能快速共享系统的绝大部分资 源,同时有独立的上下文来控制个别线程的执行。 1.1.1.任务结构 多任务设计能随时打断正在执行着的任务,对内部和外部发生的事件在确定的时间里 作出响应。VxWorks实时内核Wind提供了基本的多任务环境。从表面上来看,多个任务 正在同时执行,实际上,系统内核根据某一调度策略让它们交替运行。系统调度器使用任 务控制块的数据结构(简记为TCB)来管理任务调度功能。任务控制块用来描述一个任务, 每一任务都与一个 TCB 关联。 TCB 包括了任务的当前状态、优先级、要等待的事件或资 源、任务程序码的起始地址、初始堆栈指针等信息。调度器在任务最初被激活时以及从休 眠态重新被激活时,要用到这些信息。 此外,TCB还被用来存放任务的"上下文"(context)。任务的上下文就是当一个执 行中的任务被停止时,所要保存的所有信息。在任务被重新执行时,必须要恢复上下文。 通常,上下文就是计算机当前的状态,也即各个寄存器的内容。如同在发生中断所要保存 的内容一样。当发生任务切换时,当前运行的任务的上下文被存入TCB,将要被执行的任 务的上下文从它的TCB中取出,放入各个寄存器中。于是转而执行这个任务,执行的起点 是前次它在运行时被中止的位置。 VxWorks中,内存地址空间不是任务上下文的一部分。所有的代码运行在同一地址空 间。如每一任务需各自的内存空间,需可选产品VxVMI的支持。 1.1.2.任务状态和状态迁移 实时系统的一个任务可有多种状态,其中最基本的状态有四种: 就绪态:任务只等待系统分配CPU资源; 悬置态:任务需等待某些不可利用的资源而被阻塞; 休眠态:如果系统不需要某一个任务工作,则这个任务处于休眠状态; 延迟态:任务被延迟时所处状态; 当系统函数对某一任务进行操作时,任务从一种状态迁移到另一状态。处于任一状态 的任务都可被删除。

VxWorks操作系统简介

VxWorks操作系统简介

VxWorks操作系统简介VxWorks操作系统简介VxWorks操作系统是一种广泛应用于嵌入式系统开发的实时操作系统。

本文将详细介绍VxWorks操作系统的架构、特性、应用领域以及相关的法律名词注释。

一、VxWorks操作系统架构VxWorks操作系统采用分层架构,包括内核层、中间层以及外围应用层。

具体架构如下:⒈内核层:提供底层的操作系统服务,包括任务管理、内存管理、中断处理、设备驱动等。

内核层使用高度模块化的设计,可以根据需求选择性地加载不同的内核服务。

⒉中间层:提供更高层次的功能,如文件系统、网络协议栈、图形用户界面等。

中间层通过对内核接口的封装,提供更便捷的应用开发接口。

⒊外围应用层:包括用户应用程序和系统管理工具。

用户应用程序可以基于VxWorks操作系统的开发环境进行开发,并且通过内核和中间层提供的接口与系统进行交互。

二、VxWorks操作系统特性VxWorks操作系统有以下特点:⒈实时性:VxWorks操作系统被广泛应用于实时系统开发,具有快速响应、低延迟和可预测性等特性。

它使用了优化的调度算法和中断处理机制,确保系统对实时任务的及时响应。

⒉可靠性:VxWorks操作系统采用了可靠性设计和故障恢复机制,例如内存保护、任务隔离和异常处理等。

这些机制可最大限度地减少系统崩溃和错误的影响。

⒊可扩展性:VxWorks操作系统具有高度可扩展性,可以根据应用的需要进行灵活配置。

开发人员可以根据系统需求选择性地加载所需的内核服务和中间层模块,以达到最佳性能和资源利用。

⒋安全性:VxWorks操作系统提供了多层次的安全机制,包括权限控制、数据加密和访问控制等。

这些机制可以在网络和物理环境中保护系统不受未经授权的访问和攻击。

三、VxWorks操作系统的应用领域VxWorks操作系统在各行各业都有广泛的应用,特别适用于对实时性和可靠性要求较高的领域。

以下是一些典型的应用领域:⒈工业自动化:VxWorks操作系统被广泛用于控制系统和工业领域,如汽车制造、航空航天和机械制造等。

VxWorks下的任务监控方法及应用

VxWorks下的任务监控方法及应用

VxWorks下的任务监控方法及应用1 VxWorks交叉开发模式在VxWorks下应用软件开发时采用交叉开发模式,宿主机通常是普通的PC机,目标机就是应用程序真实的运行的硬件平台;集成开发环境Tornado位于宿主机,用户通过Tornado开发环境完成代码编写、编译、链接,宿主机与目标机通过分别位于其上的Target Server和Target Agent实现信息交互,物理连接往往是串口或者网络,在开发调试过程中,用户将编译链接后的目标代码通过Target Server加载到目标机上运行,可以通过Tornado下的Shell、Debugger、Browser以及Windview等工具监控目标机上应用程序任务的运行情况,应用程序使用printf语句打印的调试信息回送到宿主机,借助打印信息和Tornado提供的各种调试工具,开发者可以监控任务的运行情况,当某个任务出错时,可以通过各种输出信息分析问题原因。

但是一旦完成开发投入实际试验使用,由于实际使用环境和当初的开发调试环境有较大的区别,难免会出现各种异常情况,比较常见的异常就是任务挂起,在这种情况下开发者往往无法像在地面调试时那样可以外接调试电缆捕获异常信息,以确定发生异常的任务,也无法捕获开发者在开发过程中的辅助打印信息,这种情况在战斗机机载软件尤为常见。

基于VxWorks的应用软件大多采用多任务方式,无法像以前没有操作系统的嵌入式系统那样,通过硬件看门狗电路,在软件运行出错时自动重启恢复软件运行,一个任务出错往往并不会引起操作系统重启,用户通过上层很难判断应用软件运行是否正常。

因此需要建立软件看门狗机制,监控任务运行情况,在出现异常时记录必要的异常信息,自动重启设备。

同时,需像开发阶段那样记录输出信息,以辅助分析异常原因。

2 系统输出信息捕获在VxWorks下系统输出信息包括:标准输出(STD_OUT,文件描述为1)和标准错误输出(STD_ERR,文件描述为2)。

基于VxWorks的多任务程序设计及通信管理

基于VxWorks的多任务程序设计及通信管理

摘 要 :为 了满足 系统各 个任 务 对 实时 性 的要 求 ,需要 实现 各 个 任 务 的 并行 处理 。针 对 V Wok 操 作 系统 的 x rs 多任 务 调 度 机 制 和 任务 通 信 方式 进 行 了分 析 ;采 用基 于 时 间 片轮 转 调 度 实现 多任 务 程 序 设 计 ,可 以 动 态 改 变

第2卷 7
第9 期
Vo . No. I 27 9
制块 的数据结构 ( 简称 T B C )来实现任务调度 功能。
1 引
言与一个
T B关联 T B包括 了任 务 的 当前状 态 、优先 级 、 C C
在 嵌 入 式 系统 的 应 用 开 发 中 ,采 用 嵌 入 式 实 时
mig swela ,t e t lc fte e p cain fe c a k r n i gc u d b y a c l h n e .Atte s me n ,a l s h i sie o x e tt so a h t s u n n o l e d n mial c a g d me h o y h a
kn s o a k s r q i d id fts s wa e u r .Mu t— a k s h d l g a d t s o e l ts c e u i n a k c mmu iain me h n s b u W o s o e aig i n nc t c a im a o tVx k p r t o n s s m e e a ay e . h e in o tt g s h d l a e n t l ewa u n u e o h l — a k p o r m- y t w r n l z d T e d s f oai c e ue b s d o me s c sp t s n te mu t ts rg a e g r n i i i i

VxWorks下周期任务调度和任务周期选择

VxWorks 下周期任务调度和任务周期选择发布日期:2006-05-24 作者:张强 李鸥 来源:微计算机信息【摘要】:本文介绍了VxWorks 操作系统下任务调度的策略,分析了实际设计应用中,周期任务调度的需求。

介绍了一种在VxWorks 操作系统下优化周期任务周期的方法。

【关键字】 Vxworks 实时 周期任务 调度1 引言VxWorks 是WindRiver 公司开发的具有工业领导地位的高性能实时操作系统,它是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。

其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。

在VxWorks 下开发的许多实际应用中,尤其是计算机控制系统中,任务往往有最大的延迟或者说等待时间,它们被设计成周期任务。

为了提高应用系统的性能,要为周期任务选择合适的周期。

本文介绍在VxWorks 系统下选择任务周期的一种方法。

2 Vxworks 实时内核Wind 的任务调度Wind 内核默认采用基于优先级的抢占式调度(Priority-base preemptive scheduling )算法。

同时,还可以选用轮转(round-robin )调度算法。

不同优先级任务之间,采用基于优先级的抢占式调度算法。

系统中每个任务都有一个介于最高0到最低255之间的优先级。

任一时刻,内核把CPU 分配给处于就绪态的优先级最高的任务运行。

如果系统内核一旦发现一个优先级更高的任务转变为就绪态,内核就立刻保存当前任务的上下文,把当前任务状态转换为阻塞态,同时切换到这个高优先级任务的上下文执行。

等待高优先级任务执行完才执行低优先级的任务。

相同优先级的多个任务之间,采用时间片轮转调度算法。

轮转调度算法试图让优先级相同的、处于就绪态的任务公平的分享CPU ,系统让处于就绪态的优先级相同的一组任务依次轮流执行预先确定长度的时间片。

当一个任务到达时,它被排在轮转队列的后面,等待分配给自己的时间片的到来,如果在时间片内没有运行完,则再等待属于自己的时间片的到来,直到任务完成。

VxWorks7之用户管理

VxWorks7之⽤户管理前⾔VxWorks 7.0 整合了过往版本对⽤户管理的功能,通过Layer <User Authentication and Management> 管理系统⽤户,以⽀持Target Shell、SSH、FTP、Telnet等⽤户交互场景。

本⽂章介绍⽤户管理组件的配置⽅法和使⽤相关。

⽤户认证和管理即:User Authentication and Management如何配置⽤户认证功能? 1. VSB配置选择 USER_MANAGEMENT并可选择性配置其下安全策略:USER_MANAGEMENT_POLICYUSER_MANAGEMENT_USER_PRIVILEGESUSER_MANAGEMENT_LDAP注意:为了降低⽤户管理功能失败的风险,以上3个可选项不⽤配置。

配置后,可能会出现⽆法增加⽤户的问题。

2. VIP配置1)通过组件 SELECT_USER_AUTHENTICATION_BACKEND 选择⾝份验证后端以使能⽤户管理,默认配置为本⽤户认证 INCLUDE_LOCAL_AUTH。

2)配置组件 INCLUDE_SEC_VAULT_KEP_OBFUSCATOR,第⼀次配置时会报错,这是因为SEC_VAULT_KEY_ENCRYPTING_PW参数未设置。

此参数应配置为⾄少40字节长的随机字符串,⽰例如下:"2QEciN7Ua1StundNG8WFiOSlCUVFSUCZvrS4VlQR"3)增加组件INCLUDE_USER_DATABASE,设置⽤户数据⽂件路径配置参数UDB_STORAGE_PATH,存储设备应为本地⾮易失性存储磁盘,例如:"/mmc2a/vxLoginUsers.txt"设置UDB_HASH_KEY:#define UDB_HASH_KEY"\x48\x61\x6d\x6c\x65\x74\x2e\x20\x54\x6f\x20\x62\x65\x2c\x20\x6f\x72\x20\x6e\x6f\x74\x20\x74\x6f\x20\x62\x65\x2d\x20\x74\x68\x61\x74\x20\x69\x73\x20\x74\x68\x65\x20\x71\x75\x65\x73\x74\x69\x6 3. 运⾏时配置⽬标板启动后,本地命令⾏下增加/注册新⽤户:-> userAdd "user","password"-> udbInfoShowUser database:- storage path: /mmc2:1/vxLoginUsers.txt- version: 3- number of records: 2value = 0 = 0x0远程telnet、rlogin登录⽬标板时,要求输⼊⽤户名和密码,使⽤已注册的⽤户登录即可。

VxWorks操作指南

VxWorks操作指南项目\子项目名称:3G BTS平台分系统拟制部门:科技发展部拟制日期:2000.2.28目录1. 实时嵌入式操作系统V X W ORKS (3)2.V X W ORKS和T ORNADO (4)3.T ORNADO的配置 (5)3.1 主机的设置:Tornado Register (5)3.2 目标的设置 (6)4.T ORNADO开发工具的使用介绍 (7)4.1 Editor (7)4.2 Projects(Tornado 2.0版本特有) (7)4.3 Shell (8)4.4 Debugger (9)4.5 Browser (10)4.6 GNU工具 (10)4.7 Target Server (11)5.V X W ORKS的启动过程及相关例程 (12)5.1 VxWorks启动的一般原理 (12)5.2 MSDOS的启动过程 (13)6.V X W ORKS的多任务管理 (14)6.1多任务 (14)6.2任务状态转换 (14)6.3 wind任务的排序(scheduling)机制 (14)6.4 任务控制 (15)6.5 任务的删除和删除安全 (15)6.6 任务异常处理 (16)6.7 VxWorks系统任务 (16)7任务间通信(原语消息的传递) (16)7.1 概述 (16)7.2 互斥 (17)7.3 同步 (18)7.4 删除安全 (19)7.5 中断和任务间的通信 (19)8应用程序的加载 (19)1.实时嵌入式操作系统VxWorksVxWorks操作系统是一种应用广泛的嵌入式实时多任务操作系统。

其内核WIND具有强占式优先级排序的多任务处理能力,提供了任务间同步和通信的机制,支持中断处理、看门狗定时器和内存管理功能。

VxWorks的开发环境是Tornado,应用程序的开发语言是ANSI C和C++。

VxWorks的开发体系是代理-服务器(Agent-Server)结构体系,即驻留在主机(Host)的开发工具Tornado通过目标服务器(Target Server)指示目标上的目标代理(Target Agent)进行目标板上的操作并将结果返回给主机。

VxWorks开发教程

数。
任务删除
使用`taskDelete()`函数删除 指定任务,释放任务所占用的
资源。
任务状态转换
通过`taskSuspend()`和 `taskResume()`函数实现任务
的挂起与恢复,通过 `taskDelay()`函数实现任务延
时。
任务优先级调度策略
优先级抢占式调度
01
高优先级任务可抢占低优先级任务的执行,确保关键任务得到
TCP/IP通信实例分析
通过分析一个简单的基于TCP/IP协议栈的通信实例,加深对网络通信编程的理解和掌握。
无线通信模块集成与调试经验分享
01
02
无线通信模块概述
介绍常见的无线通信模块类型及其特点, 如Wi-Fi模块、蓝牙模块、ZigBee模块 等。
模块集成步骤与注意 事项
详细讲解无线通信模块与VxWorks系 统的集成步骤,包括硬件连接、驱动程 序开发、协议栈配置等,并分享一些实 用的调试技巧和经验。
套接字编程基本流程
包括创建套接字、绑定地址、监听连接、接受连接、发送和接收数据等步骤。
基于TCP/IP协议栈网络通信实现
TCP/IP协议栈概述
介绍TCP/IP协议栈的基本概念和层次结构,以及各层的主要功能和协议。
网络通信编程接口
讲解VxWorks提供的网络通信编程接口,如socket()、bind()、listen()、accept()、send()、recv()等函数 的使用方法和注意事项。
中断控制器识别中断源,并将其传递 给CPU。
中断类型及响应过程
3. 中断处理
CPU保存当前执行上下文,跳转到中 断处理程序执行。
4. 中断返回
中断处理程序执行完毕后,CPU恢复保 存的上下文并继续执行原程序。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 任务管理、任务创建、任务调度、时钟、中 断、内存管理
• 在VxWorks中,每个明显独立的程序在运 行时称之为任务
嵌入式操作系统
火龙果整理
cobble.c
• 四个任务
– 第一个任务tCosmos模拟一个中断服务程序 生成新数据——cosmos( ) – 第二个任务tSchlep收集数据——schlep( ) – 第三个任务tCrunch处理数据,完成计算并求 出一个结果——crunch( ) – 第四个任务tMonitor监视结果值,当结果超 出安全范围时,向屏幕打印报警信息—— monitor( )
• !由于没有访问内存任何约束和保护,因
而对代码质量提出了更高的要求
• 当选用VxVMI时,每个任务各自的地址空 间需要进行虚拟地址到物理地址的转换
嵌入式操作系统
火龙果整理
1.2 任务的结构
data段
数据段 bss段 TCB 代码段 堆栈段
不需要进行用户、内核的区分
嵌入式操作系统
– 当目标代理设置为运行在任务模式时,创建此任务 – 处理来自Tornado目标服务的请求
★以上3种任务都属于VxWorks的基本任务
嵌入式操作系统
火龙果整理
• 网络任务:tNetTask(INCLUDE_NET_LIB) – 后台处理VxWorks网络需要的任务级功能处理
–栈 – 任务的状态 – 延迟定时器 – 时间片定时器 – I/O操作分配的标准输入/输出,标准错误输出 操作
嵌入式操作系统
火龙果整理
– 内核控制结构 – 信号处理信息 – 错误信息 – 调试和性能监视状态 – 任务变量(可选) – 浮点上下文(可选) – 可扩展项 (可选)
火龙果整理
1.3 任务的标识
• VxWorks下标识任务有两种途径:任务名称和任 务ID号 • 任务名称
– 是独一无二的字符串 – 主机任务以字母u开头 – 目标机任务以字母t开头
• 任务ID号
– 长度为4字节,指向TCB
• VxWorks提供任务名称和任务ID之间的转换函数
高地址 pStackEnd
StackSize
pStackBase
TCB
低地址
16bytes
pTCB
pTaskMem
嵌入式操作系统
火龙果整理
• VxWorks操作系统提供函数checkStack( ) 来检查任务栈使用情况
– checkStack( )显示了单个指定任务或者所有任 务的栈使用情况,包括:
– #define SHELL_STACK_SIZE 10000
• VxWorks支持独立的中断栈,对所有的 ISR使用相同的中断栈
– 中断栈在系统启动时根据配置参数设置位 置、大小和填充。在configAll.h中有缺省定 义:
#define ISR_STACK_SIZE 1000
嵌入式操作系统
typedef struct taskVar /* TASK_VAR */ { struct taskVar * next; int *address; intvalue; } TASK_VAR;
• VxWorks提供库taskVarLib库支持任务变 量机制
嵌入式操作系统
火龙果整理
errno
errorStatus
嵌入式操作系统
火龙果整理
• 上下文切换分两种情况:同步和异步 • 同步上下文切换,引起的原因是当前运行的任务 执行下列操作:
– 进行阻塞、延迟、挂起的调用; – 使更高优先级任务就绪而发生优先级抢占 – 降低自身优先级或者退出;
• 异步上下文切换,通常由ISR使更高优先级任务就 绪引起。
火龙果整理
• VxWorks下任务具有如下特点:
– 任务切换时不需要进行虚拟地址空间切换 – 任务间可以直接共享变量,不需要通过内核 在不同的地址空间复制数据 – 系统调用时不需要在核心态和用户态之间切 换,相当于直接的函数调用
嵌入式操作系统
火龙果整理
嵌入式操作系统
火龙果整理
嵌入式操作系统
火龙果整理
嵌入式操作系统
火龙果整理
2.1 任务的创建与激活
• VxWorks的TaskLib库中提供多个函数用于创建 任务:
调用 taskSpawn() 描述 创建并激活一个任务 初始化一个新任务 激活一个初始化任务
• • • • 栈大小(SIZE) 栈当前使用数(CUR) 历史使用峰值(HIGH) 最大可能空余数(MARGIN=SIZE-HIGH)
• Tornado中的browser也可查看栈的使用情 况 • !堆栈诊断前提:栈初始化时要用0xee填 充
嵌入式操作系统
火龙果整理
• shell下创建任务时默认堆栈大小(sp命 令)
火龙果整理
TCB
• TCB用来描述一个任务,每一任务都与一 个TCB关联
• TCB用windTcb结构体来描述
– VxWorks的taskLib库中定义(taskLib.h)
嵌入式操作系统
火龙果整理
• TCB中上下文信息包含的具体内容:
– 程序执行点(PC) – CPU状态,包括各种处理器特定的寄存器
嵌入式操作系统
火龙果整理
第3章 VxWorks任务管理
1、 VxWorks下的任务
2、 VxWorks下任务控制及任务编程
3、 VxWorks任务调度
嵌入式操作系统
火龙果整理
• 重点掌握
– VxWorks下任务的特点 – VxWorks提供的任务控制函数及应用 – VxWorks提供的任务调度策略及应用
多用户性、任务间的亲属关系、文件打开表、队列信 息、 虚拟内存信息、错误状态等
•栈
栈的大小、中断栈
• 任务状态
状态的种类、状态间的转换
嵌入式操作系统
火龙果整理
2、VxWorks下任务控制及任务编程
• • • • • • 任务创建和激活 任务删除与任务安全 任务的状态控制 任务信息的获取 任务扩展函数 代码的共享与重入
挂起
taskSuspend() taskResume()/taskActivate()
要使刚创建的任务就绪, taskResume() 要激活该任务 taskSuspend()
阻塞
就绪
semTake()/msgQReceive()se mGive()/msgQSend() 抢占 调度
睡眠
taskDelay() 使用spawning原语,可以直接延 时已到 创建并激活一个任务 任务可以在任何状态下被删除
• 当有多个任务变量时,任务变量以单向链表 的形式存在
嵌入式操作系统
火龙果整理
• 任务切换时需要遍历任务变量链表,进行 变量值的恢复和保存——降低效率
• !此机制会降低任务上下文切换的效率, 建议编程时谨慎使用
嵌入式操作系统
火龙果整理
堆栈
• 在任务创建时指定 堆栈的大小 • TCB记录了位置和 大小等栈信息 • 任务栈大小的设置 必须合理
嵌入式操作系统
火龙果整理
• 日志任务:tLogTask
– 记录系统信息的任务。它不执行输入/输出操作。
• 异常处理任务:tExcTask
– 提供VxWorks异常处理包,完成在中断级不能执行的 功能 – 必须具有系统最高的优先级 – 不能挂起、删除、改变其任务的优先级
• 目标代理服务:tWdbTask(INCLUDE_WDB)
• 子函数——nodeAdd( ),nodeScrap( )
嵌入式操作系统
火龙果整理
1.1 任务运行的地址空间
• VxWorks操作系统采取线性单一实地址空 间模式,所有任务都运行在同一地址空 间,不区分用户态和核心态
嵌入式操作系统
火龙果整理
嵌入式操作系统
taskInit()
taskActivate()
嵌入式操作系统
火龙果整理
taskSpawn()—创建并激活一个新任务
int taskSpawn ( char *name,/*新任务的任务名*/ int priority,/*新任务的优先级*/ int options,/*任务选项字*/ int stackSize,/*堆栈大小*/ FUNCPTR entryPt,/*新任务的入口函数*/ int arg1,arg2,arg3,arg4,arg5, /*传递给入口函数*/ int arg6,arg7,arg8,arg9,arg10 /*的10参数*/ )
嵌入式操作系统
火龙果整理
• errno的值由4个字节表示,2个高字节表示 产生错误的模块组件编码,2个低字节表示 错误编号
– 如0x110001,表示内存不足
• VxWorks提供errnoLib库用于获取和设置 任务和中断的错误状态值
嵌入式操作系统
火龙果整理
嵌入式操作系统
火龙果整理
1、 VxWorks下任务的特点
任务运行的地址空间 任务结构 任务的标识 任务的状态及状态转换 任务的上下文切换
嵌入式操作系统
火龙果整理
• VxWorks中的wind内核为VxWorks提供了 一个高性能的实时多任务操作环境
嵌入式操作系统
火龙果整理
1.4 任务的状态
• 5种基本状态:
– – – – – 执行(RUN) 就绪(READY)——任务只需等待cpu 阻塞(PEND)——有cpu以外的资源不可用 睡眠(DELAY)——任务处于睡眠状态 挂起(SUSPEND)——一般用于调试
• 多种组合状态
执行
嵌入式操作系统
火龙果整理
任务的状态队列
嵌入式操作系统
火龙果整理
相关文档
最新文档