




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1安装22调整23vxWorks 简介23.1目录树23.2工具包33.3交叉编译工具链33.4BSP33.5project43.6Image44编译框架44.1编译组成44.1.1Mject54.2编译过程54.2.1生成.o文件54.2.2生成partialImage.o文件64.2.3生成vxworks image65启动调试71 安装Vxworks 有两张安装盘,安装有以下步骤:1) 安装tornado 2.2.1使用第一张盘,注意安装时必须保证当前没有安装过tornado,如果安装过必须从注册表中清空所有的tornado;选择“Manual License”,即License手动安装2) 安装BSP/Drivers第一张盘和第二张盘都用了,不知什么东西,也不懂3) 安装License复制license.dat文件到某个位置,然后设置“系统环境变量”,指向这个文件license.dat,注意必须是“系统环境变量”,不能是“用户环境变量”这就是手动安装License 环节。安装完成,tornada 被安装到D:Tornada2.22 调整本次任务是完成vxworks 环境下ppc 85xx系列的SDK发布环境,因此需要将之前准备好的ppc 85xx环境复制过来。当时直接将以前开发人员的target、host目录直接复制过来覆盖即可,注意备份。3 vxWorks 简介3.1 目录树下图为目录树结构,目前我们仅关注的是host、target两个;如果获取帮助可以直接查看docs中的books.html即可。3.2 工具包编译vxworks 时使用gnu工具,包括make、grep等等,这些工具都是专门编译好的windows 程序,具体位置在host/x86-win32/bin/目录下,因此在使用脚本编译时必须将该目录包含到path环境变量中。3.3 交叉编译工具链交叉编译工具链包括编译器、头文件、库文件。1) 编译器gcc编译器位置在hostgnu,当前使用gcc作为编译器vxworks 提供的diab编译器,位置在hostdiab2) 头文件可以理解为Linux 下的libc库头文件,此为vxworks头文件,位置在target/h,注意,此目录下不仅在C语言头文件,也包含vxworks的编译框架makefile头文件3) 库文件此为vxworks库文件,位置在target/lib3.4 BSP即板级支持包,位置在target/config/目录下,基本上每个目录为一个BSP,每个硬件类型都有一个BSP对应,特例如下:目录comps,为所有BSP的基本模块描述文件目录all,所有BSP的公共部分,当前放置在xvfi8548目录下了,由于xvfi8548的BSP中Makefile如此写,因此没有更改all的位置。3.5 project位置在target/proj/目录下,对应使用tronado集成环境下的工程,创建一个工程即生成一个目录,当前使用的工程为xvfi8548。3.6 Imagevxworks image分两种:bootrom,即引导器,用于加载和启动vxworksimage,bootrom由BSP编译获得,这个东西目前是通过烧录器烧录到flash上,相当麻烦;希望可以使用uboot来代替。vxworks,即vxworks主程序,相当于Linux内核加root文件系统,由BSP外加启动程序实现。由target/proj/xvfi854/目录下编译获得。4 编译框架vxworks编译使用gnu make工具,工程之间互相独立,BSP也互相独立。目前需要编译的东西就是bootrom和vxworks两个。下面以编译vxworks为例详细介绍整个编译过程。4.1 编译组成当前工程下的Makefile和target/h/make 目录组成,在编译之前务必要设置环境变量,这些环境变量有:WIND_BASE此为vxworks安装的主目录,也即host、target目录的上一层目录WIND_HOST_TYPE即当前系统的架构,均为x86-win32PATH主要是添加工具包路径和编译工具链路径设置好环境变量后,在需要编译的工程(或者BSP)目录下执行make即可,比如当前的vxworks工程在target/proj/xvfi8548/目录下,直接到该目录下make 即可。vxworks的编译组成相当复杂,实在是讨厌至极啊。4.1.1 Makefile工程的Makefile做了如下的事情:1) 定义需要编译的.o文件集合,以及这些.o文件的编译方式,某些.o文件对应的.c文件来自于BSP,某些来自当前目录2) 包含一堆其他的makefile,其中最重要的是两个,ject和ject3) 定义编译参数CFLAGS,注意在PPC环境下务必要使用-mstrict-align确保对齐访问4) 定义链接参数LIBS,链接其他外部模块,这里包括ezdriver的模块和SDK模块注意这个Makefile没有指定default要做什么,这个default 目标在ject中定义4.1.2 ject顾名思义,该文件主要是定义变量。定义了default目标,它依赖于exe条件,注意,这个default是整个Makefile的第一个目标,所以make 命令会以它做为编译的目标。这个exe又在ject中定义。还要注意其中的CFG_GEN变量,它用来产生依赖关系,但由于我们不会在vxworks 上做多少二次开发,不需要生成什么依赖,全部重新编译即可,因此后续可以看到将这个生成依赖的命令去年了。同时这个文件包含了一系列的makefile文件,以下详述:1) defs.link定义link(链接)时的一些变量2) defs.x86-win32定义一堆gnu工具,包括RM、CP等等3) defs.vxworks定义POSTLINK_MODULES,包括生成ctdt.o这个文件,该文件以后在链接vxworks image时会用到4) make.ppc85xxgnu定义编译工具链4.1.3 ject顾名思义,该文件主要定义编译规则。终于找到exe目标的规则了,它依赖于$(default_rule),这个default_rule在工程的Makefile中就已经定义了,为vxWorks。该文件包含了rules.vxWorks,其中定义了vxWorks的编译规则,它依赖于partialImage.o和POSTLINK_MODULES。而其中的partialImage.o 就是Makefile中定义的.o文件集合聚合生成的。4.2 编译过程4.2.1 生成.o文件.o文件集合由Makefile定义,包含sysALib.o sysLib.o usrAppInit.o linkSyms.o npclib.o mmuE500LibExt.o i2clib.o bspDebug.o motTsecEnd.o usrprjConfig.o,注意这些文件对应的源文件有些在当前工程下有些在BSP下。4.2.2 生成partialImage.o文件该文件由如下文件生成:1) 4.2.1编译生成的所有.o文件2) version.o文件,其源文件位于target/config/comps/src目录下,版本号文件3) CPU专用库文件,当前为target/lib/libPPC85XXgnuvx.a4) 所有外部库文件,包括ezdriver编译的.a和SDK编译的.a文件注意此处是链接过程,但链接时如果某函数没有被调用则不会链接进去。4.2.3 生成vxworks image该文件由如下文件生成:1) 4.2.2生成的partialImage.o文件2) ctdt.o 文件,该文件的源文件ctdt.c是由partialImage.o生成的,内容相当简单,不知道有什么用处3) symTbl.o文件,该文件的源文件symTbl.c是由partialImage.o生成的,其中包含了所有的导出symbol,包含函数和变量,某个函数是否被编译进vxworks image可以直接查看该文件4) dataSegPad.o,源文件位置target/config/comps/src/,代码段保护文件。5启动调试vxworks的应用程序均在usrAppInit.c 文件usrAppInit函数中启动,如果需要vxworks启动时执行自定义的任务则需要在此函数中嵌入代码。目前调试环境是在vxworks shell中,为确保SDK和ezdriver的库文件均编译进入,在usrAppInit函数中调用AHE_root函数,但不是启动时调用,是永远不可能到达的分支中调用。l 波特率目前vxworks和bootrom使用的是9600的波特率,和uboot以及Linux不一样(115200),这个可以在configAll.h中修改。l bootrombootrom 修改启动参数无效,当前的bootrom 写死了ftp server为6,本机地址为1,ftp用户名、密码均为w,如果要修改则必须重新刷bootrom,这个问题可以通过修改bootrom来解决,查看文件bootconfig.c,函数bootcmdloop在处理命令c时,会将用户输入的配置调用函数sysNvRamSet刷新入内存,但目前会失败,sysNvRamSet函数有太多的实现地方,估计正好编译了某个不支持内存写的函数。l 文件操作vxworks没有使用文件系统,但可以打开和关闭文件,在代码中使用fopen时,vxworks会从FTP server上下载一个文件,unlink时会在FTP server上删除一个文件。l NP启动NP启动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025西安航天发动机有限公司校园招聘启动笔试历年参考题库附带答案详解
- 2025航天新气象科技有限公司招聘1人笔试历年参考题库附带答案详解
- 2025福建莆田市正美文旅投资有限公司招聘3人(四)笔试历年参考题库附带答案详解
- 2025福建福州平潭综合实验区人才发展集团有限公司第二十六批劳务外包招聘4人笔试历年参考题库附带答案详解
- 2025福建省大数据集团平潭有限公司招聘3人笔试历年参考题库附带答案详解
- 2025甘肃兰州能源投资集团有限公司招聘笔试历年参考题库附带答案详解
- 2025浙江温州市瓯飞新型建材有限公司招聘10人笔试历年参考题库附带答案详解
- 2025江苏盐城市滨海县阳光城市公交有限公司招聘拟聘用人员笔试历年参考题库附带答案详解
- 2025年淮南大通区某单位招聘劳务外包人员4人笔试历年参考题库附带答案详解
- 2025四川绵阳市长虹民生物流股份有限公司招聘软件开发工程师岗位1人笔试历年参考题库附带答案详解
- DZ∕T 0248-2014 岩石地球化学测量技术规程(正式版)
- 护理文书书写规范 (15)课件
- 二十四节气农事活动
- 食物中毒的心理援助与危机干预
- 2022星闪无线短距通信技术(SparkLink 1.0)安全白皮书网络安全
- 卫生公共基础知识考试大纲
- 小学数学六年级上册第五单元课件
- 《电子凭证会计数据标准-全面数字化的电子发票(试行版)》指南
- 湖南土建中级职称考试复习总结
- 混合痔痔的护理查房
- 大学物理实验长测量
评论
0/150
提交评论