2003-Vxworks基础
VxWorks任务基础

任务优先级
从0(最高)到255(最低) 程序员可以动态地对优先级进行操作 – taskPriorityGet (tid, &priority) – taskPrioritySet (tid, priority) 使用这些函数会使得程序分析起来比较困难,不 建议使用
任务堆栈(stack)
什么时候会发生上下文切换
任务在执行过程中会发生同步上下文切换 – 任务自身发生阻塞、延时、挂起等状态变化 – 当一个优先级高的任务准备运行 – 降低任务的优先级或任务退出执行(不常发生) 当有中断ISR到来时会发生异步上下文切换 – 使得一个优先级高的任务准备运行 – 挂起当前的任务或降低它的优先级(不常发生) 同步上下文切换比异步上下文切换要保存的寄 存器少,因此切换速度快
任务控制
(2)任务挂起/恢复(suspend/resume) taskSuspend(tid) 使任务不能够执行 可以被增加阻塞和睡眠状态 一个任务可以安全地挂起自己 taskResume(tid) 取消挂起 通常taskSuspend()和taskResume()被用于调试 和开发的目的
任务控制
(3)任务睡眠(delayed) 使任务睡眠一定的系统时钟周期 – STATUS taskDelay(ticks) 每隔1/7秒进行轮询 FOREVER{ taskDelayed( sysClkRateGet()/7); … } 使用sysClkRateSet()改变时钟频率
4.5.3 代码重入(Reentrancy)
代码重载是指同一段代码可以被多个任务调用, 而且不出错。 代码内应该无全局变量或静态变量;代码不修 改自身。 VxWorks使用下面的机制来实现重入 – 动态堆栈变量 – 由信号量保护的全局或静态变量 – 任务变量
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入门

1. 概述1.1 TORNADO 组件1.1.1 开发工具1.1.2 实时系统1.1.3 Tornado 文件目录1.2 硬件/软件配置1.3 booting介绍1.4 Tornado开始过程1.5 WDB 代理2 Projects2.1 bootable projects2.2 集成模拟器vxsim2.3 Downloadable projects 2.4 build说明3 WindSh 和Browser3.1 WindSh3.2 Browser4 CrossWind4.1 Debugging简介4.2 任务级Debugging 4.3 系统级DebuggingVxWorks 是美国Wind River System 公司(以下简称风河公司,即WRS 公司)推出的一个实时操作系统。
WRS 公司组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。
VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
在美国的F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。
1984年WRS 公司推出它的第一个版本--VxWorks 1.0.1,在1999年推出了它的最新版本VxWorks 5.4。
从1995年以后,WRS 公司推出了一套实时操作系统开发环境-- Tornado。
1.1 Tornado2.0 组件Tornado是嵌入式实时领域里最新一代的开发调试环境。
Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。
T ornado包含三个高度集成的部分:. 运行在宿主机和目标机上的强有力的交叉开发工具和实用程序;. 运行在目标机上的高性能、可裁剪的实时操作系统VxWorks;. 连接宿主机和目标机的多种通讯方式,如:以太网,串口线,ICE或ROM仿真器等。
Vxworks基础

为各种目标板的硬件功能提供了统一的软件接口 它们包括: 硬件初始化 中断处理和产生 硬件时钟和定时器管理 内存映射和分配 BSP还包括boot Rom和其它启动机制 sysLib和sysALib库是VxWorks可移植的核心
Vxworks操作系统将一切与硬件有关的功能模块都放在BSP库中。该BSP库是硬件与软件的接口,处理硬件的初始化、中断处理与产生、硬件时钟与定时管理、局部和总线内存空间的映射、内存大小定义,等等。能够自行启动目标机、初始化目标机、能够与host通信以下载Vxworks核、把控制权交给Vxworks核来调用用户应用程序等功能。
Tornado 系统结构
POSIX Library
Real-Time Embedded Application
Host
VxSim
Debug Agent
Tornado Plug-ins
Target
Target Server
Launcher
Core OS
BSP
Ethernet
Serial Line
板支持包(BSP)
VxWorks的特点--高度伸缩性的环境
Stand-alone kernel up to full featured OS
0
100
200
300
400
500
Maximum Equipped
File System
Networking
O.S.
m
Memory Requirements (Kbytes)
VxWorks (1)
Vxworks提供了一套丰富的任务间通信机制,包括: ●内存共享(Shared memory):简单的数据共享方法 ●信号量(Semaphore):用于基本的互斥及同步 ●消息队列(Message queues)和管道(pipe): 用于同一CPU上任务间消息的传递 ●套接口(Socket)和远程程序调用(RPC): 用于网络上任务间的通信 ●信号(Signal):用于异常处理 此外,Vxworks提供了三种共享内存的对象(shared-memory objects) 来实现运行在不同CPU上的任务间的高速同步和通信。 ●共享信号量(shared semaphores):有二进制,记数型两种 ●共享消息队列(shared message queues) ●共享内存分区(shared-memory partitions):有系统类型和用户类型
VxWorks基础培训

