vxworks基础培训解读

合集下载

Vxworks开发简明培训教程服务器应用

Vxworks开发简明培训教程服务器应用

Vxworks开发简明培训教程服务器应用一、教学内容本教程服务器应用部分,主要针对VxWorks操作系统的服务器应用进行讲解。

教材涵盖的章节有:第三章网络编程,第四章服务器编程,第五章Web服务器开发。

具体内容如下:1. 第三章网络编程:介绍VxWorks操作系统中的网络编程基础,包括套接字编程、TCP/IP协议栈的使用等。

2. 第四章服务器编程:讲解如何在VxWorks中实现网络服务器,包括基于TCP和UDP的服务器编程。

3. 第五章Web服务器开发:介绍Web服务器的基本原理,以及在VxWorks中如何开发Web服务器。

二、教学目标1. 使学生掌握VxWorks操作系统的基本网络编程方法。

2. 培养学生具备在VxWorks中实现网络服务器的能力。

3. 让学生了解Web服务器的工作原理,并能在VxWorks中进行开发。

三、教学难点与重点1. 教学难点:VxWorks网络编程中的socket API,Web服务器开发中的HTTP协议处理。

2. 教学重点:服务器编程的基本方法,Web服务器的核心模块实现。

四、教具与学具准备1. 教具:多媒体教学设备,VxWorks操作系统安装光盘。

2. 学具:学生个人电脑,VxWorks操作系统安装文件,网络编程实践案例。

五、教学过程1. 引入实践情景:以企业实际需求为背景,讲解网络编程在服务器应用中的重要性。

2. 讲解第三章网络编程:通过示例代码,讲解VxWorks中的套接字编程方法。

3. 讲解第四章服务器编程:以TCP服务器为例,讲解服务器程序的实现过程。

4. 讲解第五章Web服务器开发:介绍Web服务器的工作原理,以及在VxWorks中实现Web服务器的方法。

5. 随堂练习:让学生根据所学内容,编写一个简单的网络服务器程序。

6. 例题讲解:分析并讲解典型的网络编程问题,如Socket编程中的粘包问题。

7. 课后作业:布置作业题目,要求学生完成一个基于VxWorks的Web服务器程序。

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_romCompress
VxWorks_rom 的压缩形式
BootRom
压缩方式的映象,生成的时候编译器会把除掉romlnit.s 和bootInit.c之外的目标文件压缩并“汇编”成一个 bootrom.Z.s,最后和romInit.o,bootInit.o, version.o进行链接,生成bootrom映像
要全部拷贝到ram中,并必须要进行解压缩的工作。而这 些工作基本上都是在bootInit.c中进行的。
2010年4月的VxWorks 653
面向安全关键级别,航空电子设备市场,如波音787 基于Power Architecture架构(PowerPC)以及intel架构;严格的
两级时间与空间调度;文件系统具有电源故障安全保护功能
6
课程大纲
VxWorks简介 VxWorks映像 Wind 内核 VxWorks内存管理及其他 VxWorks开发环境
VxWorks 6.0的航向标
对MMU、CACHE和大物理地址的抽象化
4
支持多核的6.7版本
支持多核
非对称式多重处理(asymmetric multiprocessing; AMP)
对称式多重处理(symmetric multiprocessing; SMP)
降低功率消耗 multicore-aware工具
BootRom类型映像 VxWorks类型
8
BootRom类型映像
最小化、专用的VxWorks引导映像,实现最少的系统 初始化
用于启动装载VxWorks映像 功能类似于PC机的BIOS
BootRom运行时建立起多任务环境
usrRoot任务、网络任务、TFFS任务和FTP任务等

VxWorks基础培训

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基础知识(互联资料)

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教程

