VxWorks开发教程

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 电路(构造计算机系统)的目标电路板往往是必要的。虽然许多集成开发环境附带模拟软件,但仅限于指令集的模拟,均无法模拟物理的目标机硬件平台,因而在其上只能进行应用程序的象征性模拟开发。但是,并非所有人都能拥有一块物理的电路板。在这种情况下,我们如何构造一个模拟的开发环境,其学习效果就如同拥有完全真实的电路板一样呢?本文试图解答此问题,主体内容包括四个方面: (1) 利用VMware等软件模拟真实的目标机; (2) 构建VMware虚拟PC上VxWorks BSP,建立Bootrom和OS映像; (3) 修改Tornado相关设置,连接宿主机与目标机,建立调试通道; (4) 写一个简单的应用程序并下载到目标系统运行。 图1 嵌入式系统的调试 本章工作的最终目标为: (1)VxWorks在VMware启动成功并顺利运行,的开发模型: 图4 PC作为目标机 很遗憾,这种方法实际上非常麻烦,同时开动两台PC进行调试将使你和你的室友饱受折磨,既然他如此地热切于游戏和上网。因此,我们可以借助VMware来在本机上虚拟出另一PC。 VMware的确是天才的作品!在同一PC上,利用VMware几乎可以安装所有的操作系统,而且操作系统之间的切换不需要重新启动电脑。VM的意义是Virtual Machine,即虚拟出一个逻辑的电脑,它可以提供基于Intel CPU的虚拟PC系统环境,包括CPU、内存、BIOS、硬盘和其他外围硬件设备。 下面我们讲解用VMware来建立一台虚拟PC的步骤: (1)并安装VMware; (2)使用VMware向导建立一个针对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启动方式 Rom方式(vxWork_rom) vxWorks直接烧入rom Rom引导方式(bootrom+vxWorks) 其中bootrom烧入rom,vxWorks可以通过从串口,网口,硬盘,flash等下载!这里的bootrom不是开发环境中的bootable,在开发环境里bootable指的是vxWorks,downloadable指application 3.调试

attach 用来在多任务调试时将调试对象绑定到某个任务 任务级调试(attach taskName) 单个任务的调试不会影响到其他任务的运行,主要用来调用户的应用程序。 全局断点:在调另一任务或本任务时,系统运行本任务断点,则停下。各任务要配合使用。 任务断点:调本任务时,系统运行到本任务断点,则停下。如果没有attach到本任务,不起作用。 一次性断点:跑到一次之后自动删除。 系统级调试(attach system) 把所有task和系统core、中断看成一个整体,可用于调试系统和中断。对中断调试,如果不是系统级调试,无论是那种断点都不起作用 !wdbAgent不在调试范围内,当任务级调试时工作在中断方式,系统级调试工作在轮询方式。 !可是使用命令行方式的调试,参看crossWind教程。 4.调度 优先级调度(无条件) 时间片:同优先级,如果时间片没有打开,任务采取先到先运行,运行完毕在交出cpu,如果打开,则轮流使用cpu。!死循环使比它优先级低的任务都不能运行。

vxWorks开发环境构建步骤及开发资源