SHELL
EDIT DEBUGGER
Project
Browser
Windview
WDB
The WDB (Wind DeBug) protocol specifies how the target server (on the host) communicates with the target agent (on the target).
在VxWorks中,任务有几种状态 :就绪 (READY)、阻塞(PEND)、睡眠 (DELAY)、挂起(SUSPEND)及它们的 组合DELAY+S、PEND+S、PEND+T、 PEND+S+T、State+I。
任务状态转换
• Wind微内核的状态迁移表如下图所示:
Wind内核的任务调度
• 多任务处理需要一个调度法则对CPU准备运行的
基于优先级的抢占式调度与轮转调度算法相结合调度示意图
抢占上锁
• Wind的调度器可以通过tasklock( )和
taskUnlock( )对一个任务锁定或允许抢先调 度。当一个任务通过调用taskLock( )来锁定 抢先调度,在任务的运行期间就避免了高 优先级的任务的抢占。
VxWorks任务编程接口
删除安全
• 互斥中的另一个问题涉及到任务的删除。删除一
个在临界资源中的正在执行的任务往往会带来严 重的错误。
• 互斥信号量提供了一个SEM_DELETE_SAFE的参
数使得每个semTake()都含有taskSafe(),且每 个semGive()都含有taskUnsafe()。通过这个方法, 一个持有信号量的任务就可以得到删除保护。
共享内存访问互斥
VxWorks基础知识(互联资料)

VxWorks基础知识收藏1.多任务:允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资源。
3.任务切换之前要保存上下文。
4.优先级是动态的0~255,0级最高。
5.Wind内核taskLock()和taskUnlock()禁止和解除抢占,但对中断不起作用。
6.异常处理:VxWorks异常处理包,一般是将引起异常的任务休眠,保存任务在异常出错处的状态值。
内核和其它任务继续执行。
7.为什么要共享存储区:任务间通信的最简单的方法是采用共享存储区,也即相关的各个任务分享属于它们的地址空间的同一内存区域。
8. 为什么要互斥:当某一地址空间用于数据交换时,为了避免冲突,对于内存的锁定是非常重要的。
一般来说,关中断是最有效的解决互斥的方法。
但这对于实时应用来说,它阻止系统对外部事件的响应,无法满足实时性的要求。
同样,中断延迟也是不能接受。
因为它们没有实时性。
所以要用信号量来完成互斥,主要是二进制信号量,并且二进制信号量不仅能完成互斥而且能完成同步!,但是关中断应该用到程序的初始化过程中。
9.信号量:VxWorks信号量提供最快速的任务间通信机制,它主要用于解决任务间的互斥和同步。
针对不同类型的问题,有以下三种信号量:⊙二进制信号量使用最快捷、最广泛,主要用于同步或互斥;⊙互斥信号量主要用于优先级继承、安全删除和回溯;⊙计数器VxWorks还提供POSIX信号量和多处理器上信号量的应用。
10.消息队列,任务之间利用消息队列发送和接收消息。
11.管道:管道是一种灵活的消息传送机制,它比消息队列强在有一个select()12.信号量的创建与删除:semBCreate() 创建(产生并激活)一个二进制信号量semMCreate() 创建(产生并激活)一个互斥信号量semCCreate() 创建(产生并激活)制一个计数信号量semDelete() 中止并自由信号量semTake()获得信号量semGive() 给出信号量semFlush() 解锁所有正等待某一信号量的任务13.消息队列的创建与删除:msgQCreate() 创建(产生并激活)消息队列msgQDelete() 中止并自由信号量msgQSend() 向消息队列发送消息msgQReceive() 从消息队列接收消息14.网络通讯:与其它主机进行通信。
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 系统的基本构成