06 VxWorks内存管 理编程实践
动态内存分配策略
分段内存管理
将内存划分为不同大小的段,根据需求动态分配和释 放内存段。
内存池管理
创建多个内存池,每个内存池管理特定大小的内存块 ,提高内存分配效率。
自定义内存分配器
根据应用需求,实现自定义的内存分配器,以满足特 定场景下的内存管理需求。
内存泄漏检测工具使用
优化内存使用技巧
减少全局变量使用
尽量避免使用全局变量,以减少内存占用和 提高程序可维护性。
合理使用指针和引用
在传递数据时,尽量使用指针和引用而非直 接传递数据,以降低内存消耗。
及时释放不再使用的内存
在程序运行过程中,及时释放不再使用的内 存资源,避免造成不必要的内存浪费。
使用内存对齐和压缩技术
合理利用内存对齐和压缩技术,提高内存使 用效率并降低内存碎片化的风险。
01
根据目标硬件平台和开发需求选择合适的编译器,如GNU
Compiler Collection (GCC) 或 Wind River Diab Compiler。
设置编译器选项
02
在Workbench中配置编译器的选项,如优化级别、警告级别、
语言标准等。
编译项目
03
使用选定的编译器对项目进行编译,生成可在目标硬件上运行
同步与互斥机制实现
互斥锁
条件变量
互斥锁是一种用于实现互斥访问共享 资源的同步机制。在VxWorks中,互 斥锁通过`mutexCreate()`函数创建, 并通过`mutexLock()`和 `mutexUnlock()`函数进行锁的获取 和释放。当一个任务获取了互斥锁时 ,其他试图获取该锁的任务将被阻塞 ,直到锁被释放。

VxWorks基础知识 ppt课件

VxWorks基础知识 ppt课件

虚拟 内存
多任务 处理
操作系统 模块
Wind 内核
目标开发 工具
嵌入式操作系统VxWorks
VxWorks
I/O子 系统




网络子 系统


嵌入式操作系统VxWorks
wind :VxWorks 的核心,被称作 wind,包括多任务调度(采用优先 级抢占方式),任务间的同步和进程间通信机制,以及中断处理, 看门狗定时器和内存管理机制。
基于目标机的工具:在 Tornado 开发系统中,开发工具是驻留在 主机上的。但是也可以根据需要将基于目标机的Shell 和装载卸载 模块加入 VxWorks。
板级支持包 BSP :板级支持包向VxWorks操作系统提供了对各种板 子的硬件功能操作的统一的软件接口,它是保证VxWorks操作系统 可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时 钟和计时器管理、局域和总线内存地址映射、内存分配等等。 每 个板级支持包括一个 ROM 启动(Boot ROM)或其它启动机制。
不同处理器之间的共享内存区域,用于不同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。

adlinkvxworks培训

adlinkvxworks培训
2004年:以Eclipse为基础的集成化开发环境“Wind River Workbench”正式推出 2004年:Wind River正式进军嵌入式Linux市场. 2007年:Wind River加入Google的开放手机联盟(Open Handset Alliance,OHA) 2008年:Wind River成为嵌入式Linux市场领导厂商, 此时距正式进军该市场仅
VxWorks的应用领域
• VxWorks支持几乎所有现代市场上的嵌入式CPU,包括x86系列、MIPS、 PowerPC、Freescale ColdFire、Intel i960、SPARC、SH-4、ARM, StrongARM以及xScaleCPU。它以其良好的可靠性和卓越的实时性被广泛地 应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中, 如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、F/A-18战 斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年7月在火星表面登陆的 火星探测器,2008年5月在火星表面上登陆的凤凰号火星探测器上也都使用 到了VxWorks。
实例操作
• 一.cpci3915 的vxworks5.5映像的制作 加载策略:硬盘
• 二.cpci3965的vxworks6.6映像的制作 加载策略:网络
以VxWorks为例讲述OS的启动流程
一. MBR的概念
硬盘的0柱面、0磁头、1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为 主引导记录(MBR).该记录占用512个字节,它用于硬盘启动时将系统控制权 交给用户指定的,并在分区表中登记了的某个操作系统区.
三. BSP中的文件介绍
1. 在 target/config/all 目录下的文件 • bootConfig.c – Main Initialization for Boot ROM Images • bootInit.c – Second-Stage ROM Initialization • dataSegPad.s – VxVMI Text Segment Protection • usrConfig.c – Initialization Code for VxWorks Image 2. 在target/config/comps/vxWorks 目录下的文件 3. 在target/config/comps/src 目录下的文件 4. 在target/config/bspname 目录下的文件