vxWorks开发环境构建步骤及开发资源 技创科技(Technique Innovator Inc.) https://www.360docs.net/doc/7715384748.html, 一、Tornado集成开发环境构成 Tornado是集成开发环境的名称,主要由帮助及参考文档、操作系统vxWorks、开发工具(编译器、调试器、编辑器、target server等,据统计,挂接在Tornado下的可选工具和第三方有数百个)等三部分构成,分别对应三个目录: i.docs/ 所有文档都集中在该目录中, books.html是根索引,入门级开发请务必查看 以下文档: ●如果要熟悉使用界面及Tornado使用、创建工程,请参考:Tornado用户手册 及Tornado集成开发环境的HELP->content调出来的联机帮助文档; ●vxWorks的编译是使用标准GNU Makefile来编译连接的,要了解Makefile语 法请参考”GNU Make”;具体的Make rules存放在target/h/make/目录下。 ●如何调试?请参考“Debugging with GDB” ●vxWorks构成、特点及kernel,编程等:请参考:VxWorks Programmer's Guide, 系统调用、库函数接口标准等,请参考:VxWorks Reference Manual ●有关BSP(board support package)的构成、初始化、底层驱动等,请参考“BSP Reference” ●网络应用编程指南(socket编程): “VxWorks Network Programmer's Guide” ii.host/ 该部分存放主机端(开发机)的工具,如Tornado.exe,make.exe,编译器、调试器及TCL命令解释器等等,开发中要用到的工具都存放在目录 host\x86-win32\bin 下,部分命令是.exe文件,部分是.bat的,其中有torvars.bat文 件,是设置Tornado集成开发环境的环境变量用的,在使用其他工具前,要运行它 设置正确的环境变量及可执行文件搜索路径。 iii.target/ vxWorks操作系统、源码、BSP、设备驱动、头文件、配置文件等config/ BSP的存放地方,底层开发者绝大部分时间在该目录下度过,该目录下除了all/和comps/外,其他每个目录对应一种硬件板的BSP,开发者在 做BSP开发时,原则上除了对应BSP目录能修改外,target/目录下的其他 所有目录都不应该作出改动,否则会影响到其他BSP,常用BSP有: pid7t/ →ARM公司推出的pid7 ARM7TDMI评估板的BSP integratorX/ →ARM公司推出的integratorXXX评估板的BSP tk4510a/ →我们要使用的S3C4510B板的BSP SNDS100/ →三星公司推出的SNDS100(KS3C50100/S3C4510B)板的 BSP h/ 头文件存放地点,包括vxWorks的及所有其他组件的 arch/arm/ ARM体系结构相关头文件 make/ 编译连接时要用到的规则都存放在这里 vxWorks.h wind Kernel(vxWorks的核心”Wind Kernel”的API及常量说明) lib/ vxWorks是一个商用操作系统,其不开放源码部分的.o文件及.a(库文件)文件存放在这里(当然,除了config/目录外,所有其他目录下的*.c源码在编

风河Workbench3.0_VxWorks6.6应用程序开发使用说明V1.0

说明:由于开发经验和英语水平有限,在本文档中肯定存在偏差和谬误。在有疑问的地方,请以风河的官方文档为准。欢迎联系,指正错误。QQ:1039309823。 风河Woorkbench3.0/VxWorks6.6使用说明 第一章工程视图(Projects Overview) Workbench利用工程( Projects)就像逻辑容器和积木块——它们能够连接在一起创建一个软件系统。工程( Projects)窗口可以直观地组织工程结构反映在内部的依赖关系上,以及编译和链接的次序。 前期配置的各种不同的工程允许在后面建立或添加工程时使用与之前的工程相同的配置和建立方式,因而只需要极小的输入。 一、Workspace/Project 的设置 Wind River Workbench并不知道使用者的源文件在哪一个地方,在开始的使用的时候Wind River Workbench在安装目录下有一个默认的工作空间(workspace )的目录。但是这不是必需的或者说并不一定是合理的,当使用者的工作空间因为产品升级或者更改安装目录已经完全存储在当前的安装目录树之外的时候! 通常,使用者需要把workspace目录设置在当前的源文件树的根目录下并且在此创建Workbench工程。对于各种不同的源文件树,可以使用不同的工作空间(workspaces)。 当决定在什么地方建立工程(projects)要做以下考虑: 1.在workspace建立工程 如果使用者想要新建一个工程在workspace下,通常的情况有 A.所建的工程还没有建立源文件。 B.所建的工程已经存在源文件,但需要添加进工程。 C.所建的工程不允许设置在源文件目录处。

VxWorks实时操作系统SIGNAL机制的应用

