vxworks基础培训解读课件_第1页
vxworks基础培训解读课件_第2页
vxworks基础培训解读课件_第3页
vxworks基础培训解读课件_第4页
vxworks基础培训解读课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Vxworks嵌入式编程基础邓国旭Vxworks嵌入式编程基础邓国旭实时嵌入式系统嵌入式系统:由CPU控制,即自带CPU相对于常见的pc而言,不对用户提供开发环境,用户与系统交互的唯一接口就是系统提供给用户的应用;提供功能通常带有针对性,大多为专用系统;手机,医疗设备,微波炉,mp3……实时嵌入式系统:实时性:任务切换时间、抢占时间、中断等待时间、信号量延迟时间、死锁解脱时间、任务间消息传递延迟、数据报吞吐量小型化、可裁剪:系统资源有限强稳定性:一旦运行不需要人过多干预固化代码:操作系统和应用软件代码固化在嵌入式系统ROM中弱交互性:工作过程不需人干预实时嵌入式系统嵌入式系统:嵌入式系统开发交叉编译:在某一体系结构的宿主机上为另一体系结构的目标板编译可运行的目标代码。即编译与运行不在同一地方。宿主机(host):编写代码和编译目标机(target):调试和执行程序嵌入式系统开发交叉编译:在某一体系结构的宿主机上为另一体系结VxWorksVxWorks:美国风河公司(WindRiverSystem)推出的一种嵌入式实时操作系统。强实时性、微内核设计、可裁剪、可移植、高可靠VxWorks系统功能:WindKernelANSIC/POSIXI/O系统文件系统TCP/IP网络协议栈BSP开发包:提供BSP模块、驱动程序模板和BSP测试工具包WDB(WindDebugAgent):支持交叉调试……VxWorksVxWorks:BSPBSP(BoardSupportPackage)开发嵌入式应用时系统开发商提供的各种驱动支持库VxWorks:OS的驱动程序VxWorks提供的大部分功能模块与硬件无关,为使VxWorks能运行于不同的处理器体系结构上,必须在功能模块与硬件之间加入一层软件,并对这层软件规定标准接口,这层软件即为BSP提供对硬件进行的描述性操作提供对目标板的初始化、中断管理以及一些简单的驱动程序最好的情况下,OS与驱动程序的移植只需要更换相应平台下的BSP支撑库《TornadoBSPDeveloper’sKitforVxWorks》BSPBSP(BoardSupportPackage)VxWorks系统结构VxWorks系统结构Tornado集成开发环境Tornado:基于VxWorks操作系统的嵌入式软件集成开发环境。给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。Tornado包含以下三部分:①运行在宿主机和目标机上的强有力的交叉开发工具和实用程序;文本编辑器GNU和DiabC/C++编译器调试工具:WindShell,Browser,WindView…VxSim系统模拟器:VxWorks提供的在实验与测试环境下仿真VxWorks目标机的程序,无需硬件的支持②运行在目标机上的高性能、可裁剪的实时操作系统VxWorks;