VxWorks任务基础解读

VxWorks任务基础解读

在任务被创建时从系统内存池中分配 任务创建后堆栈的大小就固定了 内存在堆栈中预留了一些空间,使得实际可用 的堆栈空间比申请的堆栈空间要小 超过堆栈大小(stack crash)会导致系统不可 预见行为
任务选项(options)
在任务创建时,可以按位“与”或者“或”同 时使用 – VX_FP_TASK 增加对浮点的支持 – VX_NO_STACK_FILL 不使用0xee填充stack – VX_UNBREKABLE 禁止断点 – VX_DEALLOCATE_STACK 当任务退出时对 stack和TCB进行回收 使用taskOptionGet()来查询任务的option 使用taskOptionSet()来设置或复位option

VxWorks应用设计
中科信软培训中心
四、VxWorks任务基础
4.1 VxWorks的实时多任务简介

实时性使得一个控制系统能够及时响应对该系统 的控制。 如果一个系统的响应时间是可以预测的,则它 就是一个具有确定性的系统。 从一个事件发生到它被响应之间的时间称为 Latency。 确定性恢复(suspend/resume) taskSuspend(tid) 使任务不能够执行 可以被增加阻塞和睡眠状态 一个任务可以安全地挂起自己 taskResume(tid) 取消挂起 通常taskSuspend()和taskResume()被用于调试 和开发的目的

任务名
为方便人们理解而设置 – 通常在开发过程中在Shell中使用 – 在程序中使用task id 为了方便起见,起任务名时一般以t作为开头; 由系统所起的默认的任务名为t后面带一个顺序 增加的数字 任务名不一定是唯一的(但通常都是唯一的) 相关的taskLib例程有 – taskName() 从tid得到任务名 – taskNameToId 从任务名得到tid

Vxworks培训资料

Vxworks培训资料

Tonado开发环境(续)
Tornado开发环境(续)
板支持包(BSP)
Vxworks操作系统将一切与硬件有关的 功能模块都放在BSP库中。该BSP库是硬件 与软件的接口,处理硬件的初始化、中断处 理与产生、硬件时钟与定时管理、局部和总 线内存空间的映射、内存大小定义,等等。 能够自行启动目标机、初始化目标机、能够 与host通信以下载Vxworks核、把控制权交 给Vxworks核来调用用户应用程序等功能。
I/O System
VxWorks libraries
File System
Wind microKernel
TCP/IP
SCSI Driver
Hardware Abstraction Layer
Flash Driver
MMU Driver
Cache Driver
Serial Driver
Ethern et
Driver
Other Driver
s
Hardware
Vxworks特点
WIND微内核 硬件支持广(BSP) 较好的兼容性,POSIX1003.1.b 良好的可裁减性 很好的开发环境:tornado 动态连接和下载 多处理器、网络协议,图形界面支持
VxWorks的特点
Vxworks培训资料
Vxworks简介
最成功的实时操作系统 1981,Windriver,嵌入式咨询公司 TCP/IP,NFS工具集 WIND内核 1995,tornado集成开发环境 收购SDS、DIAB、pSOS
VxWorks (1)
Vxworks操作系统是一个嵌入式实时操作系统(RTOS)。
Vxworks与其它实时OS一样,基于以下两个重要机制: * 多任务环境及任务间通信 * 硬件中断处理

Vxworks培训讲稿(嵌入式系统)

Vxworks培训讲稿(嵌入式系统)