[摘要] 介绍VXWORKS实时操作系统的信号机制以及各种处理方法,特别是利用该机制实现异常情况的恢复和处理。 1.概述 信号可用来在同一任务内部或不同任务之间实现异步通信,从而改变对多个任务的控制流程。所有任务或中断服务程序均能向指定的任务发送信号,该信号的接收任务将立刻挂起当前的执行线程,而激活任务指定的信号处理程序。信号处理程序是由用户定义的,它关联与特定的信号,而且任务接收到该指定信号时的所有必要处理都在该程序中实现。信号的这种机制使得它特别适合于用来实现差错和异常处理。 2.信号屏蔽 在信号处理时,可通过信号屏蔽来选择需要进行处理的信号,接收到被屏蔽的信号,即使指定了相应的处理程序,也不作任何处理。 为了实现对信号的屏蔽,需要定义数据类型为sigset_t的变量,同时必须包含头文件“signal.h”。 下面介绍实现这一功能的函数: int sigemptyset ( sigset_t *pSet ) 该函数初始化信号集,使得该信号集不包含任何信号; int sigfillset ( sigset_t *pSet ) 该函数初始化信号集,使得该信号集包含所有信号; int sigaddset ( sigset_t *pSet , int signo ) 该函数向信号集中增加新的信号; int sigdelset ( sigset_t *pSet , int signo ) 该函数删除信号集中的信号; int sigismember ( sigset_t *pSet , int signo ) 该函数用来判断信号集是否包含某信号; int sigprocmask ( int how, const sigset_t *pSet, sigset_t *pOset ) 该函数用来设置信号屏蔽;这里,pSet为新的信号集,pOset为当前的 信号集,而how则指示处理方式,其取值与处理方式对应关系如下: SIG_BLOCK 结果信号集为当前信号集和指定信号集二者的并集,通过这种方式,可向当前信号集增添指定的元素; SIG_UNBLOCK 结果信号集为指定信号集的补集和当前信号集二者的交集;通过这种方式,可从当前信号集删除指定的元素;

实时操作系统包括硬实时和软实时的区别

一.什么是真正的实时操作系统 做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统 1. 首先说一下实时的定义及要求: 参见Donal Gillies 在Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。 一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows 在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。 根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver 开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费

基于VXWORKS的嵌入式开发设计课件

一、嵌入式系统简介 1、嵌入式系统的基本特征 (1)专用的嵌入式CPU 该CPU具有高效率、低功耗、体积小和集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部完成,有利于嵌入式系统设计趋于小型化, 移动能力增强,与网络耦合紧密。 (2)专用性和算法的唯一性 设计成完成某一特定任务,和相应具体任务有机结合在一起,具有较长的生命周期。 (3)多种技术的结合体 计算机技术、半导体技术以及电子技术和各行业的具体应用紧密结合在一起的系统。 (4)软硬件紧密的相互依赖性 专用性决定了设计目标是单一的,硬件和软件的依赖性强,用利于版权的保护。 (5)系统对用户透明 用户使用只是按照预定方式使用,不需要用户编程和修改。 (6)大多具有实时性 如工业仪表、控制装置、数控系统、信息家电等。 (7)系统资源有限 速度和存储容量以及扩展接口有限。 (8)多为分布式系统 更易于保证硬实时要求、更便宜和更易于实现。 2、嵌入式软件的特点 (1)多具有实时性 指操作系统内核采用了一种算法,使tc(context swich)和ts(system call)尽可能小、尽可能是常量和可确定。所谓可确定是指tc和ts有一个上限,而不是 一个统计的结果,即不会出现峰值,不会随系统任务的增多而增多。 (2)有并发处理能力 能并发处理各个事件驱动,采用多任务运行机制。 (3)具有快速启动、出错处理和自动复位能力 能从只读存储器中快速启动,具有高容错机制,在系统出现死机前自动重启。 (4)应用软件和操作系统一体化设计 硬件和软件一起设计,以解决特定的问题,不同的系统有不同的配置。 (5)交叉开发环境 二、嵌入式系统软件开发流程 1、需求分析 2、设计思路 (1)概要设计 (2)详细设计 (3)详细写出测试项目(包括测试类别、测试过程、测试预测结果) 3、编码 (1)各芯片代码模块化,有利于移植 (2)需要注意一些小问题(如边界条件、内存越界访问、空指针等) ⅰ

基于OpenGL的VxWorks图形界面开发

基于OpenGL的VxWorks图形界面开发 摘要 图形用户界面(GUI)是人机交互技术的重要内容,它使用图形图像信息、直观的表达方式与用户交互,使软件系统的人机界面简洁、美观、方便好用,更加人性化。目前GUI已经大量应用在嵌入式领域,但是大多数嵌入式GUI系统提供给用户的显示平面从逻辑设计上讲是二维的,最大的缺点在于反映信息量小,在对真实场景进行模拟显示的时候,无法提供真实的场景数据。随着嵌入式系统硬件功能的不断提高,如何开发一款支持3D建模的嵌入式GUI已成为一个迫切的话题。 本课题来源于实习工作中的“某星载仪表控制计算机”项目,该计算机采用VxWorks作为其操作系统,要求设计出人性化的人机界面,可以实时显示系统的相关参数数据、图形信息等,并提供对3D模块的支持,能够进行3D图形的绘制和显示。本文经过详细分析和设计,实现了将OpenGL/Mesa3D图形库移植到VxWorks系统,并结合VxWorks内核及其多媒体库WindML的相关接口,开发了以消息驱动为核心、具有基本窗口管理功能和仿Windows控件效果、支持中文界面和3D画面绘制显示的GUI系统。从工程应用和测试的效果来看,该GUI系统基本实现了预期功能。 关键词:嵌入式系统VxWorks图形用户界面OpenGL/Mesa WindML

