VxWorks基础知识

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

VxWorks基础知识及开发流程VxWorks介绍关于BSP以及映像Tornado介绍开发实例之一开发实例之二开发实例之三映像启动流程课程大纲VxWorks是美国WindRiverSystem公司(简称风河公司,即WRS公司)推出的一个实时操作系统。VxWorks嵌入式操作系统VxWorksWind内核多任务处理虚拟内存操作系统模块I/O子系统网络子系统目标开发工具VxWorks基本体系结构嵌入式操作系统VxWorkswind:VxWorks的核心,被称作wind,包括多任务调度(采用优先级抢占方式),任务间的同步和进程间通信机制,以及中断处理,看门狗定时器和内存管理机制。I/O系统:VxWorks提供了一个快速灵活的与ANSIC兼容的I/O系统,包括UNIX标准的缓冲I/O和POSIX标准的异步I/O。VxWorks包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等。文件系统:支持四种文件系统:dosFs,rt11Fs,rawFs和tapeFs支持在一个单独的VxWorks系统上同时并存几个不同的文件系统。嵌入式操作系统VxWorks实用库:VxWorks提供了一个实用例程的扩展集,包括中断处理、看门狗定时器、消息登录、内存分配、字符扫描、线缓冲和环缓冲管理、链表管理和ANSIC标准。虚拟内存:VxVMI为带有MMU的目标板提供了虚拟内存机制。VxMP(Share-MemoryObject)提供了共享信号量,消息队列和在不同处理器之间的共享内存区域,用于不同CPU的通讯与同步。WBD协议:目标代理遵循WBD(WindDebug)协议,允许目标机与主机上的Tornado开发工具相连。Tornado目标服务器(TargetServer)向目标代理发送调试请求。嵌入式操作系统VxWorks网络支持:它提供了对其它VxWorks系统和TCP/IP网络系统的“透明”访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件访问(包括客户端和服务端的NFS机制以及使用RSH,FTP或TFTP的非NFS机制)以及BOOTP和代理ARP、DHCP、DNS、OSPF、RIP。基于目标机的工具:在Tornado开发系统中,开发工具是驻留在主机上的。但是也可以根据需要将基于目标机的Shell和装载卸载模块加入VxWorks。板级支持包BSP:板级支持包向VxWorks操作系统提供了对各种板子的硬件功能操作的统一的软件接口,它是保证VxWorks操作系统可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级支持包括一个ROM启动(BootROM)或其它启动机制。嵌入式操作系统VxWorksBSP以及映像介绍BSP(BoradSupportPacket),板级支持包对单板的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、内存地址映射、内存分配等等。每个板级支持包括一个ROM启动(BootROM)或其它启动机制。嵌入式操作系统VxWorksBSP在单板软件中的地位:BSP硬件vxWorks等操作系统driverOSS嵌入式操作系统VxWorks最小BSP的定义广义上讲,单板中所有控制CPU系统硬件的程序,都属于单板的BSP,但为了调试方便和软件的模块化,通常将与单板最小系统相关的程序简称为BSP,而将其他程序称为驱动程序。对于嵌入式系统来说,所谓最小系统就是一个包含CPU,Bootrom,RAM,系统时钟,网口,串口的计算机运行环境。其中之所以包含串口和网口,主要是因为系统调试的需要,通常网口用于软件调试,而串口用于通过计算机的超级终端来显示单板程序运行结果信息。系统时钟是一个多任务OS所必须的资源。因此最小系统BSP就包含了CPU系统的初始化程序以及网口,串口,系统时钟等设备的驱动程序。VxWorks系统中的BSP针对某类CPU的硬件单板,vxWorks通常提供有其DEMO板的BSP,也就是我们所说的最小系统BSP。一般来说,我们在硬件系统设计好之后,都会先找到一个与自己系统相近的DEMO板BSP,并以此为基础,开发自己单板的BSP。VxWorks为了最大限度的支持不同的硬件环境,也提供了一些常用硬件芯片的驱动程序,它们通常是与具体CPU无关的设备,如一些PCI网口芯片,串口芯片等。这些驱动程序大多实现为CPU无关或很容易移植,可以方便的用于其他CPU平台。这也是开发驱动程序所应该遵循的原理。另外,我们的最小系统BSP,往往在默认情况下,使用这些驱动程序。•BSP位于硬件平台与操作系统之间,类似普通操作系统的BIOS,用于对上层软件屏蔽各种硬件相关性。•给VxWorks提供硬件环境接口。•BSP主要负责:–硬件上电初始化.–支持VxWorks访问硬件驱动.–把硬件相关和无关的软件很好地结合到VxWorks。•BSP不是硬件驱动程序:–是一种访问硬件的硬件驱动程序–硬件驱动分为通用和BSP有关两类。–通用驱动管理可在目标环境间移动的设备(如以太网芯片).–BSP驱动管理特定目标环境的设备(如中断控制器)。BSP功能BSPs和VxWorks关系BootRom与VxWorks映象VxWorks借鉴了传统PC操作系统的引导原理,其将整个引导过程分为两个阶段:•BOOTROM启动•通过BOOTROM加载VxWorks映象BOOTROM相当于PC机中的BIOS,它完成对加载过程中所需设备的初始化及驱动;然后通过某种可选择的通讯手段(如网口,串口),将VxWorks内核映象到内存中,并执行。此处的VxWorks映象就相当于我们在PC机上装的操作系统,如DOS,Windows。BOOTROM和VxWorks使用不同方法来编译生成。Bootrom类型说明:用于可加载VxWorks映象的Bootrom包含两部分:起始引导程序(BootStrapPrograms)和ROM引导程序(ROMBootPrograms)。起始引导程序驻留在ROM中,ROM引导程序起初存放在ROM中,初始化时被拷贝到RAM中bootrom_uncmp.hex(未压缩的BOOTROM):未压缩的ROM引导程序,可直接拷贝,在RAM中执行bootrom.hex(压缩的BOOTROM):压缩的ROM引导程序,在拷贝的过程中需要解压缩,在RAM中执行bootrom_res.hex(驻留的BOOTROM):驻留ROM的ROM引导程序,仅拷贝ROM引导程序的数据段,代码段仍旧在ROM中执行没有.HEX后缀的同名文件是其ELF格式的映象文件附表VxWorks映象类型说明:一、可加载的VxWorks映象这是一种运行于RAM的VxWorks映象。不包含搬移程序,需借助外部程序如bootRom才能加载到RAM。通过Ftp协议从主机加载到目标机中。ROM/FLASHBootStartProgramsROMBootProgramsRAMVxWorksBootProgramsLocal_MEM_Local_ADRSRAM_LOW_ADRSFREE_RAM_ADRSRAM_HIGH_ADRS主机FTPServer可加载VxWorks映象附表VxWorks映象类型说明:二、基于ROM的VxWorks映象这是一种运行于RAM,但起初存放于ROM中的VxWorks映象。即该映象需要和搬移程序一起固化在BOOT中。该映象可分为:压缩的和未压缩的ROM/FLASHBootStartProgramsROM_baseVxWorksimagesRAMVxWorksLocal_MEM_Local_ADRSRAM_LOW_ADRSFREE_RAM_ADRS基于ROM的VxWorks映象附表VxWorks映象类型说明:三、驻留ROM的VxWorks映象和搬移程序一起固化在BOOT中,仅将VxWorks映象的数据段和BSS段拷贝到RAM中,映象的代码段仍旧留在ROM中,从ROM中开始执行。该映象可分为:压缩的和未压缩的。ROM/FLASHBootStartProgramsVxWorksTextRAMVxWorksData+BSSLocal_MEM_Local_ADRSRAM_LOW_ADRSFREE_RAM_ADRS驻留ROM的VxWorks映象VxWorksData+BSS映象从文件的组织形式上可分为:Text段:存放的是可执行的代码。Data段:存放的是已经初始化的全局变量或静态变量;BSS段:存放的是未初始化的全局变量或静态变量附表一个BSP最小系统需要知道的知识:1.CPU所采用的endian模式2.时钟配置3.串口4.网口部分嵌入式操作系统VxWorks一个BSP最小系统以外需要知道的知识1、driver2、makefile3、OSS最小BSP的endian模式一般而言,我们是endian有两种模式:big和little。对big模式,以32bits中4个字节存放而言,低有效字节放在高地址处对little模式,以32bits中4个字节存放而言,高有效字节放在高地址处在写BSP中,特别是对字节的操作,需要注意这个问题在risc处理器中,endian模式的影响,一般是在加载和存储指令中。所以,在系统内存,还是按照正常的顺序来操作(little)最小BSP系统的时钟配置一般而言,对CPU内核时钟部分部分不需要配置,我们需要改变的是外设的时钟最小BSP系统的串口一般而言,从程序调试来看,可以不用仿真器来调试。在汇编最开始的地方,就将串口初始化好,通过从串口打印字符。这种方式是最好。嵌入式操作系统VxWorks最小BSP系统的网口该部分所要做的,也就是需要配置1.连接中断2.在sysEnd.c文件的sysLanPciInit()文件中配置END_TBL_ENTRY结构类型的变量endDevTbl。嵌入式操作系统VxWorksBSP最小系统之外的DRIVER对驱动而言,所做的也就是在厂家提供的驱动基础上修改。现在驱动的编写,虽然都是C语言编写,但是采用面向对象的编程思想。将对象在编程语言中组织成一个个的数据结构,然后对数据结构进行操作BSP最小系统之外的makefileMakefile完成了对程序的编译控制功能,通过调用cc和ld,最终生成一个可以执行的应用程序对makefile的使用,需要掌握两点:1.掌握makefile文件编写的基本规则2.熟悉在Torndao环境下,也就是在Tornado安装目录/target/h/make该目录下所有文件的了解3.BSP相关的子makefiles放在../h/make目录。rules.bsp–包括创建各种VxWorksimage文件的规则,也用于创建VxWorks目标模块的规则。.defs.bsp–定义编译和连接过程中的BSP控制宏。./h/make目录下其他子makefiles控制主机和体系结构相关的创建参数。BSP最小系统之外的OSS该部分在vxworks层之上,向应用软件屏蔽了vxworks的API函数接口和vxworks的功能。在实现形式有两种:1.直接对vxworks的API函数进行封装2.在vxworks上的基础上实现操作系统的实现的功能OSS实现几个基本功能:1.进程的调度2.时间片的管理3.内存管理软件模块4.文件系统软件模块5.异常和系统监测嵌入式操作系统VxWorksTornado简介Tornado是WRS公司推出的一套实时操作系统开发环境,提供了丰富的调试、仿真环境和工具。Tornado开发环境TornadoVxWorksWDBProtocolDevelopmentHostTarget(Ethernet,serial,netrom,custom)WTX=WindRiverTooleXchangeWDB=WindDeBugApplicationXtextdatabssX.cX.cppX.sMakefi

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功