ROM-based Image
ROM-resident Image
7
调试时的 Image:先由引导代码把 ROM Boot Program 搬到 RAM 中,Boot Program 初始化调试下载通道和调试信息输出通道。 被调试的 IMAGE 通过 Host 与 Target 之间
的某种耦合方式 download 到 Target 的 RAM 中,然后接受控制权,实现调试。 的 在 线 升 级 ( GoAhead 5. Image DeviceStudio,UpgradeAgent,UpgradeServer) : 存储介质:flash、flash disk 升级通道: 升级时期: 升级保护: 升级安全: 升级 IMAGE 的部分或整体: 2.3.6 Debug 调试就是 bug 的定位 1.需要调试的层次: App Field Upgrader:GoAhead
usrRoot VxWorks
驱动程序的特点是不能自动执行,只能被动调用。调用可以有三种方式:任务直接调 用、任务调用 System Call、任务调用服务。 Task subrutine system call VxWorkks components driver 所以驱动程序可以抽象为三个层次:常规操作、与 VxWorks 的接口、与 Component 的 接口。 驱动程序与 component 的接口 驱动程序与 VxWorks+的接口 驱动程序的常规操作 常规操作是设备的固有操作逻辑,有两层含义: I/O 编址 微观上表现为 CPU 操作 device 的寄存器、宏观上表现为具体操作的含义。 register 数字电路 Status 电 电 I/O processor 光 r/w CPU Address 机械 … 控制电路 control

VxWorks开发简明培训教程Manual

VxWorks开发简明培训教程Manual

VxWorks开发简明培训教程ManualVxWorks是美国Wind River Systems开发的一款实时操作系统,常被使用在嵌入式系统中,其广泛的应用领域包括航空航天,自动驾驶,医疗设备等。

为了更好地了解VxWorks的开发及应用,在这里针对其开发进行简明培训教程。

1. 环境准备在使用VxWorks进行开发之前,需要先进行相关环境的准备。

首先是设备的准备,需要一块支持VxWorks的开发板。

其次是软件的准备,可以从Wind River Systems官网上下载VxWorks开发软件。

2. 创建项目在进行VxWorks开发前,需要创建一个新的项目。

在Eclipse或者Wind River Workbench中,可以通过点击New Project来创建新的项目。

在这一步中,需要选择合适的CPU类型和操作系统类型,以及选择开发板的型号。

3. 创建任务在VxWorks操作系统中,任务是一个非常重要的概念。

任务可以看做是一个运行在操作系统上的程序,可以控制任务的创建和销毁。

通过在代码中调用taskSpawn函数可以创建一个新的任务,该函数包含任务名称、任务优先级、任务属性、栈大小等参数。

4. 任务管理在VxWorks中,可以通过taskDelete和taskSuspend等函数来分别删除或者挂起一个任务。

在对任务进行管理时,需要注意任务的优先级和业务流程,确保任务的执行顺序和执行时间。

5. 中断处理在嵌入式系统中,中断是一个非常重要的概念。

VxWorks 提供了中断处理机制,可以在中断的发生时进行处理。

通过对中断处理函数进行编写,可以实现对中断信号的处理和相应,从而保证系统的稳定性和安全性。

6. IO操作在嵌入式系统中,IO操作是必不可少的一部分。

VxWorks 提供了相关的函数,可以对设备进行读写操作。

比如,通过open函数打开设备,通过read函数读取设备数据,通过write 函数将数据写入设备。

第八章 VxWorks系统

第八章 VxWorks系统

ROM_BASE_ADRS+ROM_SIZE
compressed Image Segment
RAM_DST_ADRS
binArrayEnd
STACK_SAVE Zero filled on cold boot SYS_MEM_BOTTOM Reserved LOCAL_MEM_LOCAL_ADRS RAM Image



宿主机 目标机 串型通讯网络(通常是以太网) Tornado开发环境 在开发BSP时还会使用到如STD,ADS等开 发软件和JTAG接口
8.2 VxWorks系统开发工具