目录I 目录 第一章绪论 (1) 1.1 背景知识介绍 (1) 1.1.1 嵌入式实时系统 (1) 1.1.2 图形用户界面概述 (2) 1.2 国内外研究现状 (4) 1.2.1 嵌入式GUI的现状 (4) 1.2.2 基于VxWorks的图形解决方案 (5) 1.2.3 嵌入式GUI的发展趋势 (7) 1.3 课题来源和意义 (7) 1.4 论文结构 (8) 第二章VxWorks操作系统及媒体库WindML (11) 2.1 VxWorks深入研究 (11) 2.1.1 VxWorks概述[10] (11) 2.1.2 VxWorks实时微内核[11][12] (12) 2.2 VxWorks集成开发环境Tornado (15) 2.2.1 Tornado介绍[13][14] (15) 2.2.2 交叉编译环境 (15) 2.2.3 Tornado的组成 (16) 2.3 WindML媒体库 (18) 2.3.1 WindML概述[16] (18) 2.3.2 WindML事件服务机制 (19) 2.3.3 WindML2D图形库分析 (19) 2.3.4 WindML程序开发流程 (21) 2.4 本章小结 (22) 第三章OpenGL/Mesa及其在VxWorks下的移植 (23) 3.1 OpenGL/Mesa (23) 3.1.1 OpenGL开发库 (23) 3.1.2 OpenGL开发库结构 (24) 3.1.3 Mesa库 (28) 3.2 OpenGL/Mesa库的移植 (29) 3.2.1 工作概述 (29)

在vxWorks下的BSP开发指南

基于VxWorks的BSP开发指南 1BSP概述 一个成熟的商用操作系统,其被广泛应用的必要条件之一就是能够支持众多的硬件平台,并实现应用程序的硬件无关性。一般来说,这种无关性都是由操作系统实现的。 但对于嵌入式系统来说,它没有像PC机那样具有广泛使用的各种工业标准,各种嵌入式系统其不同的应用需求就决定了它一般都选用了各自定制的硬件环境,这种诸多变化硬件的环境就决定了无法完全由操作系统来实现上层软件与底层硬件之间的无关性。 因此各种商用实时操作系统,都采用了分层设计的方法,它将系统中与硬件直接相关的一层软件独立出来,称之为Board Support Package即简称BSP。顾名思义,BSP是针对某个单板而设计的,并且它对于用户(指开发者)也是开放的,用户可以根据不同的硬件需求对其作改动或二次开发,而操作系统本身仅仅提供了CPU内核的无关性。BSP在系统中的角色,很相似于BIOS在PC系统中的地位。 定义 BSP就是为软件操作系统正常运行提供最基本、最原始的硬件操作的软件模块,它和操作系统息息相关,但又不属于操作系统的一部分。BSP可以分为三大部分: 1:系统上电时的硬件初始化。 2:为操作系统访问硬件驱动程序提供支持。 3:集成的硬件相关和硬件无关的操作系统所需的软件模块。 BSP的表现形式 BSP主要以两种形式来表现: 1:源代码(C代码、汇编代码)、系统编译连接依靠文件。 2:二进制的目标代码和目标代码库。 BSP在软件系统中的位置

BSP在软件系统中的位置可以用下图来表示,BSP为操作系统和硬件设备的 互操作建了一个桥梁,操作系统通过BSP来完成对指定硬件的配置和管理。 2 vxWorks系统中的BSP 目录结构 BSP软件与其他软件的最大区别在于BSP软件有一整套模板和格式,开发人员必须严格遵守,不允许任意发挥。在BSP软件中,绝大部分文件的文件名和所要完成的功能都是固定的。所以,BSP软件的开发一般来说都是在一个基本成型的BSP软件上进行修改,以适应不同单板的需求。 针对某类CPU的硬件单板,vxWorks通常提供有其DEMO板的BSP, 这些程序位于指定的目录之下。也就是我们所说的最小系统BSP。一般来说,我们在硬件系统设计好之后,都会先找到一个与自己系统相近的DEMO板BSP(最起码是使用相同的CPU)。并以此为基础,开发自己单板的BSP。 VxWorks BSP的目录结构: BSP文件主要位于Tornado安装之后的Target目录下,具体目录结构如下:

