收藏 分销(赏)

VxWorks基础知识PPT学习课件.ppt

上传人:w****g 文档编号:10250872 上传时间:2025-04-30 格式:PPT 页数:63 大小:2.65MB
下载 相关 举报
VxWorks基础知识PPT学习课件.ppt_第1页
第1页 / 共63页
VxWorks基础知识PPT学习课件.ppt_第2页
第2页 / 共63页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,秘密,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,VxWorks,基础知识及开发流程,1,4/30/2025,VxWorks,介绍,关于,BSP,以及映像,Tornado,介绍,开发实例之一,开发实例之二,开发实例之三,映像启动流程,课程大纲,2,4/30/2025,VxWorks,是美国,Wind River System,公司(简称风河 公司,即,WRS,公司)推出的一个实时操作系统。,VxWorks,3,4/30/2025,嵌入式操作系统,VxWorks,Wind,内核,多任务处理,虚拟内存,操作系统模块,I/O,子系统,网络子系统,目标开发工具,VxWorks,基本体系结构,4,4/30/2025,嵌入式操作系统,VxWorks,wind,:,VxWorks,的核心,被称作,wind,,包括多任务调度(采用优先级抢占方式),任务间的同步和进程间通信机制,以及中断处理,看门狗定时器和内存管理机制。,I/O,系统,:,VxWorks,提供了一个快速灵活的与,ANSI C,兼容的,I/O,系统,包括,UNIX,标准的缓冲,I/O,和,POSIX,标准的异步,I/O,。,VxWorks,包括以下驱动程序:网络驱动、管道驱动、,RAM,盘驱动、,SCSI,驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等。,文件系统,:,支持四种文件系统:,dosFs,,,rt11Fs,,,rawFs,和,tapeFs,支持在一个单独的,VxWorks,系统上同时并存几个不同的文件系统。,5,4/30/2025,嵌入式操作系统,VxWorks,实用库,:VxWorks,提供了一个实用例程的扩展集,包括中断处理、看门狗定时器、消息登录、内存分配、字符扫描、线缓冲和环缓冲管理、链表管理和,ANSI C,标准。,虚拟内存,:VxVMI,为带有,MMU,的目标板提供了虚拟内存机制。,VxMP,(,Share-Memory Object,)提供了共享信号量,消息队列和在不同处理器之间的共享内存区域,用于不同,CPU,的通讯与同步。,WBD,协议:目标代理遵循,WBD,(,Wind Debug,)协议,允许目标机与主机上的,Tornado,开发工具相连。,Tornado,目标服务器(,Target Server,)向目标代理发送调试请求。,6,4/30/2025,嵌入式操作系统,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,启动(,Boot ROM,)或其它启动机制。,7,4/30/2025,嵌入式操作系统,VxWorks,BSP,以及映像,介绍,8,4/30/2025,BSP(Borad Support Packet),板级支持包对单板的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、内存地址映射、内存分配等等。每个板级支持包括一个,ROM,启动(,BootROM,)或其它启动机制。,嵌入式操作系统,VxWorks,9,4/30/2025,BSP,在单板软件中的地位:,BSP,硬件,vxWorks,等操作系统,driver,OSS,嵌入式操作系统,VxWorks,10,4/30/2025,最小,BSP,的定义,广义上讲,单板中所有控制,CPU,系统硬件的程序,都属于单板的,BSP,,但为了调试方便和软件的模块化,通常将与单板,最小系统相关的,程序简称为,BSP,,,而将其他程序称为驱动程序。,对于嵌入式系统来说,所谓最小系统就是一个包含,CPU,Bootrom,RAM,系统时钟,网口,串口的计算机运行环境。其中之所以包含串口和网口,主要是因为系统调试的需要,通常网口用于软件调试,而串口用于通过计算机的超级终端来显示单板程序运行结果信息。系统时钟是一个多任务,OS,所必须的资源。因此最小系统,BSP,就包含了,CPU,系统的初始化程序以及网口,串口,系统时钟等设备的驱动程序。,11,4/30/2025,VxWorks,系统中的,BSP,针对某类,CPU,的硬件单板,,vxWorks,通常提供有其,DEMO,板的,BSP,也就是我们所说的最小系统,BSP,。一般来说,我们在硬件系统设计好之后,都会先找到一个与自己系统相近的,DEMO,板,BSP,并以此为基础,开发自己单板的,BSP,。,VxWorks,为了最大限度的支持不同的硬件环境,也提供了一些常用硬件芯片的驱动程序,它们通常是与具体,CPU,无关的设备,如一些,PCI,网口芯片,串口芯片等。这些驱动程序大多实现为,CPU,无关或很容易移植,可以方便的用于其他,CPU,平台。这也是开发驱动程序所应该遵循的原理。另外,我们的最小系统,BSP,往往在默认情况下,使用这些驱动程序。,12,4/30/2025,BSP,位于硬件平台与操作系统之间,类似普通操作系统的,BIOS,用于对上层软件屏蔽各种硬件相关性。,给,VxWorks,提供硬件环境接口。,BSP,主要负责,:,硬件上电初始化,.,支持,VxWorks,访问硬件驱动,.,把硬件相关和无关的软件很好地结合到,VxWorks,。,BSP,不是硬件驱动程序,:,是一种访问硬件的硬件驱动程序,硬件驱动分为通用和,BSP,有关两类。,通用驱动管理可在目标环境间移动的设备,(,如以太网芯片,).,BSP,驱动管理特定目标环境的设备,(,如中断控制器)。,BSP,功能,13,4/30/2025,BSPs,和,VxWorks,关系,14,4/30/2025,BootRom,与,VxWorks,映象,VxWorks,借鉴了传统,PC,操作系统的引导原理,其将整个引导过程分为两个阶段:,BOOTROM,启动,通过,BOOTROM,加载,VxWorks,映象,BOOTROM,相当于,PC,机中的,BIOS,,它完成对加载过程中所需设备的初始化及驱动;然后通过某种可选择的通讯手段(如网口,串口),将,VxWorks,内核映象到内存中,并执行。此处的,VxWorks,映象,就相当于我们,在,PC,机上装的操作系统,如,DOS,Windows,。,BOOTROM,和,VxWorks,使用不同方法来编译生成。,15,4/30/2025,Bootrom,类型说明:,用于可加载,VxWorks,映象的,Bootrom,包含两部分:起始引导程序(,BootStrap Programs,)和,ROM,引导程序(,ROM Boot Programs,)。起始引导程序驻留在,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,格式的映象文件,附表,16,4/30/2025,VxWorks,映象类型说明:,一、可加载的,VxWorks,映象,这是一种运行于,RAM,的,VxWorks,映象。不包含搬移程序,需借助外部程序如,bootRom,才能加载到,RAM,。通过,Ftp,协议从主机加载到目标机中。,ROM/FLASH,BootStartPrograms,ROM,Boot Programs,RAM,VxWorks,Boot Programs,Local_MEM_Local_ADRS,RAM_LOW_ADRS,FREE_RAM_ADRS,RAM_HIGH_ADRS,主机,FTP Server,可加载,VxWorks,映象,附表,17,4/30/2025,VxWorks,映象类型说明:,二、基于,ROM,的,VxWorks,映象,这是一种运行于,RAM,,,但起初存放于,ROM,中的,VxWorks,映象。即该映象需要和搬移程序一起固化在,BOOT,中。该映象可分为,:,压缩的和未压缩的,ROM/FLASH,BootStartPrograms,ROM_base VxWorks images,RAM,VxWorks,Local_MEM_Local_ADRS,RAM_LOW_ADRS,FREE_RAM_ADRS,基于,ROM,的,VxWorks,映象,附表,18,4/30/2025,VxWorks,映象类型说明:,三、驻留,ROM,的,VxWorks,映象,和搬移程序一起固化在,BOOT,中,,仅将,VxWorks,映象的数据段和,BSS,段拷贝到,RAM,中,,映象的代码段仍旧留在,ROM,中,从,ROM,中开始执行,。该映象可分为,:,压缩的和未压缩的。,ROM/FLASH,BootStartPrograms,VxWorks Text,RAM,VxWorks Data+BSS,Local_MEM_Local_ADRS,RAM_LOW_ADRS,FREE_RAM_ADRS,驻留,ROM,的,VxWorks,映象,VxWorks Data+BSS,映象从文件的组织形式上可分为:,Text,段,:,存放的是可执行的代码。,Data,段,:,存放的是已经初始化的全局变量或静态变量;,BSS,段,:,存放的是未初始化的全局变量或静态变量,附表,19,4/30/2025,一个,BSP,最小系统需要知道的知识:,1.CPU,所采用的,endian,模式,2.,时钟配置,3.,串口,4.,网口部分,嵌入式操作系统,VxWorks,一个,BSP,最小系统以外需要知道的知识,1,、,driver,2,、,makefile,3,、,OSS,20,4/30/2025,最小,BSP,的,endian,模式,一般而言,我们是,endian,有两种模式:,big,和,little,。,对,big,模式,以,32bits,中,4,个字节存放而言,低有效字节放在高地址处,对,little,模式,以,32bits,中,4,个字节存放而言,高有效字节放在高地址处,在写,BSP,中,特别是对字节的操作,需要注意这个问题,在,risc,处理器中,,endian,模式的影响,一般是在加载和存储指令中。所以,在系统内存,还是按照正常的顺序来操作(,little,),21,4/30/2025,最小,BSP,系统的时钟配置,一般而言,对,CPU,内核时钟部分部分不需要配置,我们需要改变的是外设的时钟,22,4/30/2025,最小,BSP,系统的串口,一般而言,从程序调试来看,可以不用仿真器来调试。在汇编最开始的地方,就将串口初始化好,通过从串口打印字符。这种方式是最好。,嵌入式操作系统,VxWorks,23,4/30/2025,最小,BSP,系统的网口,该部分所要做的,也就是需要配置,1.,连接中断,2.,在,sysEnd.c,文件的,sysLanPciInit,()文件中配置,END_TBL_ENTRY,结构类型的变量,endDevTbl,。,嵌入式操作系统,VxWorks,24,4/30/2025,BSP,最小系统之外的,DRIVER,对驱动而言,所做的也就是在厂家提供的驱动基础上修改。,现在驱动的编写,虽然都是,C,语言编写,但是采用面向对象的编程思想。将对象在编程语言中组织成一个个的数据结构,然后对数据结构进行操作,25,4/30/2025,BSP,最小系统之外的,makefile,Makefile,完成了对程序的编译控制功能,通过调用,cc,和,ld,,最终生成一个可以执行的应用程序,对,makefile,的使用,需要掌握两点:,1.,掌握,makefile,文件编写的基本规则,2.,熟悉在,Torndao,环境下,也就是在,Tornado,安装目录,/target/h/make,该目录下所有文件的了解,3.BSP,相关的子,makefiles,放在,./h/make,目录。,rules.bsp,包括创建各种,VxWorks image,文件的规则,也用于创建,VxWorks,目标模块的规则。,.,defs.bsp,定义编译和连接过程中的,BSP,控制宏。,./h/make,目录下其他子,makefiles,控制主机和体系结构相关的创建参数。,26,4/30/2025,BSP,最小系统之外的,OSS,该部分在,vxworks,层之上,向应用软件屏蔽了,vxworks,的,API,函数接口和,vxworks,的功能。,在实现形式有两种:,1.,直接对,vxworks,的,API,函数进行封装,2.,在,vxworks,上的基础上实现操作系统的实现的功能,OSS,实现几个基本功能:,1.,进程的调度,2.,时间片的管理,3.,内存管理软件模块,4.,文件系统软件模块,5.,异常和系统监测,27,4/30/2025,嵌入式操作系统,VxWorks,Tornado,简介,28,4/30/2025,Tornado,是,WRS,公司推出的一套实时操作系统开发环境,提供了丰富的调试、仿真环境和工具。,Tornado,29,4/30/2025,开发环境,Tornado,VxWorks,WDB Protocol,Development Host,Target,(Ethernet,serial,netrom,custom),WTX=Wind River Tool eXchange WDB=Wind DeBug,Application,X,text,data,bss,X.c,X.cpp,X.s,Makefile,GNU,X.o,X.out,vxWorks,CrossWind,集成调试器,WindSh,Shell,工具,Browser,浏览器,其他,Tornado,Tools,WDB,Agent,Target,Server,WTX Protocol,Host,Host-Target Communication,30,4/30/2025,开发环境,Tornado,Target Server,和,WTX,协议,:,Target Server,运行在,Host,端,每一个,Target Server,连接一个,Target,。所有的,Host,工具通过,Target Server,与,Target,集中通讯。,Target Server,管理着,Host-Target,通讯的细节,从而简化了,Host,工具。,Host,工具通过,WTX,协议与,Target Server,交互,包括提出请求、获取,Target,的信息。,Target Agent,和,WDB,协议,:,Target Agent,完成,Target Server,传来的请求,并返回结果。,Target Agent,中包含一个压缩版的,UDP/IP,用于支持,RPC,消息协议,即,WDB,协议。,WDB,协议包含了内存处理、断点,/,事件通知服务、虚拟,I/O,支持及任务控制。,31,4/30/2025,VxWorks,Target,以太网,RS232,Host,Tornado,典型的,Tornado,开发配置,32,4/30/2025,嵌入式操作系统,VxWorks,开发实例之一,如何建立工程,33,4/30/2025,开发工具以及资源,1.Tornado,2.0-,2.2,2.VxWorks,5.4-,5.5,相关资源,&Tornado FAQ),name,config,drv,end,sio,config,unsupported,h,lib,src,(,vxWorks,核心的配置及编译的文件),(通用的配置文件),(,Tornado,工程管理工具配置的源文件),(单板,BSP,:代码文件,目标文件 及编译文件),(包含所有,vxWorks,操作系统的头文件及通用编译文件),(由,vxWorks,为不同平台提供的库文件及目标文件),(,vxWorks,提供的部分硬件芯片驱动程序的源代码文件),(,vxWorks,操作系统的一些通用的源代码文件),(,vxWorks,中一些硬件芯片的通用驱动程序源代码文件),(网口驱动),(串口驱动),(,包含一些较古老的硬件,BSP,代码,),Tornado,安装目录下,Target,目录结构,35,4/30/2025,面对事业部提供的单板,BSP,,如何建立,Tornado,工程环境?,36,4/30/2025,建立,Tornado,工程环境,1,、,BSP,可放在任何路径下,与,Tornado,安装目录无关。,注意:,BSP,目录的命名要和,BSP,中的,makefile,中的这条语句,TARGET_DIR=BSPname,设置的一致才可以。,37,4/30/2025,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,文件分别下载调试;,模块调试完成后,将其中的主口函数在,bootable project,中的,usrAppInit(void),调用。,建立,Tornado,工程环境,38,4/30/2025,3,、在工程中新建和添加文件,新建,:选择,“,file-new”,或,ctrl+N,添加,:,project-Add/Include-file,说明,:如果建立,bootable,工程,工程建立后中会自动生成,usrAppInit.c,文件,,应用程序和工程文件的连接是通过将应用程序的入口函数加入到,usrAppInit.c,中的,usrAppInit,()函数来实现的。,void usrAppInit(void),#ifdefUSER_APPL_INIT,USER_APPL_INIT;/*for backwards compatibility*/,#endif,main();/*add application specific code here*/,建立,Tornado,工程环境,39,4/30/2025,4,、例,1,:,Bootable,工程环境,Tornado,自动生成,makefile,文件,并自动修改更新,应用程序的入口函数添加在工程自动生成的,usrAppinit.c,文件中的,usrAppInit(),建立,Tornado,工程环境,40,4/30/2025,4,、例,2,:,Downloadable,工程环境,Tornado,自动生成,makefile,文件,并自动修改更新,建立,Tornado,工程环境,41,4/30/2025,5,、源文件添加完毕后,点击菜单,“,build-build,”,即可实现工程的编译。,Bootable,工程:,在工程目录下自动增添“,default”,目录,内有编译生成的各源文件的,.O,文件以及,VxWorks,的映象文件。,Downloadable,工程:,在工程目录下自动增添“,PPC603gun”(,该目录的名称取决于建工程时选择的,toolchain,的名称,),目录,内有编译生成的各源文件的,.O,文件以及该工程的,.out,文件。,建立,Tornado,工程环境,小结,:无论采用哪种工程类型,其调试思路都是一致的,首先要生成单板上运行的烧结程序(,bootrom,或,VxWorks,映象),,VxWorks,映象要在,RAM,中运行(下载方式或烧结方式),下载要调试的,.o,或,.out,文件。,42,4/30/2025,嵌入式操作系统,VxWorks,开发实例之二,如何制作,boot,43,4/30/2025,一、,Bootable,工程:,可加载,VxWorks,映象的,BootRom,方法一:,DOS,环境下命令行编译方式,运行批处理文件:,call torvars,make clean,make bootrom.hex,elftobin hcom.bin,其中:,torvars,是环境变量的批处理,定义了,makefile,文件需要的环境变量,rem Command line build environments,set WIND_HOST_TYPE=x86-win32,set WIND_BASE=d:Tornado,set PATH=%WIND_BASE%host%WIND_HOST_TYPE%bin;%PATH%,torvars.bat,文件可在,Tornado,的安装目录,Tornadohostx86-win32bin,中获得。,制作,BOOT,44,4/30/2025,方法二:,Tornado,的,bootrom,生成工具,Step1:BSP,必须放在,.Tornadotargetconfig,路径下,Step2:,在,Tornado,开发环境中,通过在主窗口点击,Build|Build Boot ROM,制作,BOOT,45,4/30/2025,二、,downloadable,工程:基于,ROM,的,VxWorks,映象,说明,:,这里的所说的,Boot,不是通常所说的引导,BOOT,,而是一种基于,ROM,的,VxWorka,映象。,包括:起始引导程序(,BootStrap Programs,)和,VxWorks,映象。,生成方法:,建立,Bootable,工程,,在,Tornado,工作台的,Build,窗口中,选择,VxWorks,映象,Rules,属性页中的,VxWorks_rom,,,编译,即可生成基于,ROM,的未压缩的,VxWorks,映象的,HEX,文件,,或选中,VxWorks_romCompress,即可编译生成基于,ROM,的压缩的,VxWorks,映象的,HEX,文件,。,制作,BOOT,46,4/30/2025,BSP,中,config.h,文件中这条,定义缺省的,BOOT,引导参数的,语句,:,#define DEFAULT_BOOT_LINE,motfcc(0,0)qzch:vxWorks h=192.168.1.192 e=192.168.1.2 u=target pw=target,motfcc(0,0),:FCC,口启动,qzch:,主机名,VxWorks:,从主机加载的,VxWorks,文件,h=192.168.1.192,主机的,IP,地址,e=192.168.1.2,目标机的,IP,地址,u=xxx,用户名,,pw=xxx,密码,:,若通过网络加载调试时,主机的,Ftp,服务器和目标机的用户名和密码必须相同,制作,BOOT,注意,DEFAULT_BOOT_LINE,:,默认的,每次系统启动时的参数,制作,BOOT,47,4/30/2025,嵌入式操作系统,VxWorks,开发实例之三,如何调试,48,4/30/2025,1,、打开设置,FTP,服务器(如果是,Downloadable,工程,此步骤不用做),Step1,:,选择,“,Security-Users/rights”,,弹出对话框。,Step2,:,创建新的用户名和密码,注意要和,config.h,中的一致。,Step3,:,用户名创建完毕后,在,UserName,一栏选择该用户名,Step4,:,在,Home Directory,一栏填入要下载的,VxWorks,映象的绝对路径。,Step5,:,点击“,Done”,调试程序,49,4/30/2025,2,、单板上电,,VxWorks,映象会自动从,FTP,服务器下载到单板,RAM,上。,3,、打开,Tornado,配置,Target Server.,Step2,:,设置,Description,域(可以任意设置),Step3,:,设置,Target Server,域(可以任意设置);,Step4,:,在,Target Server Property,域选取,Back End,项,如果使用网口调试,选择,wdbrpc,,在目标,IP,名或地址域中给出目标机的,IP,名,;,如果用串口调试,选择,wdbserial,,选择主机相应的串口和波特率,调试程序,Step1,:,菜单选项,“,tools-target server-configure,”,50,4/30/2025,Step5,:,在,Change Property,域选取,Core File and Symbols,项,选中,File,项输入相应的文件,同目标机上运行的内核要一致。,即,bootable,工程目录中“,default”,目录下的,VxWorks,的映象文件。,Step6,:,点击,Launch,,运行目标服务器,调试程序,3,、打开,Tornado,配置,Target Server.,51,4/30/2025,4,、下载文件,Bootlable,工程,下载的方法:,1,),“,project-download,”,2),快捷工具,,下载的文件,:,Default,调试,目录下各源文件的,.O,文件,downloadlable,工程,调试目录(例“,PPC603gun”,),下工程的,.out,文件或各源文件的,.o,文件,调试程序,52,4/30/2025,5,、调试程序,启动,debugger,:,1,),“,Tool-Debugger,”,2),快捷工具,,调试函数入口,:,“,Debugger-Run,”,或,F6,弹出,Task,一栏填入要调试的函数名。,Arguments,中填入要调试函数的入口参数。,Break at entry po,复选框选中时,程序会自动在调试程序的第一条语句的地方,调试程序,53,4/30/2025,BSP,的,config.h,文件,定义缺省的,BOOT,引导参数(格式),#define DEFAULT_BOOT_LINE$dev(0,procnum)host:dirfile h=#e=#b=#g=#u=usr pw=passwd f=#tn=targetname s=script o=other,$dev,-,boot device,启动的设备类型,必须是已包含的设备,。,procnum,-,处理器序号,一般从零开始。,host,-,主机名,dir:file,-,被加载的,VxWorks,文件所在的完整路径,h,-,主机,IP,e,-,目标板,IP,b,-,背板,IP,,用户可不定义,g,-,网关,用户可不定义,u,-,用户名,pw,-,登录口令,f,-,定义网络加载方式。无此项时缺省值为零,为,FTP,tn,-,目标板名,s,-,启动描述字符串,用户可不定义,o,-,从,SCSI,启动时指明网络接口,依据不同的启动设备类型,其中某些项可无。,附表,54,4/30/2025,BSP,的,makefile,中的主要宏定义,CPU=PPCEC603,TOOL=gnu,TARGET_DIR=HCOM_BSP,TGT_DIR=$(WIND_BASE)/target,ROM_TEXT_ADRS =fff00000,ROM_SIZE =00080000,RAM_HIGH_ADRS =00800000,RAM_LOW_ADRS =00010000,单板,CPU,类型,编译工具,用它来指定,bsp name,指定,target,目录,用于生成,romResident,文件时指定入口,地址,加载,VxWorks,的目标地址,ROM,引导程序代码段的起始位置,或驻留,ROM,引导程序数据段的起始位置,.,ROM,的空间范围(,512k,),附表,55,4/30/2025,说明:,附表,用,Downloadable,工程方式来调试应用程序,也需要同时建立一个对应的,Bootlable,工程,Bootlable,工程以便生成目标板上所谓的,BOOT,程序,即基于,ROM,的,VxWorks,映象的,HEX,文件,Bootlable,工程可提供配置,Target server,所需要的与目标板上运行相同的,VxWorks,映象文件。,56,4/30/2025,嵌入式操作系统,VxWorks,映像启动流程,57,4/30/2025,附表,起始引导程序 和,ROM,引导程序,起始引导程序(,BootStrap Programs,),起始引导程序驻留在,ROM,中,主要包含:,1,)汇编级的硬件初始化程序,romInit.s,,用于,系统的基本初始化,设置一些重要寄存器的初始值,进行存储器的映射,2,)搬移程序,bootInit.c,,将,ROM,引导程序拷贝至,RAM,的高端地址,RAM_HIGH_ADRS,,然后跳转到此处执行,ROM,引导程序。,ROM,引导程序(,ROM Boot Programs,),ROM,引导程序起初存放在,ROM,中,初始化时被拷贝到,RAM,中,主要用于系统的进一步初始化,并配置加载方式,将,VxWorks,映象加载至,RAM,。,58,4/30/2025,附表,例:程序架构(任务与消息),开发实例之一,59,4/30/2025,附表,Bootrom,执行流程,romInit.s:,romInit,设置机器状态字及其它硬件相关寄存器,,关闭中断,禁止程序和数据,CACHE,,初始化内存,并设置堆栈指针,bootInit.c,:,romStart(),将,ROM,中的程序搬移至,RAM,中,bootConfig.c,:,usrInit(),设置,cache,的工作模式,板级硬件初始化,调用,sysHwInit(),usrKernelInit(),KernelInit(),初始化,Win,内核,产生根任务,usrRoot(),bootConfig.c,:,usrRoot(),初始化内存,系统时钟,,I/O,系统,标准输入输出错,异常处理,产生任务,bootCmdLoop,bootConfig.c,:,bootCmdLoop(),调用自动引导程序,autoboot(),,此函数若成功则不返回,bootConfig.c,:,autoboot(),延时,7s,,以默认参数启动,用户按键中断,bootConfig.c,:,bootCmdLoop(),启动命令行用于配置,VxWorks,启动参数,bootConfig.c,:,bootLoad(),加载,VxWorks,映象,并转向它进行重启,等待超时,用户输入,BootStrap,程序在,ROM,中执行,ROM Boot,程序,被搬移到,RAM,中执行,60,4/30/2025,附表,可加载,VxWorks,映象执行流程,sysALib.s,:,sysInit(),锁住中断,关闭,cache,(如果使用了话),初始化处理器的寄存器(包括,C,堆栈指针)至缺省值,开始在,RAM,中运行,VxWorks,usrConfig.c,:,usrInit(),设置,cache,的工作模式,板级硬件初始化,初始化,Win,内核,启动,usrRoot(),usrConfig.c,:,usrRoot(),初始化内存,系统时钟,,I/O,系统,标准输入输出错,异常处理,添加用户应用程序,启动应用程序任务,usrAppInit(),61,4/30/2025,附表,基于,ROM,的,VxWorks,映象执行流程,romInit.s:,romInit(),(a),禁止中断;,(b),保存启动类型;,(c),硬件初始化;,(d),调用,romStart();,bootInit.c:,romStart(),(a),将数据段从,ROM,拷贝到,RAM,,清内存;,(b),将代码段从,ROM,拷贝到,RAM,,有必要的话解压缩;,(c),依据引导类型,调用,usrInit();,BootStrap,程序在,ROM,中执行,usrConfig.c,:,usrInit(),(a),将数据段从,ROM,拷贝到,RAM,,清内存;,(b),将代码段从,ROM,拷贝到,RAM,,有必要的话解压缩;,(c),依据引导类型,调用,usrInit();,开始在,RAM,中运行,VxWorks,usrConfig.c,:,usrRoot(),初始化内存,系统时钟,,I/O,系统,标准输入输出错,异常处理,启动应用程序任务,usrAppInit(),62,4/30/2025,usrKernel.c,usrKernelinit(),usrKernel.c,sysHwinit(),sysLib.c,sysLib.c,usrRoot(),bootConfig.c,usrConfig.c,启动应用程序任务,usrAppInit(),usrAppInit.c,romInit(),romStart(),romInit.s,bootInit.c,usrInit(),bootConfig.c,sysInit(),sysALib.s,usrConfig.c,BootRom,引导流程,Downloadable vxWorks,映像,可加载,VxWorks,映象及其,Bootrom,执行流程,基于,ROM,的,VxWorks,映象执行流程,映象执行流程小结,附表,63,4/30/2025,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服