交叉编译和交叉调试
交叉编译器就是在宿主机上编译,从而生 成可以在目标机上运行的二进制代码镜像文 件(Image); 交叉调试器就是通过宿主机和目标机间的 某种耦合方式实现前后台调试
8.2 VxWorks系统开发工具

交叉编译和交叉调试
8.2 VxWorks系统开发工具

宿主机和目标机之间的通讯协议
宿主机(Tornado开发环境) Shell Applications 目标机
Editors Project
Debugger
WTI协议通讯
Browscr Windvie
Targe Server Targe Agent VxWork Targe Simulator
8.1 VxWorks的软件构架

I/O系统
VxWorks提供一个快速灵活的与ANSI C兼容 的I/O系统。 VxWorks包含以下驱动程序---网络驱动、管 道驱动、RAM盘驱动、SCSI驱动、键盘驱动、 显示驱动、磁盘驱动、串口和并口驱动
8.2 VxWorks系统开发工具

VxWorks学习

VxWorks学习

串行数据与并行数据串口通信的基本概念1,什么是串口?2,什么是RS-232?3,什么是RS-422?4,什么是RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。

大多数计算机包含两个基于RS232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- 232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。

尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

它很简单并且能够实现远距离通信。

比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。

通信使用3根线完成:(1)地线,(2)发送,(3)接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。

其他线用于握手,但是不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。

它表示每秒钟传送的bit的个数。

例如300波特表示每秒钟发送300个bit。

当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。

这意味着串口通信在数据线上的采样率为4800Hz。

通常电话线的波特率为14400,28800和36600。

波特率可以远远大于这些值,但是波特率和距离成反比。

高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。

b,数据位:这是衡量通信中实际数据位的参数。

当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。

实时嵌入式系统 VxWorks培训

实时嵌入式系统 VxWorks培训

1.5.3GDB--调试界面
1.5.4WindView--多任务观察界面
1.5.5程序编辑--Source Insight


开发环境的主要部件是宿主机(host)、目标机 (target) 典型的交叉平台系统代码(如实时嵌入式操作系统、系统 软件和应用软件)通常保存在ROM和NVRAM存 储设备中。 对嵌入式系统软件的升级就是利用特殊的设备 与/或特殊的方法重写EPROM中的程序或重写闪 存(flash)中的程序。
1.5 vxWorks及其开发环境


VxWorks 操作系统是美国WindRiver 公司于 1983 年设计开发的一种嵌入式实时操作系统 (RTOS),是嵌入式开发环境的关键组成部分。 vxWorks5.5开发环境为Tornado 2.2.1
1.5.1Tornado—安装目录
1.5.2Tornado--集成编译环境
1.1.1实时系统特性

实时系统必须产生正确的结果 实时系统的响应必须在预定的周期内完成 实时系统是具有确定性的。在这些实时系统中, 响应时间决定事件是有界的。一个确定的实时系 统意味着系统的每个部件都必须具有确定的行为, 使得整个系统是确定性的。
1.2嵌入式处理器
通用目的的处理器:它的设计非常丰富,可以 提供全部的特性和广泛的功能。但这些处理器 能源消耗大,产生的热量高,尺寸也大,其复 杂性也带来了制造成本的昂贵 嵌入式处理器:它是为完成特殊的应用而设计 的特殊目的的处理器 – 注重尺寸、能耗和价格的处理器 – 注重性能的处理器 – 注重性能、尺寸、能耗和价格的处理器
一、实时嵌入式系统 VxWorks 和Tornado开发环境
1.1实时嵌入式系统
嵌入式系统是设计完成复杂功能的硬 件和软件,并使其紧密耦合在一起的计算 机系统。术语嵌入式反映了这些系统通常 是更大系统中的一个完整的部分,称为嵌 入的系统。嵌入的系统中可以共存多个嵌 入式系统。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统的制作与下载
烧制bootrom • 目的:将build成功的bootrom 烧制到Flash中 • FADS860板通过配套的ADI卡烧制 • 按照ADI卡相应的8bug程序中的readme,安 装ADI卡 • 在DOS方式下键入:mpc8bug x y
烽火科技
操作系统的制作与下载
• • •