VxWorks介绍及编程

VxWork介绍及编程 一.嵌入式操作系统VxWorks简介 VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。 WindRiver公司网址 实时操作系统和分时操作系统的区别 从操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统。 分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统由调度程序自动计算进程的优先级,而不是由用户控制进程的优先级。这样的系 统无法实时响应外部异步事件。 实时操作系统能够在限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。分时系统主要应用于科学计算和 一般实时性要求不高的场合。实时性系统主要应用于过程控制、数据采集、 通信、多媒体信息处理等对时间敏感的场合。 VxWorks的特点 ?可靠性 操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。而稳定、可靠一直是VxWorks 的一个突出优点。自从对中国的销售解禁以来,VxWorks以其良好的可靠性 在中国赢得了越来越多的用户。 ?实时性 实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。实时性的强弱是以完成规定功能和作出响应时间的长短 来衡量的。 VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。 VxWorks 提供的多任务机制中对任务的控制采用了优先级抢占(Preemptive Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制,也 充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为 应用的开发留下更大的余地。 ?可裁减性

VxWorks实时操作系统定时延时方法

Vxworks中几种定时/延时方法的小结(2009-09-18 10:08:24) 标签:vxworks总结杂谈分类:技术备忘(有转帖) 嵌入式系统中,一个任务往往需要在特定的延时之后执行一个指定的动作,比如等待外设以确保数据可靠,控制扬声器发声时间以及串口通信超时重发等。这就需要利用定时器机制来计量特定长度的时间段。VnWorks作为实时嵌入式系统,提供多样的定时接口函数。下面列举一些常用的定时方式,并说明其注意事项。 1 taskDelay taskDelay(n)使调用该函数的任务延时n个tick(内核时钟周期)。该任务在指定的时间内主动放弃CPU,除了taskDelay(0)专用于任务调度(将CPU交给同一优先级的其他任务)外,任务延时也常用于等待某一外部事件,作为一种定时/延时机制。在没有中断触发时,taskDelay能很方便地实现,且不影响系统整体性能。例如写数据至EEPROM,EEPROM需要一个内部擦除时间(最大擦除时间为lOms)。以下所提及的一个tick都假设为16.67 ms(1/60 s)。可以简单地调用taskDelay(2)来保证数据擦写完成。按理说taskDelay(1)就足以保证,为什么需要taskDelay(2)呢? 这正是taskDelay使用的一个缺陷,使用时需要注意。taskDelay(n)表示任务延时至第n个系统时钟到来的时刻,如图1所示。如果在A时刻调用taskDelay(1)仅延时5 ms,则在B时刻taskDelay(1)就刚好是一个tick周期。可见需要10 ms的延时就必须调用taskDelay(2)才能实现。taskDelay有接近一1个tick的误差存在,taskDelay(n)实际上是延时(n-1)tick~n tick的时间。延时精度为l/n,延时1s就是taskDelay(60)的误差极限为1.6%,而taskDelay(1)的误差极限将是100%。 使用taskDelay需注意的另外一点是:即使经过n个tick,调用延时的任务也不保证返回执行状态,可能有更高或相同优先级的任务占用了CPU。 2 WatchDog

VMware平台的使用和Vxworks开发环境的建立

VMware平台的使用和Vxworks开发环境的建立 (航天504所数字信号处理室邢进) 1 前言 在嵌入式开发中使用Vxworks开发平台时,都需要有Host主机和Target目标机才能进行真实的开发平台或测试工作,Vxworks的IDE开发环境中虽然带有Simulator,但是该环境下只能进行简单的运行,并不能代表真实的环境。在Vxworks开发中的上层应用开发,需要具备和真实设备基本类似的平台来进行调试、开发和测试工作,这对于Vxworks上层应用软件和底层硬件驱动的并行开发有着很重要的意义。近几年来,由于虚拟计算机技术的发展,在一台主机上既能完成Host的IDE(集成开发环境)开发,又能利用主机所带的操作系统(典型为Windows 2000/XP)的多任务功能虚拟一台完全类似于开发目标机的思路逐渐为广大开发人员所接受。另外由于多核处理器的发展,今后的调试平台的发展方向也可能是主机运行在一个处理器核上,另外虚拟计算机运行在另外一个处理器核上,充分利用处理器强大的性能有效的提高嵌入式应用软件的开发和测试效率。本文就将对使用Vmware平台组建一个基于Tornado2.2的开发平台做详细的介绍。 2 Vmware WorkStation介绍 2.1 Vmware功能综述 Vmware Inc是虚拟计算机机领域的著名公司,其产品包括Vmware WorkStaion/Server等,它可以广泛用于测试新的操作系统或者应用程序环境,向用户推介新的操作系统,在教育研讨期间共享已经配置的环境,等等。 VMware Workstation 允许操作系统和应用程序在一台虚拟机内部运行。虚拟机是独立运行主机操作系统的离散环境。在 VMware Workstation 中,你可以在一个窗口中加载一台虚拟机,它可以运行自己的操作系统和应用程序。你可以在运行于桌面上的多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机 — 这一切不会影响你的主机操作和任何操作系统或者它正在运行的应用程序。 Vmware WorkStation是使用文件模拟系统的典型应用,兼容性和稳定性非常好,在不需要虚拟机时,简单的从系统磁盘文件中删除即可,不会对主机操作系统造成任何的影响,也不需要对主机进行重新分区、格式化等危险操作。另外虚拟的操作系统可以和主机以各种方式互联,包括网桥、NAT、私有网络等方式,可以共享主机网络,并且可以建立和主机共享的文件夹(客户机操作系统必须支持)。具体到我们的嵌入式开发,使用Vmware WorkStation至少可提供如下的功能:

VxWorks 5.5 学习笔记

VxWorks 5.5开发指南学习笔记 第一章VxWorks概述 1.绪论 VxWorks是一种嵌入式的实时操作系统,所谓嵌入式操作系统就是我们自己设计开发一块可以实现某种功能的板子,一般的功能板上都有一个cpu,嵌入式实施操作系统就是运行于这个cpu之上,使我们能够在板子上作相应得软件开发实现板子功能。 VxWorks支持32位的CPU,包括Intel公司的x86、Motorola公司的68k 和PowerPC、MIPS、ARM、Intel公司的i960、Hitachi公司的SH。我们设计的这块板子通常没有软件的自开发能力,所以我们需要一台通用机来辅助开发,这台通用机可以是PC或工作站,我们称辅助我们软件开发的通用机为宿主机(Host),用户自己开发的板子为目标机(Target)。宿主机上要有一个集成开发环境(IDE)来辅助我们的软件开发,这套集成开发环境可以运行在Windows95/NT 或 UNIX下,包括交叉编译器(Cross Compiler)和交叉调试器(Cross Debugger),所谓交叉编译器就是在宿主机上编译生成可以在目标机上运行的代码IMAGE,交叉调试器就是通过宿主机和目标机之间的某种耦合方式实现前后台调试。我们称宿主机上的这套集成开发环境为Tornado,编译生成的目标机上的可执行代码IMAGE为VxWorks。在系统安装的时候,集成调试环境和VxWorks的原材料(一些obj文件)都安装到宿主机上,编译生成的在目标机上运行的IMAGE内包含操作系统。下面我们分别来介绍这两部分内容。 1.1IMAGE of VxWorks 1.IMAGE的结构 IMAGE可以分为三个层次四个部分,最底层是BSP,中间层是VxWorks其中包含WindKernel 和components两部分,最高层是应用实现层app。 1)BSP BSP是系统用来管理外设的部分,由两部分组成:初始化、驱动程序。所谓初始化是指从系统上电复位开始直到wind kernel和usrRoot根任务启动的这段时间系统的执行过程。驱动程序就是一些包含I/O操作的子函数,是对一些调试或加载应用程序所需要的外设的驱动程序。初始化可分为3个过程:CPU Init、Board Init、System Init。CPU Init初始化CPU的内部寄存器。Board Init初始化智能I/O的寄存器,将device打通。System Init 为系统的运行准备数据结构,进行数据初始化。驱动程序的特点是不能自动执行,只能被动调用。调用可以有三种方式:任务直接调用、任务调用System Call、任务调用服务。具体如下图1-1所示。

