VxWorks基础知识

合集下载

嵌入式实时操作系统VxWorks入门

嵌入式实时操作系统VxWorks入门

嵌入式实时操作系统VxWorks入门VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。

在美国的 F-16、FA-18 战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。

VxWorks原先对中国区禁止销售,自解禁以来,在我们的军事、通信、工业控制等领域得到了非常广泛的应用。

VxWorks的实时性体现在能于限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。

因此,实时性系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏感的场合。

本文将对这个操作系统进行一个入门级的、全面的介绍。

为力求展示其全貌,全文共分五章:(1)搭建VxWorks嵌入式开发环境;(2)简要介绍VxWorks的基本组成,内核的基本结构;(3)概述VxWorks板级支持包(BSP)的概念及VxWorks的启动过程;(4)介绍VxWorks设备驱动的架构及编写方法;(5)指明VxWorks应用开发的思路,任务调度及任务同步、中断与任务的同步机制。

以上各章中将贯穿着许多实例,由于本文定位于入门级教程,所以文中的实例都将十分简单。

下面我们进入第一章内容的讲解。

嵌入式系统的调试调试方法一般为通过PC(宿主机)上的集成开发环境交叉编译针对特定电路板(目标机)的程序,然后将程序通过目标板的JTAG、串口或网口等途径下载到目标板上运行。

因此,为了构造一个嵌入式系统的学习环境,拥有一块包含CPU、存储器及I/O 电路(构造计算机系统)的目标电路板往往是必要的。

虽然许多集成开发环境附带模拟软件,但仅限于指令集的模拟,均无法模拟物理的目标机硬件平台,因而在其上只能进行应用程序的象征性模拟开发。

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. 概述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基础培训

vxworks基础培训

烽火科技
VxSim的HelloWorld(四)
• 最后:查看新弹出的对话框(VxWorks Simulator),^_^ ,可以看到输出的 Hello World

此时,还会弹出了一个VxSim Launch的界面,这是主机用来连接目标机的。 点击OK。如果正确安装Tornado并配置正确的话,此时桌面右下角会出现 的图标(如果出现问题,会出现 的图标),点击它可以看到Target Server是 否正常工作。
烽火科技
开发板开发嵌入式程序
• 操作系统的制作与下载
– – – – – – 修改Config.h 制作BSP及bootrom 制作操作系统 配置FTP Server 启动超级终端 引导和下载操作系统
• 应用程序的编制和调试
烽火科技
操作系统的制作与下载
修改Config.h
• VxWorks的缺省配置参数由tornado\target\config\all目录中 的configAll.h决定,如第528行开始通信路径的配置 • 对于某一目标板特定的配置参数,如ads860,使用 tornado\target\config下相应目录中的config.h,下面以 ads860板为例 • 如果没有相应目录,可定制,如建立8240目录,其文件代 码由BSP开发人员编写
• WindShell
– 允许用户调用内存中的应用程序模块或是 VxWorks模块中的任何例程
烽火科技
创建任务
• 在usrAppInit函数中添加函数userMain( ),作为自己应用程序的入口函数。

编写一个C文件(uesr.c),内容如下:
烽火科技
编译代码及运行
• 选择Add Files,添加uesr.c到工程中:

vxWorks学习笔记

vxWorks学习笔记

vxWorks学习笔记vxWorks学习笔记2006-07-20 11:141.VxWorks开发方式:交叉开发,即将开发分为主机(host)和目标机(target)两部分。

类似于dos下C语言程序的开发。

合并开发的优点:简单缺点:资源消耗量大,CPU支持,非标准体系的支持host (Tornado) target(vxWork) 小程序模块vxWorks实际采用开发模式Tornado提供:编辑,编译,调试,性能分析工具,是vxWorks 的开发工具vxWorks:面向对象可以剪裁的实际运行操作系统2.vxWorks启动方式<1>Rom方式 (vxWork_rom)vxWorks直接烧入rom<2>Rom引导方式(bootrom+vxWorks)其中bootrom烧入rom,vxWorks可以通过从串口,网口,硬盘,flash等下载!这里的bootrom不是开发环境中的bootable,在开发环境里bootable指的是vxWorks,downloadable指application3.调试<1>attach用来在多任务调试时将调试对象绑定到某个任务<2>任务级调试(attach taskName)单个任务的调试不会影响到其他任务的运行,主要用来调用户的应用程序。

全局断点:在调另一任务或本任务时,系统运行本任务断点,则停下。

各任务要配合使用。

任务断点:调本任务时,系统运行到本任务断点,则停下。

如果没有attach到本任务,不起作用。

一次性断点:跑到一次之后自动删除。

<3>系统级调试(attach system)把所有task和系统core、中断看成一个整体,可用于调试系统和中断。

对中断调试,如果不是系统级调试,无论是那种断点都不起作用!wdbAgent不在调试范围内,当任务级调试时工作在中断方式,系统级调试工作在轮询方式。

!可是使用命令行方式的调试,参看crossWind教程。