编译并启动:
烽火科技
启动Wind Shell
• 在Launch工具栏 shell的界面: 中选择 ,这时候就可以看到

输入i命令,回车,,即可以查看到我们起的任务tTick的有关信息:
烽火科技
Wind Shell常用命令
• i:显示所有的任务信息
• • • • • • • • Tt():显示一个任务的函数栈的调用状态 Ti():显示一个任务的tcb信息 Sp():启动一个任务 Ts():挂起一个任务 Tr():恢复一个任务 Td():删除某个任务 memShow:显示系统内存信息 checkStack:查看指定或所有任务的堆栈大小和使用率
烽火科技
开发板开发嵌入式程序
• 操作系统的制作与下载
– – – – – – 修改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到工程中:
修改Config.h
• 10M网口使用cpm(0,0), 100M网口使用motfec(0,0) • host:后跟VxWorks操作系统在主机的存放路径,h指主机IP 地址,e指目标板IP地址,u指用户名,pwd指密码 • 实例:使用10M网口,VxWorks在主机D:\,主机地址 10.16.17.1,目标板地址10.16.17.2,账号及密码均为 tornado,其代码为: • “cpm(0,0)host:d:/vxWorks h= 10.16.17.1 e= 10.16.17.2 u=tornado pwd=tornado”
烽火科技
操作系统的制作与下载
修改Config.h
• config.h首先定义BSP版本,然后include configAll.h
• 缺省下载调试口为10M网口,对应代码为
– #undef FADS_860T
• 如改用100M网口下载调试,将该行改为
– #define FADS_860T
烽火科技
操作系统的制作与下载
– 开发嵌入式应用时系统开发商提供的各种驱动支持库 – VxWorks:OS的驱动程序 – VxWorks提供的大部分功能模块与硬件无关,为使VxWorks能运行于不同 的处理器体系结构上,必须在功能模块与硬件之间加入一层软件,并对 这层软件规定标准接口,这层软件即为BSP – 提供对硬件进行的描述性操作 – 提供对目标板的初始化、中断管理以及一些简单的驱动程序 – 最好的情况下,OS与驱动程序的移植只需要更换相应平台下的BSP支撑 库 – 《Tornado BSP Developer’s Kit for VxWorks》
烽火科技
Tornado工具
• CrossWind:
– 源程序(C 或 C++ 以及汇编程序等)的调试工具 可对系统对象(任务、消息队列、信号量等)和存储 器使用情况进行观察的浏览器。 可以方便地监视用户的 目标系统。 Browser汇总了应用进程,内存消耗和一个目 标内存的映射。通过 Browser,用户可以观察信 号量、 消息队列、内存分配、看门狗计时器、堆栈使用情况、 目标 CPU使用率、对象模块结 构和符号表以及每个任务的详细信息。 提供从宿主机到目标机之间的一个命令 shell。 允许用户调用内存中的应用程序模块或是 VxWorks模块中的任何例程。 非常出色的系统可视诊断和分析工具。可非常容易地观察各任务,中断程序之间的相互作 用。 快速原型仿真器。可在硬件设备未完成之前,在宿主机上对应用程序进行仿真分析。
烽火科技
VxSim的HelloWorld(一)
烽火科技
VxSim的HelloWorld(二)
• 选择 A BSP(板级支持包).c(它的函数usrAppInit是应用的入口点),添加Hello World打印语句,保存文件。
烽火科技
VxSim的HelloWorld(三)
烽火科技
操作系统的制作与下载
修改Config.h
• 如采用串口调试,可增加下列代码
• • • • • • • • • • #undef WDB_COMM_TYPE #define WDB_COMM_TYPE #undef WDB_TTY_CHANNEL #define WDB_TTY_CHANNEL #undef CONSOLE_BAUD_RATE #define CONSOLE_BAUD_RATE 115200 #undef WDB_TTY_DEV_NAME #define WDB_TTY_DEV_NAME "/tyCo/0" #undef WDB_TTY_BAUD #define WDB_TTY_BAUD /* default baud rate */ WDB_COMM_SERIAL 0
Vxworks嵌入式编程基础
邓国旭
烽火科技
实时嵌入式系统
• 嵌入式系统:
– 由CPU控制,即自带CPU – 相对于常见的pc而言,不对用户提供开发环境,用户与系统交互的唯一接 口就是系统提供给用户的应用; – 提供功能通常带有针对性,大多为专用系统; – 手机,医疗设备,微波炉,mp3……
• 实时嵌入式系统:
115200
烽火科技
操作系统的制作与下载
Build bootrom • • • • 修改BSP后,应生成对应的bootrom 在Tornado中选Build->Build Boot ROM BSP可选择ads860 Image一般选择bootrom.hex,仿真时选择 bootrom_uncmp
烽火科技
烽火科技
使用Tornado创建工程
• 创建工程.exe • WorkSpace & WorkProject
– 每一个工程都需要有一个WorkSpace来保存一些相关的环境变量;
• Bootable Vs Downable:
– 前者表明建立一个新的VxWorks操作系统,该工程是基于某个BSP生成的 镜像,它包含了必须的VxWorks的内核、组件以及BSP,并且应用程序可 以静态包含在工程中,也可以静态链接已编译好的应用工程模块。开发 者可以根据自己的需求进行适当的配置,添加、删除VxWorks的组件,设 置所选组件的运行参数等。 – 后者顾名思义,应用模块可以以静态链接的方式编译至VxWorks镜像工程 中,还可以在VxWorks运行之后,通过网络将将应用模块(.out格式)下 载到目标板,并与VxWorks镜像进行链接。在单独对某个模块进行调试时, 我们常常会用到这种动态链接的方法。
• • 验证bootrom 连接主机与目标板的串口线 启动和配置FTP Server(方法后面介绍) 选择Tornado2->VxWorks COM1/COM2,启 动超级终端 超级终端中选文件->属性->配置,设置正确 的目标板波特率 目标板上电,检查终端是否能正确回显, 显示参数与BSP配置是否一致
烽火科技
Tornado中Host与target通信
Target Server以进程的形式(tgtsvr.exe)运行在Windows主机上,而Target Agent 则以VxWorks的一个任务(tWdbTask)运行在目标机上,两者通常使用网络进 行通讯,但也可以使用其他通讯方式。 Target Serve与Target Agent间使用WDB(Wind Debug)协议进行通信,这就好比 一座桥梁,将目标机与主机上的Tornado开发工具联系在一起。
• 交叉编译:在某一体系结构的宿主机上为另一体系结构的 目标板编译可运行的目标代码。即编译与运行不在同一地 方。
• 宿主机(host):编写代码和编译 • 目标机(target):调试和执行程序
烽火科技
VxWorks
• VxWorks:
– 美国风河公司(Wind River System)推出的一种嵌入式实时操作系统。 – 强实时性、微内核设计、可裁剪、可移植、高可靠
– 实时性:任务切换时间、抢占时间、中断等待时间、信号量延迟时间、 死锁解脱时间、任务间消息传递延迟、数据报吞吐量 – 小型化、可裁剪:系统资源有限 – 强稳定性:一旦运行不需要人过多干预 – 固化代码:操作系统和应用软件代码固化在嵌入式系统ROM中 – 弱交互性:工作过程不需人干预
烽火科技
嵌入式系统开发
烽火科技
VxSim的HelloWorld(四)
• 最后:查看新弹出的对话框(VxWorks Simulator),^_^ ,可以看到输出的 Hello World
相关文档
最新文档