




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,VxWorks基础知识及开发流程,.,VxWorks介绍关于BSP以及映像Tornado介绍开发实例之一开发实例之二开发实例之三映像启动流程,课程大纲,.,VxWorks是美国WindRiverSystem公司(简称风河公司,即WRS公司)推出的一个实时操作系统。,VxWorks,.,嵌入式操作系统VxWorks,Wind内核,多任务处理,虚拟内存,操作系统模块,I/O子系统,网络子系统,目标开发工具,VxWorks基本体系结构,.,嵌入式操作系统VxWorks,wind: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)或其它启动机制。,.,嵌入式操作系统VxWorks,BSP以及映像介绍,.,BSP(BoradSupportPacket),板级支持包对单板的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、内存地址映射、内存分配等等。每个板级支持包括一个ROM启动(BootROM)或其它启动机制。,嵌入式操作系统VxWorks,.,BSP在单板软件中的地位:,BSP,硬件,vxWorks等操作系统,driver,OSS,嵌入式操作系统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协议从主机加载到目标机中。,附表,.,VxWorks映象类型说明:,二、基于ROM的VxWorks映象这是一种运行于RAM,但起初存放于ROM中的VxWorks映象。即该映象需要和搬移程序一起固化在BOOT中。该映象可分为:压缩的和未压缩的,附表,.,VxWorks映象类型说明:,三、驻留ROM的VxWorks映象和搬移程序一起固化在BOOT中,仅将VxWorks映象的数据段和BSS段拷贝到RAM中,映象的代码段仍旧留在ROM中,从ROM中开始执行。该映象可分为:压缩的和未压缩的。,映象从文件的组织形式上可分为:Text段:存放的是可执行的代码。Data段:存放的是已经初始化的全局变量或静态变量;BSS段:存放的是未初始化的全局变量或静态变量,附表,.,一个BSP最小系统需要知道的知识:1.CPU所采用的endian模式2.时钟配置3.串口4.网口部分,嵌入式操作系统VxWorks,一个BSP最小系统以外需要知道的知识1、driver2、makefile3、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。,嵌入式操作系统VxWorks,.,BSP最小系统之外的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.异常和系统监测,.,嵌入式操作系统VxWorks,Tornado简介,.,Tornado是WRS公司推出的一套实时操作系统开发环境,提供了丰富的调试、仿真环境和工具。,Tornado,.,开发环境Tornado,VxWorks,WDBProtocol,DevelopmentHost,Target,(Ethernet,serial,netrom,custom),WTX=WindRiverTooleXchangeWDB=WindDeBug,Application,Xtextdatabss,CrossWind集成调试器,WindShShell工具,Browser浏览器,其他,TornadoTools,WTXProtocol,Host,Host-TargetCommunication,.,开发环境Tornado,TargetServer和WTX协议:TargetServer运行在Host端,每一个TargetServer连接一个Target。所有的Host工具通过TargetServer与Target集中通讯。TargetServer管理着Host-Target通讯的细节,从而简化了Host工具。Host工具通过WTX协议与TargetServer交互,包括提出请求、获取Target的信息。,TargetAgent和WDB协议:TargetAgent完成TargetServer传来的请求,并返回结果。TargetAgent中包含一个压缩版的UDP/IP用于支持RPC消息协议,即WDB协议。WDB协议包含了内存处理、断点/事件通知服务、虚拟I/O支持及任务控制。,.,VxWorks,Target,以太网,RS232,Host,典型的Tornado开发配置,.,嵌入式操作系统VxWorks,开发实例之一如何建立工程,.,开发工具以及资源,1.Tornado2.0-2.2,2.VxWorks5.4-5.5,相关资源,.,开发实例,(vxWorks核心的配置及编译的文件),(通用的配置文件),(Tornado工程管理工具配置的源文件),(单板BSP:代码文件,目标文件及编译文件),(包含所有vxWorks操作系统的头文件及通用编译文件),(由vxWorks为不同平台提供的库文件及目标文件),(vxWorks提供的部分硬件芯片驱动程序的源代码文件),(vxWorks操作系统的一些通用的源代码文件),(vxWorks中一些硬件芯片的通用驱动程序源代码文件),(网口驱动),(串口驱动),(包含一些较古老的硬件BSP代码),Tornado安装目录下Target目录结构,.,面对事业部提供的单板BSP,如何建立Tornado工程环境?,.,建立Tornado工程环境,1、BSP可放在任何路径下,与Tornado安装目录无关。注意:BSP目录的命名要和BSP中的makefile中的这条语句TARGET_DIR=BSPname设置的一致才可以。,.,2、打开Tornado,建立工程。,(根据实际情况可选择建立两种类型的工程),Bootable型工程,Downloadable型工程,1)是将VxWorks操作系统和自己的应用程序结合在一起,1)是纯粹的应用程序,不包含有操作系统分量,2)基于单板BSP才可建立工程,2)建立工程时,不需要单板BSP;要选择主机编译工具toolchain,例如ppce630gun。,4)调试方法:先编译生成BootRom;单板上运行BootRom的烧结程序,通过FTP将Tornado编译的可加载VxWorks映象下载到单板,也可将应用函数的.o文件分别下载进行调试。,3)应用程序的入口函数名添加在usrAppInit.c文件的usrAppInit(void)函数中,3)调试方法:先建立bootable工程,生成基于ROM的VxWorks映象;单板上运行该映象的烧结程序,将应用函数的.out文件分别下载调试;模块调试完成后,将其中的主口函数在bootableproject中的usrAppInit(void)调用。,建立Tornado工程环境,.,3、在工程中新建和添加文件,新建:选择“file-new”或ctrl+N,添加:project-Add/Include-file,说明:如果建立bootable工程,工程建立后中会自动生成usrAppInit.c文件,应用程序和工程文件的连接是通过将应用程序的入口函数加入到usrAppInit.c中的usrAppInit()函数来实现的。voidusrAppInit(void)#ifdefUSER_APPL_INITUSER_APPL_INIT;/*forbackwardscompatibility*/#endifmain();/*addapplicationspecificcodehere*/,建立Tornado工程环境,.,4、例1:Bootable工程环境,Tornado自动生成makefile文件,并自动修改更新,应用程序的入口函数添加在工程自动生成的usrAppinit.c文件中的usrAppInit(),建立Tornado工程环境,.,4、例2:Downloadable工程环境,Tornado自动生成makefile文件,并自动修改更新,建立Tornado工程环境,.,5、源文件添加完毕后,点击菜单“build-build”,即可实现工程的编译。,Bootable工程:,在工程目录下自动增添“default”目录,内有编译生成的各源文件的.O文件以及VxWorks的映象文件。,Downloadable工程:,在工程目录下自动增添“PPC603gun”(该目录的名称取决于建工程时选择的toolchain的名称)目录,内有编译生成的各源文件的.O文件以及该工程的.out文件。,建立Tornado工程环境,小结:无论采用哪种工程类型,其调试思路都是一致的,首先要生成单板上运行的烧结程序(bootrom或VxWorks映象),VxWorks映象要在RAM中运行(下载方式或烧结方式),下载要调试的.o或.out文件。,.,嵌入式操作系统VxWorks,开发实例之二如何制作boot,.,一、Bootable工程:可加载VxWorks映象的BootRom,方法一:DOS环境下命令行编译方式运行批处理文件:calltorvarsmakecleanmakebootrom.hexelftobinhcom.bin,其中:torvars是环境变量的批处理,定义了makefile文件需要的环境变量remCommandlinebuildenvironmentssetWIND_HOST_TYPE=x86-win32setWIND_BASE=d:TornadosetPATH=%WIND_BASE%host%WIND_HOST_TYPE%bin;%PATH%,torvars.bat文件可在Tornado的安装目录Tornadohostx86-win32bin中获得。,制作BOOT,.,方法二:Tornado的bootrom生成工具,Step1:BSP必须放在.Tornadotargetconfig路径下Step2:在Tornado开发环境中,通过在主窗口点击Build|BuildBootROM,制作BOOT,.,二、downloadable工程:基于ROM的VxWorks映象,说明:这里的所说的Boot不是通常所说的引导BOOT,而是一种基于ROM的VxWorka映象。包括:起始引导程序(BootStrapPrograms)和VxWorks映象。,生成方法:建立Bootable工程,在Tornado工作台的Build窗口中,选择VxWorks映象Rules属性页中的VxWorks_rom,编译即可生成基于ROM的未压缩的VxWorks映象的HEX文件,或选中VxWorks_romCompress即可编译生成基于ROM的压缩的VxWorks映象的HEX文件。,制作BOOT,.,BSP中config.h文件中这条定义缺省的BOOT引导参数的语句:#defineDEFAULT_BOOT_LINEmotfcc(0,0)qzch:vxWorksh=92e=u=targetpw=target,motfcc(0,0):FCC口启动,qzch:主机名,VxWorks:从主机加载的VxWorks文件,h=92主机的IP地址,e=目标机的IP地址,u=xxx用户名,pw=xxx密码:若通过网络加载调试时,主机的Ftp服务器和目标机的用户名和密码必须相同,制作BOOT注意,DEFAULT_BOOT_LINE:默认的每次系统启动时的参数,制作BOOT,.,嵌入式操作系统VxWorks,开发实例之三如何调试,.,1、打开设置FTP服务器(如果是Downloadable工程,此步骤不用做),Step1:选择“Security-Users/rights”,弹出对话框。,Step2:创建新的用户名和密码,注意要和config.h中的一致。,Step3:用户名创建完毕后,在UserName一栏选择该用户名,Step4:在HomeDirectory一栏填入要下载的VxWorks映象的绝对路径。,Step5:点击“Done”,调试程序,.,2、单板上电,VxWorks映象会自动从FTP服务器下载到单板RAM上。,3、打开Tornado,配置TargetServer.,Step2:设置Description域(可以任意设置),Step3:设置TargetServer域(可以任意设置);,Step4:在TargetServerProperty域选取BackEnd项,如果使用网口调试,选择wdbrpc,在目标IP名或地址域中给出目标机的IP名;如果用串口调试,选择wdbserial,选择主机相应的串口和波特率,调试程序,Step1:菜单选项“tools-targetserver-configure”,.,Step5:在ChangeProperty域选取CoreFileandSymbols项,选中File项输入相应的文件,同目标机上运行的内核要一致。即bootable工程目录中“default”目录下的VxWorks的映象文件。,Step6:点击Launch,运行目标服务器,调试程序,3、打开Tornado,配置TargetServer.,.,4、下载文件,Bootlable工程,下载的方法:1)“project-download”2)快捷工具,,下载的文件:,Default调试目录下各源文件的.O文件,downloadlable工程,调试目录(例“PPC603gun”)下工程的.out文件或各源文件的.o文件,调试程序,.,5、调试程序,启动debugger:1)“Tool-Debugger”2)快捷工具,,调试函数入口:“Debugger-Run”或F6,弹出,Task一栏填入要调试的函数名。Arguments中填入要调试函数的入口参数。Breakatentrypo复选框选中时,程序会自动在调试程序的第一条语句的地方,调试程序,.,BSP的config.h文件,定义缺省的BOOT引导参数(格式),#defineDEFAULT_BOOT_LINE$dev(0,procnum)host:dirfileh=#e=#b=#g=#u=usrpw=passwdf=#tn=targetnames=scripto=other,$dev-bootdevice,启动的设备类型,必须是已包含的设备。procnum-处理器序号,一般从零开始。host-主机名dir:file-被加载的VxWo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农业物联网精准种植技术集成与创新研究
- 2025年工业互联网平台TEE在设备远程监控中的应用深度报告
- 智能穿戴风险管理制度
- 施工材料供应管理制度
- 厂房内环保设备管理制度
- 制剂室仪器设备管理制度
- 产品贮存及运输管理制度
- 地产公司预决算管理制度
- 星级餐饮前台管理制度
- 微商引流加客户管理制度
- 机械设备安装程序、安装分类、固定方式及安装新技术应用
- 大楼维修改造工程投标方案(完整技术标)
- 取力器的设计毕业设计
- 二年级下学期语文无纸化测试题例
- 《建筑施工安全检查标准》JGJ
- 国际贸易实务案例分析题(附答案)2
- 初二地理会考答题卡模板
- 轨道交通信号基础智慧树知到答案章节测试2023年同济大学
- 妇产科学智慧树知到答案章节测试2023年浙江大学
- 农村公路建设标准
- 2015-2022年深圳职业技术学院高职单招语文/数学/英语笔试参考题库含答案解析
评论
0/150
提交评论