Vxworks基础

Vxworks基础
板支持包(BSP)
为各种目标板的硬件功能提供了统一的软件接口 它们包括: 硬件初始化 中断处理和产生 硬件时钟和定时器管理 内存映射和分配 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开发入门教程索引

vxWorks开发入门教程索引
内存泄漏检测与回收
vxWorks还提供了内存泄漏检测功能,以帮助用户发现并及时处理内存泄漏问题。同时,vxWorks还支持内 存回收功能,可以自动回收不再使用的内存空间。
03 开发环境搭建与 配置
安装与配置开发环境
安装Wind River Workbench
下载并安装适用于您的操作系统的Wind River Workbench,这是开发vxWorks应用程序的集成开发环境( IDE)。
vxWorks开发入门教程索 引
contents
目录
• 引言 • vxWorks基础知识 • 开发环境搭建与配置 • 驱动程序开发与调试 • 中间件及组件应用 • 系统优化与性能提升 • 项目实战:基于vxWorks的智能家居控
制系统设计
01 引言
vxWorks概述
01
vxWorks是一款实时操作系统(RTOS),专为嵌入式系统设计 ,具有高性能、可确定性和低延迟等特点。
日志和跟踪工具
使用vxWorks提供的日志和跟踪工具来记录应用程序的运行状态和错误信息。这有助于 分析和解决问题。
04 驱动程序开发与 调试
设备驱动模型概述
01
设备驱动模型组成
包括设备、驱动和服务等组件, 用于实现硬件设备的抽象和访问 控制。
02
设备驱动模型作用
提供统一的设备访问接口,屏蔽 底层硬件细节,简化驱动开发流 程。
关键模块代码实现及讲解
设备驱动模块
展示设备驱动模块的代码实现,包括 设备初始化、数据读写等操作。
通信协议模块
介绍通信协议模块的实现,包括协议 的选择、封装和解封装等过程。
应用功能模块
展示应用功能模块的代码实现,如远 程控制、自动化场景设置等。

Works操作系统学习笔记

Works操作系统学习笔记

VxWorks 操作系统学习笔记1. VxWorks 任务任务:在执行时每个程序都被称之为任务。

VxWorks操作系统中,任务可以直接地或者以共享方式访问大多数系统资源,为了维护各自的线程,每个任务必须保持有足够的上下文环境。

(1) 任务状态:就绪(READY):该状态时任务仅等待CPU的状态,不等待其他任何资源。

阻塞(PEND):任务由于一些资源不可用而被阻塞时的状态。

睡眠(DELAY):出于睡眠的任务状态。

挂起(SUSPEND):该状态时任务不执行,主要用于调试用。

挂起仅仅约束任务的执行,并不约束状态的转换,因此pended-suspended状态时任务可以解锁,delayed-suspended状态时任务可以唤醒。

DELAY+S:既处于睡眠又处于挂起的任务状态。

PEND+S:既处于阻塞又处于挂起的任务状态。

PEND+T:带有超时值处于阻塞的任务状态。

PEND+S+T:带有超时值处于阻塞,同时又处于挂起的任务状态。

state+I:任务处于state且带有一个继承优先级。

------------------------------------------------------------------------| ready | ——> | pended | semTake () / msgQReceive () || ready | ——> | delayed | taskDelay () || ready | ——> | suspended | taskSuspend () || pended | ——> | ready | semGive () / msgQSend () || pended | ——> | suspended | taskSuspend () || delayed | ——> | ready | expired delay || delayed | ——> | suspended | taskSuspend () || suspended | ——> | ready | taskResume () / taskActivate () || suspended | ——> | pended | taskResume () || suspended | ——> | delayed | taskResume() |------------------------------------------------------------------------(2) Wind任务调度在Wind内核中,默认算法是基于优先级的抢占式调度算法,也可以使用轮转调度算法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式操作系统VxWorks
实用库:VxWorks 提供了一个实用例程的扩展集,包括中断处理、 看门狗定时器、消息登录、 内存分配、字符扫描、线缓冲和环缓 冲管理、链表管理和 ANSI C 标准。
虚拟内存 :VxVMI 为带有 MMU 的目标板提供了虚拟内存机制。 VxMP(Share-Memory Object) 提供了共享信号量,消息队列和在
操作系统 模块
Wind 内核
目标开发 工具
嵌入式操作系统VxWorks
VxWorks
I/O子 系统




网络子 系统