VxWorks调试环境构建全过程

VxWorks 调试环境构建全过程 设定VxWorks开发环境如下: 宿主机端(Host):普通PC机一台;Tornado2.0 IDE;BSP为x86 Pentium3架构。目标机(Target): x86 Pentium3 CPU, 网卡为intel8255x系列(标识:fei)。 主机和目标机通过网线连接,制作步骤详述如下(为了图文一致,以下假设目标机BSP文件夹名为:pcPentium): 1 .修改配置文件 我们要修改编译VxWorks的配置头文件Config.h中定义的一些参数,使编译出来的系统引导程序和VxWorks的映象符合我们的要求。 (1)定位到目录C:\tornado2.2\target\config\pcPentium并打开该目录下Config.h文件; (2)查找到定义DEFAULT_BOOT_LINE宏的地方,修改预处理条件CPU == PENTIUM3分支下的定义如下: #define DEFAULT_BOOT_LINE \ "fei(0,0)host: vxWorks h=192.168.80.169 e=192.168.80.254 u=target pw=target tn=target" 其中: ?fei(0,0)指定了使用第0个网卡和第0个处理器,fei这个标识代表intel8255x系列100M网卡,若目标机为intel8255x系列网卡,则标识 为gei; ?host指定你的主机的名字,使用host就可以; ?vxWorks指定了VxWorks映象下载的完整路径(后面会有说明); ?h=192.168.80.169是宿主机的IP地址,可以根据实际情况修改;