即为编译生成的目标机上可执行代码镜像(image),内含os③连接宿主机和目标机的多种通讯方式,如:以太网,串口线,ICE或ROM仿真器等。Tornado集成开发环境Tornado:使用Tornado创建工程创建工程.exeWorkSpace&WorkProject每一个工程都需要有一个WorkSpace来保存一些相关的环境变量;BootableVsDownable:前者表明建立一个新的VxWorks操作系统,该工程是基于某个BSP生成的镜像,它包含了必须的VxWorks的内核、组件以及BSP,并且应用程序可以静态包含在工程中,也可以静态链接已编译好的应用工程模块。开发者可以根据自己的需求进行适当的配置,添加、删除VxWorks的组件,设置所选组件的运行参数等。后者顾名思义,应用模块可以以静态链接的方式编译至VxWorks镜像工程中,还可以在VxWorks运行之后,通过网络将将应用模块(.out格式)下载到目标板,并与VxWorks镜像进行链接。在单独对某个模块进行调试时,我们常常会用到这种动态链接的方法。使用Tornado创建工程创建工程.exeVxSim的HelloWorld(一)VxSim的HelloWorld(一)VxSim的HelloWorld(二)选择ABSP(板级支持包)在下拉菜单中选择simpc打开文件usrAppInit.c(它的函数usrAppInit是应用的入口点),添加HelloWorld打印语句,保存文件。VxSim的HelloWorld(二)选择ABSP(板级VxSim的HelloWorld(三)VxSim的HelloWorld(三)VxSim的HelloWorld(四)最后:查看新弹出的对话框(VxWorksSimulator),^_^,可以看到输出的HelloWorld

此时,还会弹出了一个VxSimLaunch的界面,这是主机用来连接目标机的。点击OK。如果正确安装Tornado并配置正确的话,此时桌面右下角会出现

的图标(如果出现问题,会出现

的图标),点击它可以看到TargetServer是否正常工作。VxSim的HelloWorld(四)最后:查看新弹出的对话Tornado工具CrossWind:源程序(C或C++以及汇编程序等)的调试工具Browser:可对系统对象(任务、消息队列、信号量等)和存储器使用情况进行观察的浏览器。可以方便地监视用户的目标系统。Browser汇总了应用进程,内存消耗和一个目标内存的映射。通过Browser,用户可以观察信号量、消息队列、内存分配、看门狗计时器、堆栈使用情况、目标CPU使用率、对象模块结构和符号表以及每个任务的详细信息。

WindShell:提供从宿主机到目标机之间的一个命令shell。允许用户调用内存中的应用程序模块或是VxWorks模块中的任何例程。

WindView:非常出色的系统可视诊断和分析工具。可非常容易地观察各任务,中断程序之间的相互作用。

VxSim:快速原型仿真器。可在硬件设备未完成之前,在宿主机上对应用程序进行仿真分析。Tornado工具CrossWind:VxWorks程序设计任务(Task)在VxWorks中,任务是一段独立运行的程序,类似于Linux中的进程。从系统的角度看,任务是竞争系统资源的最小运行单元。任务可以使用或等待CPU、I/O设备及内存空间等系统资源,并独立于其他任务。VxWorks实时内核Wind提供了基本的多任务环境,因此当系统运行多个任务时,从表面上看多个任务正在同时执行,而实际上系统内核是根据某一调度策略让它们交替运行。系统调度器使用任务控制块(TCB)的数据结构来管理任务调度功能。每一个任务都与一个TCB关联。TCB包括了任务的当前状态、优先级、要等待的事件或资源、任务码的起始地址、初始堆栈指针等信息。任务编程:任务创建taskSpawn、任务删除taskDelete、任务控制taskSuspend/taskDelay等WindShell允许用户调用内存中的应用程序模块或是VxWorks模块中的任何例程VxWorks程序设计任务(Task)创建任务在usrAppInit函数中添加函数userMain(),作为自己应用程序的入口函数。编写一个C文件(uesr.c),内容如下:创建任务在usrAppInit函数中添加函数userMain编译代码及运行选择AddFiles,添加uesr.c到工程中:编译并启动:编译代码及运行选择AddFiles,添加uesr.c到工程启动WindShell在Launch工具栏

中选择

,这时候就可以看到shell的界面:输入i命令,回车,,即可以查看到我们起的任务tTick的有关信息:启动WindShell在Launch工具栏WindShell常用命令i:显示所有的任务信息Tt():显示一个任务的函数栈的调用状态Ti():显示一个任务的tcb信息Sp():启动一个任务Ts():挂起一个任务Tr():恢复一个任务Td():删除某个任务memShow:显示系统内存信息checkStack:查看指定或所有任务的堆栈大小和使用率WindShell常用命令i:显示所有的任务信息Tornado中Host与target通信TargetServer以进程的形式(tgtsvr.exe)运行在Windows主机上,而TargetAgent则以VxWorks的一个任务(tWdbTask)运行在目标机上,两者通常使用网络进行通讯,但也可以使用其他通讯方式。TargetServe与TargetAgent间使用WDB(WindDebug)协议进行通信,这就好比一座桥梁,将目标机与主机上的Tornado开发工具联系在一起。Tornado中Host与target通信TargetSe开发板开发嵌入式程序操作系统的制作与下载修改Config.h制作BSP及bootrom制作操作系统配置FTPServer启动超级终端引导和下载操作系统应用程序的编制和调试开发板开发嵌入式程序操作系统的制作与下载操作系统的制作与下载修改Config.hVxWorks的缺省配置参数由tornado\target\config\all目录中的configAll.h决定,如第528行开始通信路径的配置对于某一目标板特定的配置参数,如ads860,使用tornado\target\config下相应目录中的config.h,下面以ads860板为例如果没有相应目录,可定制,如建立8240目录,其文件代码由BSP开发人员编写操作系统的制作与下载修改Config.h操作系统的制作与下载修改Config.hconfig.h首先定义BSP版本,然后includeconfigAll.h缺省下载调试口为10M网口,对应代码为#undef FADS_860T 如改用100M网口下载调试,将该行改为#define FADS_860T操作系统的制作与下载修改Config.h操作系统的制作与下载修改Config.h

10M网口使用cpm(0,0),100M网口使用motfec(0,0)host:后跟VxWorks操作系统在主机的存放路径,h指主机IP地址,e指目标板IP地址,u指用户名,pwd指密码实例:使用10M网口,VxWorks在主机D:\,主机地址,目标板地址,账号及密码均为tornado,其代码为:“cpm(0,0)host:d:/vxWorksh=e=u=tornadopwd=tornado”操作系统的制作与下载修改Config.h操作系统的制作与下载修改Config.h

如采用串口调试,可增加下列代码#undef WDB_COMM_TYPE#define

WDB_COMM_TYPE WDB_COMM_SERIAL#undef WDB_TTY_CHANNEL#define

WDB_TTY_CHANNEL

0

#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

115200

/*defaultbaudrate*/

操作系统的制作与下载修改Config.h操作系统的制作与下载Buildbootrom修改BSP后,应生成对应的bootrom在Tornado中选Build->BuildBootROMBSP可选择ads860Image一般选择bootrom.hex,仿真时选择bootrom_uncmp操作系统的制作与下载Buildbootrom操作系统的制作与下载烧制bootrom目的:将build成功的bootrom烧制到Flash中FADS860板通过配套的ADI卡烧制按照ADI卡相应的8bug程序中的readme,安装ADI卡在DOS方式下键入:mpc8bugxy操作系统的制作与下载烧制bootrom操作系统的制作与下载验证bootrom连接主机与目标板的串口线启动和配置FTPServer(方法后面介绍)选择Tornado2->VxWorksCOM1/COM2,启动超级终端超级终端中选文件->属性->配置,设置正确的目标板波特率目标板上电,检查终端是否能正确回显,显示参数与BSP配置是否一致操作系统的制作与下载验证bootrom操作系统的制作与下载创建操作系统工程选File->NewProject->CreateabootableVxWorksimage在step1键入Name和Location目录,选择Workspace在step2选择相应的BSP(如ads860),仿真选simpc操作系统的制作与下载创建操作系统工程操作系统的制作与下载选择操作系统组件在Workspace窗口的相应Project中,点击VxWorks选择所需组件,击右键,选Include添加,选Exclude删除例如需要使用POSIX消息队列,可选operatingsystemcomponents->POSIXcomponents->POSIXmessagequeue并添加组件选择完毕后,右击Project,选Build‘vxWorks’注意有些组件必须组合使用操作系统的制作与下载选择操作系统组件操作系统的制作与下载FTPServer的配置目标板上电后,bootrom引导初始化,启动TFTP协议,作为Client端与主机通信,此前主机应运行FTPServer点击Tornado2->FTPServer如果目标板使用匿名账号登录,在Security->General中,选择AllowAnonymous在Security->Users/rights中,选择UserName,对于新开账号用NewUser配置;在HomeDirectory中键入操作系统所在目录,然后点击Done操作系统的制作与下载FTPServer的配置操作系统的制作与下载常用TFTP命令TFTP通信建立后,在超级终端上可使用TFTP命令p: 查看BSP预先设置的用户参数c: 修改用户参数@:根据用户参数下载操作系统 操作系统的制作与下载常用TFTP命令应用程序的编制与调试程序Project的制作选File->NewProject->Createdownloadableapplicationmodules在step1键入Name和Location目录,选择Workspace在step2选择相应的toolchain(如PPC860gnu),仿真选SIMNTgnu应用程序的编制与调试程序Project的制作应用程序的编制与调试增删project文件在Workspace窗口下方点击Files,右击相应的ProjectFiles,选择AddFiles,增加所需的.c文件右击单个.c文件,可选择Remove来删除,选择Open来编辑,选择Compile来编译如果编辑新文件,选File->New…,确定文件类型、文件名和存放位置,添加到相应的project中;也可用其它编辑器编辑应用程序的编制与调试增删project文件增删project文件(续)完成.c文件的添加后,右击ProjectFiles,选择Dependencies,自动添加所有的include.h文件,显示在ExternalDependencies中(不显示系统.h文件)注意.h文件的路径增删project文件(续)应用程序的编制与调试路径和宏的加入在Workspace窗口点击Builds,双击xxxgnu,选择C/C++compiler,可编辑所需的编译路径和宏;路径用-I,如-IE:/mydirectory;宏用-D,如-DBIG_ENDIAN;中间无空格不同选项间用空格隔开,不能使用回车键路径用UNIX格式‘/’,不能使用DOS格式‘\’应用程序的编制与调试路径和宏的加入应用程序的编制与调试.o库的加入在xxxgnu窗口中选Macros,在Macros下拉菜单中选PRJ_LIBS,在Value栏键入.o文件及其绝对路径,如e:/mydirectory/my.o,然后点击Add/Set按钮,再点击Apply即可路径同样使用UNIX格式‘/’应用程序的编制与调试.o库的加入应用程序的编制与调试Build应用程序在代码编辑完成后,右击ProjectFiles,选择Build或ReBuildAll,可对Project进行编译、链接,生成.out文件在BuildOutput窗口中,Tornado会显示错误/警告信息,此时修改代码,重新Build,直至出现Done应用程序的编制与调试Build应用程序调试应用程序的步骤连接主机与目标板之间的串口线和网线配置和启动FTPServer配置和启动超级终端目标板上电,下载操作系统配置和启动TargetServer下载应用程序.out文件启动Shell,运行程序启动Debugger调试调试应用程序的步骤应用程序的编制与调试TargetServer的配置和启动选择Tools->TargetServer->Configure…,选择相应的TargetServer,点击New可添加1个新的Configuration,自行定义TargetServer名称(可选),键入目标板IPAddress(必选)在TargetServerProperties下拉菜单中选BackEnd,网口调试时在AvailableBack窗口选wdbrpc,串口调试选wdbserial在TargetServerProperties下拉菜单中选CoreFileandSymbols,选中File,在该栏键入操作系统路径及名称,如e:\vxworks1应用程序的编制与调试TargetServer的配置和启动应用程序的编制与调试TargetServer的配置和启动(续)当程序下载太慢时,可在TargetServerProperties下拉菜单中选MemoryCacheSize,选中Specify,键入字节数,如4096(KByte)配置完毕后,点击OK时保存配置,点击Launch时直接启动TargetServer当TargetServer启动成功后,在Tornado主窗口下拉菜单中选定Target应用程序的编制与调试TargetServer的配置和启动(应用程序的编制与调试下载应用程序右击ProjectFiles,选Download,下载Workspace中的应用程序如果选Unload,撤销下载的应用程序如果只有.out文件,而无project及源代码,在主窗口点击Downloadobjectfileorbootimage,选择相应文件下载在主窗口点击LaunchShell,启动Shell应用程序的编制与调试下载应用程序应用程序的编制与调试常用Shell命令在Shell窗口键入help,可查看外部Shell命令i 查看已运行的所有任务的TCB, tXxxTask为系统任务sp 产生1个任务td 删除1个任务printErrno 根据错

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论