嵌入式操作系统VxWorks
wind :VxWorks 的核心,被称作 wind,包括多任务调度(采用优先 级抢占方式),任务间的同步和进程间通信机制,以及中断处理, 看门狗定时器和内存管理机制。
嵌入式操作系统VxWorks
BSP 以及映像
介绍
嵌入式操作系统VxWorks
BSP(Borad Support Packet),板级支持包 对单板的硬件功能提供了统一的软 件接口,它包括硬件初始化、中断 的产生和处理、硬件时钟和计时器 管理、内存地址映射、内存分配等 等。每个板级支持包括一个 ROM 启 动(Boot ROM)或其它启动机制。
I/O 系统 :VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的缓冲 I/O 和POSIX 标准的异步 I/O。 VxWorks 包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、 SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等。
文件系统 :支持四种文件系统: dosFs,rt11Fs,rawFs 和 tapeFs 支持在一个单独的 VxWorks 系统上同时并存几个不同的文件系统。
BSP功能
• BSP位于硬件平台与操作系统之间,类似普通操作系统的BIOS, 用于对上层软件屏蔽各种硬件相关性。
• 给VxWorks提供硬件环境接口。 • BSP 主பைடு நூலகம்负责:
– 硬件上电初始化. – 支持 VxWorks访问硬件驱动. – 把硬件相关和无关的软件很好地结合到VxWorks。 • BSP不是硬件驱动程序 : – 是一种访问硬件的硬件驱动程序 – 硬件驱动分为通用和BSP有关两类。 – 通用驱动管理可在目标环境间移动的设备 (如以太网芯片). – BSP 驱动管理特定目标环境的设备 (如中断控制器)。
课程大纲
VxWorks介绍 关于BSP以及映像 Tornado介绍 开发实例之一 开发实例之二 开发实例之三 映像启动流程
VxWorks
VxWorks 是美国 Wind River System 公司( 简称风河 公司 , 即 WRS 公司)推出的一个实时 操作系统。
虚拟 内存
多任务 处理
嵌入式操作系统VxWorks
BSP在单板软件中的地位:
OSS
driver
vxWorks等操作系统
BSP
硬件
最小BSP的定义
广义上讲,单板中所有控制CPU系统硬件的程序, 都属于单板的BSP,但为了调试方便和软件的模 块化,通常将与单板最小系统相关的程序简称 为BSP,而将其他程序称为驱动程序。 对于嵌入式系统来说,所谓最小系统就是一个 包含CPU, Bootrom, RAM,系统时钟,网口,串 口的计算机运行环境。其中之所以包含串口和 网口,主要是因为系统调试的需要,通常网口 用于软件调试,而串口用于通过计算机的超级 终端来显示单板程序运行结果信息。系统时钟 是一个多任务OS所必须的资源。因此最小系统 BSP就包含了CPU系统的初始化程序以及网口, 串口,系统时钟等设备的驱动程序。
BSPs 和VxWorks关系
BootRom与VxWorks映象
VxWorks借鉴了传统PC操作系统的引导原理,其将 整个引导过程分为两个阶段:
• BOOTROM启动 • 通过BOOTROM加载VxWorks映象
BOOTROM相当于PC机中的BIOS,它完成对加载过 程中所需设备的初始化及驱动;然后通过某种可 选择的通讯手段(如网口,串口),将VxWorks 内核映象到内存中,并执行。此处的VxWorks映 象 就 相 当 于 我 们 在 PC 机 上 装 的 操 作 系 统 , 如 DOS,Windows。 BOOTROM 和 VxWorks 使 用 不 同 方 法 来 编 译生成。
不同处理器之间的共享内存区域,用于不同CPU的通讯与同步。
WBD协议:目标代理遵循 WBD(Wind Debug)协议,允许目标机与 主机上的 Tornado 开发工具相连。 Tornado 目标服务器(Target
Server)向目标代理发送调试请求。
嵌入式操作系统VxWorks
网络支持:它提供了对其它VxWorks系统和TCP/IP 网络系统的“透 明”访问,包括与BSD套接字兼容的编程接口,远程过程调用 (RPC),SNMP(可选项),远程文件访问(包括客户端和服务端 的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和 代理ARP、DHCP、DNS、OSPF、RIP。
VxWorks系统中的BSP
针对某类CPU的硬件单板,vxWorks通常提 供有其DEMO板的BSP,也就是我们所说的最小系统 BSP。一般来说,我们在硬件系统设计好之后, 都会先找到一个与自己系统相近的DEMO板BSP,并 以此为基础,开发自己单板的BSP。
VxWorks为了最大限度的支持不同的硬件环境, 也提供了一些常用硬件芯片的驱动程序,它们通 常是与具体CPU无关的设备,如一些PCI网口芯片, 串口芯片等。这些驱动程序大多实现为CPU无关 或很容易移植,可以方便的用于其他CPU平台。 这也是开发驱动程序所应该遵循的原理。另外, 我们的最小系统BSP,往往在默认情况下,使用这 些驱动程序。
基于目标机的工具:在 Tornado 开发系统中,开发工具是驻留在 主机上的。但是也可以根据需要将基于目标机的Shell 和装载卸载 模块加入 VxWorks。
板级支持包 BSP :板级支持包向VxWorks操作系统提供了对各种板 子的硬件功能操作的统一的软件接口,它是保证VxWorks操作系统 可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时 钟和计时器管理、局域和总线内存地址映射、内存分配等等。 每 个板级支持包括一个 ROM 启动(Boot ROM)或其它启动机制。
相关文档
最新文档