VxWorks组件简介与映像定制方法

VxWorks组件简介与映像定制方法 徐利锋、王莹、老大中 一、创建映像工程 Create a bootable VxWorks image 工程创建完毕后,工程管理工具为用户工程产生、拷贝了一系 列文件,这些文件显示在工程作业空间的Files选项卡中(如图1.1 所示)。这些文件都是创建工程时,系统自动创建的文件(有些文件 不可修改)。下面对这些文件进行详细的描述和说明。 linkSyms.c : 动态产生的配置文件。该文件包含的代码来自于VxWorks文档,而 VxWorks文档是参考适当的符号集而创建的。文件包行的是没有被 初始化的程序模块符号信息。该文件在工程任何时候发生变化时重 新产生,用户不需要对其编写和修改。 prjConfig.c : 一个动态产生的配置文件。该文件在工程任何时候发生变化时重新产生,用户不需要对其编写和修改。该文件包含的是当前VxWorks映像所包含组件的初始化代码。romInit.s : 包含引导Rom和基于Rom的VxWorks映像的初始化入口汇编代码。 romStart.c : 包含把VxWorks映像下载到RAM中的程序代码。 sysALib.s : 包含系统启动代码。这是VxWorks映像下载到RAM中启动启动以后执行的第一段代码。 sysLib.c : 包含与目标机或系统相关的C语言函数。该文件提供板级接口,通过该接口,VxWorks和应用程序的实现将与目标系统无关。 usrAppInit.c : 包含自启动型VxWorks映像用户应用程序入口函数usrAppInit(),类似与C语言的main()函数。用户可以把应用初始化程序增加到该函数里,如图1.2所示的usrAppInit.c文件窗口。usrAppInit ()函数是应用程序入口函数,当目标机系统加电后,首先初始化CPU,接着初始化目标机上的设备、安装设备驱动程序、创建设备等,然后进行系统的配置和系统引导所需要的资源申请等,最后执行

Vxworks 开发工具(tornado)的使用教程

一.认识Tornado II和Vxworks VxWorks是一种嵌入式的实时操作系统,所谓嵌入式系统就是用户自己开发设计板子,板子上通常有一颗CPU,VxWorks支持32位的CPU,包括Intel公司的x86、Motorola 公司的68k和PowerPC、MIPS、ARM、Intel公司的i960、Hitachi公司的SH。我们设计的板子通常没有软件的自开发能力,所以我们需要一台通用机来辅助开发,这台通用机可以是PC或工作站,我们称辅助我们软件开发的通用机为宿主机(Host),用户自己开发的板子为目标机(Target)。宿主机上要有一个集成开发环境(IDE)来辅助我们的软件开发,这套集成开发环境可以运行在Windows95/NT或UNIX下,包括交叉编译器(Cross Compiler)和交叉调试器(Cross Debugger),所谓交叉编译器就是在宿主机上编译生成可以在目标机上运行的代码IMAGE,交叉调试器就是通过宿主机和目标机之间的某种耦合方式实现前后台调试。我们称宿主机上的这套集成开发环境为Tornado,编译生成的目标机上的可执行代码IMAGE为VxWorks。在系统安装的时候,集成调试环境和VxWorks的原材料(一些obj文件)都安装到宿主机上,编译生成的在目标机上运行的IMAGE内包含操作系统。 二.Tornado II IDE的主要组成 Tornado II IDE的主要组成部分有: 1.集成的源代码编辑器(可惜不支持汉字输入)。 2.工程管理工具。 3.集成的C和C++编译器和make工具。 4.浏览器,用于收集可视化的资源,*目标系统。 5.CrossWind,图形化的增强型调试器。 6.WindSh,C语言命令外壳,用于控制目标机。 7.VxSim,集成的vxworks目标机仿真器。 8.WindView,集成的软件逻辑分析仪。 9.可配置的各种选项,可以改变归Tornado GUI的外观等。 Tornado II IDE运行在我们的宿主机(Host)上。主界面如下图所示。包括菜单、工具栏、主工作区和程序编辑区。主工作区(workspace)中可以集中管理所有的工程项目。