Real-Time System
M emory Mgmt
File Systems
Kernel
I/ O S ys te m
D ev ic e D riv er s
Netw ork Stack
1-6
第一节 VxWorks操作系统的 VxWorks操作系统的 基本构成
1 板级支持包BSP 板级支持包BSP (Board Support Package) Package) BSP是系统用来管理外设的部分, BSP是系统用来管理外设的部分, 对各种板子的硬件功能提供了统一 的接口。它由初始化和驱动程序两 部分组成。
第一节 VxWorks操作系统的 VxWorks操作系统的 第二节 开发工具tornado 开发工具tornado 基本构成
2 微内核wind 微内核wind
wind内核的任务调度是基于 wind内核的任务调度是基于 抢占式的,这满足了实时的特性, 而对于相同优先级的任务又采用 时间片的轮转调度。它以快速上 下文转换时间和低中断等待为特 点。
第一节 VxWorks操作系统的 VxWorks操作系统的 基本构成
3 网络系统 VxWorks提供了对其他网络和 VxWorks提供了对其他网络和 TCP/IP网络系统的"透明" TCP/IP网络系统的"透明"访问,包括 与BSD套接字兼容的编程接口、远程 BSD套接字兼容的编程接口、远程 过程调用(RPC)、SNMP、远程文 过程调用(RPC)、SNMP、远程文 件访问以及BOOTP和ARP代理。所有 件访问以及BOOTP和ARP代理。所有 的VxWorks网络机制都遵循标准的 VxWorks网络机制都遵循标准的 Internet协议 Internet协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Target Server
Target Ethernet Serial Line ICE/BDM Custom
VxWorks 5.3 Scaleable Run Time
Real-Time Embedded Application
File Systems Embedded Internet Graphics
BC NG
开发机和目标机的连接
Embedded Targets:
Intel x86 Intel i960 Intel i960 for I2O Intel StrongARM for I20 Motorola 680X0 Motorola CPU32 Motorola Coldfire Motorola MCore PowerPC ARM 7, 8, StrongARM MIPS R3K, R4K, R5K Hitachi SH1, SH2, SH3 NEC V83x, V85x SPARC, UltraSPARC Seimens SA Hitachi SH Mitsubishi M32RD :
Memory Requirements (Kbytes)
500 400 300 200 100 0
microkernel 5kb Stand Alone O.S. 20kb Networked O.S. 80-100kb Networked O.S. & File System 250kb Maximum Equipped 500 kb O.S.
关键词
Host :ie. Solaris, SunOS, Windows 95/NT Target :ie. PowerPC, 68k, x86, MIPS,ARM.. Target Server :Host-based control process Debug Agent :Target-based control process Backend :Ethernet, Raw Serial, Custom
Debug Agent
BSP
Simulation Environment
VxSim
BC NG
交叉开发模式
Typical scenario: 1. Boot target. 4. Download object module. 2. Attach target server. 5. Test & Debug. 3. Edit & compile. 6. Return to 3 or 1 as necessary
BC NG
Tornado开发环境
BC NG
Tonado开发环境(续)
BC NG
Tornado开发环境(续)
BC NG
板支持包(BSP)
CPU 上 电 复 位 基本配置初始化 ROM 拷 贝 到 RAM 并 跳 到 RAM 入 口
Vxworks操作系统将一切与硬件有关的 功能模块都放在BSP库中。该BSP库是硬件 与软件的接口,处理硬件的初始化、中断处 理与产生、硬件时钟与定时管理、局部和总 线内存空间的映射、内存大小定义,等等。 能够自行启动目标机、初始化目标机、能够 与host通信以下载Vxworks核、把控制权交 给Vxworks核来调用用户应用程序等功能。
VxWorks (2) BC NG
Vxworks提供了一套丰富的任务间通信机制,包括:
●内存共享(Shared memory):简单的数据共享方法 ●信号量(Semaphore):用于基本的互斥及同步 ●消息队列(Message queues)和管道(pipe): 用于同一CPU上任务间消息的传递 ●套接口(Socket)和远程程序调用(RPC): 用于网络上任务间的通信 ●信号(Signal):用于异常处理 此外,Vxworks提供了三种共享内存的对象(shared-memory objects) 来实现运行在不同CPU上的任务间的高速同步和通信。 ●共享信号量(shared semaphores):有二进制,记数型两种 ●共享消息队列(shared message queues) ●共享内存分区(shared-memory partitions):有系统类型和用户类型
BC NG
板支持包(BSP)
为各种目标板的硬件功能提供了统一的软件接 口 它们包括:
硬件初始化 中断处理和产生 硬件时钟和定时器管理 内存映射和分配
BSP还包括boot Rom和其它启动机制 sysLib和sysALib库是VxWorks可移植的核心
BC NG
板支持包(BSP)
CPU 上 电 复 位 基本配置初始化
WindView
Launcher GUI
CrossWind WindPower Tools WindConfig Browser
Third Party and Customer Tools
WindNet Networking
VxMP
VxVMI
POSIX Library
CoDevelopment System: Win95/98 WinNT SunOS Solaris HPUX Connections: Ethernet Serial BDM ICE Netrom Shared Memory Custom
BC NG
Tornado 系统结构
Host
Tornado Plug-ins
ROM 拷 贝 到 RAM 并 跳 到 RAM 入 口
硬件初始化 包括通信口
初 始 化 Vxworks 核 启 动 Vxworks 核
重新执行目标机 的硬件初始化
执行用户程序
BC NG
VxWorks的特点--高度伸缩性的环境
Maximum Equipped File System Networking O.S. kernel µ
BC NG
文件系统
VxWorks包括多种使用块设备的本地文件系统 VxWorks的I/O结构使VxWorks可以同时有多种文件系 统: MS-DOS兼容文件系统:dosFs RT-11兼容文件系统:rt11Fs 无分层文件组织结构,文件连续 原始磁盘文件系统:rawFs 整个磁盘作为一个文件 网络文件系统:NFS flash文件系统:Trueff
Hardware
BC NG
Vxworks特点
WIND微内核 硬件支持广(BSP) 较好的兼容性,POSIX1003.1.b 良好的可裁减性 很好的开发环境:tornado 动态连接和下载 多处理器、网络协议,图形界面支持
BC NG
VxWorks的特点
微内核设计 MicroKernel Size<10K ; 功能模块化; 高可靠设计; 快速多任务切换、响应时间短 中断延时小,满足实时要求;
BC NG
VxWorks的特点
对硬件不做假设。
硬件设计电路可完全自定义;支持各种或自定义 的外设; 支持的CPU构架包括: Intel x86 i960 StrongARM Motorola 68K CPU32 Coldfire Mcore PowerPC ARM 7, 8, StrongARM MIPS R3K, R4K, R5K Hitachi SH1, SH2, SH3 NEC V83x, V85x SPARC, UltraSPARC Seimens SA Hitachi SH Mitsubishi M32RD
RS232
VxWorks目标板
Ethernet SERVER AGENT
目标CPU:Vxworks 在其上运行 的一个单板计算机 Tornado PC主机:有一根串行线与目标机相连(初始化时主机作为终端用) Vxworks核二进制文件驻留在其盘上,核的下载及运行Tornado 工具 通过以太网口进行
Stand-alone kernel up to full featured OS
BC NG
VxMP多处理器支持
Shared Memory Semaphore MessageQ Mem Part 1 CPU 1 t0
CPU 0 t1
t2
t3
允许将任务分布在多个CPU上执行 在不同CPU上运行的任务可以通过现有 的通信机制,如信号灯、消息队列等进 行同步和数据交换
BC NG
Vxworks/Tornado开发方式
Tornado主机
RS232
VxWorks目标板
Ethernet SERVER AGENT
目标CPU: Vxworks 在其上运行 的一个单板计算机; Tornado PC主机:有一根串行线与目标机相连(初始化时主机作为终 端用),Vxworks核二进制文件驻留在其盘上,核 的下载及运行Tornado 工具通过以太网口进行。
BC NG
综合网络支持
BC NG
Graphics 构架
Java HTML C++
Personal JWorks Personal JWorks™eNavigator
Zinc for Zinc for VxWorks VxWorks HTMLWorks
Window Window Manager Widgets Manager
BC NG
Tornado (2)
Tornado开发环境(PC)
WindSH CrossWind Editor Browser WindCodig
Tornado集成开发环境由以下几个部分组成:
目标系统
应用程序
Target Server
VxWorks Target Agent
BC NG
Tornado主机
BC NG
Vxworks简介
最成功的实时操作系统 1981,Windriver,嵌入式咨询公司 TCP/IP,NFS工具集 WIND内核 1995,tornado集成开发环境 收购SDS、DIAB、pSOS