整理的一点vxworks的介绍

1.VxWorks 开发商: VxWorks 是美国Wind River System 公司(以下简称风河公司,即WRS 公司)推出的一个实时操作系统。WRS公司组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。 1984年WRS 公司推出它的第一个版本--VxWorks 1.0.1,在1997年推出了它的最新版本VxWorks 5.3.1。 应用: VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。据称美国市场占有率第一名。 特点: VxWorks 的开放式结构和对工业标准的支持使开发着只需做最少的工作即可设计有效的适合于不同用户要求的实时操作系统。VxWorks主要有以下特点: 微内核结构(最小结构<8KB) 微秒中断处理 高效的任务管理 ·多任务,具有256优先级 ·优先抢占和轮转调度 ·快速,确定的上下文转换 多处理器支持 灵活的任务间通信 ·具有优先级继承的二进制、计数器、互斥的信号量 ·消息队列 ·套接字 ·共享内存 ·信号异常处理 符合POSIX 1003.1b实时扩展标准 满足TCP/IP 网络标准 灵活的从ROM、磁盘或网络的引导能力 快速、灵活的I/O系统 支持MS-DOS 和RT-11文件系统 完全符合ANSI C 标准 多于1100种功能例程 开发工具: 从1995年以后,WRS 公司推出了一套实时操作系统开发环境-- Tornado。Tornado集成环境提供了高效明晰的图形化的实时应用开发平台,它包括一套完整的面向嵌入式系统的开发和调测工具。Tornado环境采用主机-目标机交叉开发模型,应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器(Target Server)与目标机上的目标代理(Target Agent)的通信完成对应用程序的调试、分析。 Tornado 包含三个完整的部分: ●Tornado系列工具, 一套位于主机或目标机上强大的交互式开发工具和使用程序;

VxWorks开发调试环境安装方法

1.安装JAVA虚拟机j2re-1_4_2_19-windows-i586-p.exe 2.安装VxWorks开发环境:Wind River Workbench 3.0. 顺序安装5张光盘: 1)光盘1 CDR-R126095.1-1-00 Wind River Workbench 3.0 QCpgN-Ff5gK-9dB75-9KMdd-7gCCC 安装时需要注意的设置(安装下面的光盘相同): A.信息,随意填写

B.安装方式,选择第二种“DISK SERIAL NUMBER” C.安装类型:选择第三种“Enter the Installation Key”,输入上面安装序列号

D.其他保持默认设置,直接“下一步”即可。 2)光盘2 CDR-R132650.1-1-00 VxWorks 6.6 and General Purpose Technologies 7F$CN-AQ4iK-bEIK4-iQFEJ-Q8iCK-9F9FF-FFF9f-FFFFF 3)光盘3 CDR-R132652.1-1-00 Board Support Packages for VxWorks 6.6 for ColdFire, Intel Architecture, and SuperH 7FpCN-B759K-bB775-9KFBc-79gUU 4)光盘4 CDR-R132655.1-1-00 Wind River Platform Technologies, VxWorks Edition 3.6 77pCN-B759K-bdBf5-gKFBc-79gCK 注意:该光盘的安装路径为“X:\wind\river”和前3个不同 5)光盘5 CDR-R132657.1-1-00 Wind River GNU Compiler 4.1.2 for VxWorks 6.6 7CphN-B759K-Fd7F5-FUFBd-79gCK

相关文档
最新文档