基于VmWare的VxWorks BSP定制及调试环境构建方法.doc_第1页
基于VmWare的VxWorks BSP定制及调试环境构建方法.doc_第2页
基于VmWare的VxWorks BSP定制及调试环境构建方法.doc_第3页
基于VmWare的VxWorks BSP定制及调试环境构建方法.doc_第4页
基于VmWare的VxWorks BSP定制及调试环境构建方法.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

基于 VmWare 的 VxWorks BSP 定制及 调试环境构建方法 编号 版本 V1 0 编 制 研发中心 审 核 批 准 北京瑞斯康达科技发展有限公司北京瑞斯康达科技发展有限公司 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 2 页 共 18 页2 文档修订记录文档修订记录 修订后 版本号 修订人修订时间修订原因及内容 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 3 页 共 18 页3 目目 录录 1概述 4 2模拟目标机 5 3构造 BSP 7 3 1下载和编译网卡驱动 7 3 2修改配置文件 8 3 3编译 BOOTROM和 VXWORKS映像 10 3 4创建引导软盘 12 4建立调试环境 12 4 1配置 FTP 服务器 12 4 2配置TARGET SERVER 14 5编写和调试应用程序 15 附录 软件及驱动下载地址 17 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 4 页 共 18 页4 1概述概述 如图 1 嵌入式系统的调试方法一般为通过 PC 宿主机 上的集成开发环境交叉编译 针对特定电路板 目标机 的程序 然后将程序通过目标板的 JTAG 串口或网口等途径 下载到目标板上运行 因此 为了构造一个嵌入式系统的学习环境 拥有一块包含 CPU 存储器及 I O 电路的目标电路板往往是必要的 虽然许多集成开发环境附带模拟软件 但 仅限于指令集的模拟 均无法模拟物理的目标机硬件平台 因而在其上只能进行应用程序 的象征性模拟开发 但是 并非所有人都能拥有一块物理的电路板 在这种情况下 我们 如何构造一个模拟的开发环境 其学习效果就如同拥有完全真实的电路板一样呢 本文试 图解答此问题 主体内容包括四个方面 利用 VMware 等软件模拟真实的目标机 构建 VMware 虚拟 PC 上 VxWorks BSP 建立 Bootrom 和 OS 映像 修改 Tornado 相关设置 连接宿主机与目标机 建立调试通道 写一个简单的应用程序并下载到目标系统运行 宿主机 目标机 图 1 嵌入式系统的调试 本文工作的最终目标为 1 VxWorks 在 VMware 启动成功并顺利运行 如图 2 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 5 页 共 18 页5 图 2 在 VMware 中运行的 VxWorks 2 可在 Tornado 上针对目标板编译程序并进行调试 如图 3 图 3 与目标机建立调试通道的 Tornado 2模拟目标机模拟目标机 PC 也具有目标机的所有特点 实际上 我们可以把 PC 作为嵌入式系统的目标机 从 而构造如图 4 所示的开发模型 宿主机目标机 图 4 PC 作为目标机 很遗憾 这种方法实际上非常麻烦 同时开动两台 PC 进行调试将使你和你的室友饱 受折磨 因此 我们可以借助 VMware 来在本机上虚拟出另一 PC VMware 的确是天才的作品 在同一 PC 上 利用 VMware 几乎可以安装所有的操作 系统 而且操作系统之间的切换不需要重新启动电脑 VM 的意义是 Virtual Machine 即 虚拟出一个逻辑的电脑 它可以提供基于 Intel CPU 的虚拟 PC 系统环境 包括 CPU 内存 BIOS 硬盘和其他外围硬件设备 下面我们讲解用 VMware 来建立一台虚拟 PC 的步骤 1 下载并安装 VMware 2 使用 VMware 向导建立一个针对 VxWorks 的虚拟机 此步骤中注意在操作系统中选择 other 如图 5 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 6 页 共 18 页6 图 5 选择 Other 操作系统 由于目标机最终通过软盘启动 因此要求你的电脑具有软驱 很遗憾 当年日常使用 的软盘如今成了古董 很少再有电脑配备软驱 因此 我们再来制造一个假冒伪劣产品 虚拟一个软驱 又一个天才的工具软件 RamDiskNT 为我们提供了这一便利 图 6 演示了 用 RamDiskNT 虚拟一个 1 44M 软盘的方法 图 6 虚拟软驱和软盘 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 7 页 共 18 页7 仅仅虚拟一个软驱是不够的 把这个软驱添加到我们建立的虚拟机中才算修成正果 图 7 演示了添加软驱后的虚拟机硬件设置 图 7 包含软驱的虚拟机 3构造构造 BSP 3 1下载和编译网卡驱动下载和编译网卡驱动 VMware 为运行于其上的操作系统提供虚拟网卡支持 该网卡类型即为 AMD 的 PC NET 实际上 在 Tornado 开发包中已经包含了该类型网卡的驱动程序 但经过测试 对 于 VMware 无法正常工作 所以需要从 AMD 的网站下载最新的驱动程序 下载得到的是一个可执行的安装程序 运行该程序将得到一个压缩包和一个帮助文件 按照该帮助的要求 将压缩包直接释放到 Tornado 目录下 如果提示是否允许覆盖文件 则选择允许 此后按如下步骤完成驱动程序的编译和替换 1 打开一个控制台窗口 运行批处理程序 C tornado2 2 host x86 win32 bin torVars bat 该批处理文件用于设置环境变量 其内容为 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 8 页 共 18 页8 rem Command line build environments set WIND HOST TYPE x86 win32 set WIND BASE C Tornado2 2 set PATH WIND BASE host WIND HOST TYPE bin PATH 如果没有设置成功 可以手工设置这些环境变量 2 定位到 C tornado2 2 target src drv end 目录 运行 make CPU PENTIUM tool gnu ln97xend o 3 定位到 C tornado2 2 target lib pentium PENTIUM common 目录 并将上一步生成 的文件 ln97xend o 复制到此目录下 备份此目录下的文件 libdrv a 4 运行命令 arpentium d libdrv a ln97xEnd o 删除 libdrv a 中原有的 ln97xEnd 模块 5 运行命令 arpentium ra iOlicomEnd o libdrv a ln97xEnd o 将我们刚刚创建的新 ln97xEnd 模块添加进去 3 2修改配置文件修改配置文件 我们要修改编译 VxWorks 的配置头文件 Config h 中定义的一些参数 使编译出来的系 统引导程序和 VxWorks 的映象符合我们的要求 同时还要修改 sysLn97xEnd c 这个文件 以使系统的网络功能正常运行 1 定位目录到 C tornado2 2 target config pcPentium 并打开该目录下 Config h 文件 2 查找到定义 DEFAULT BOOT LINE 宏的地方 修改预处理条件 CPU PENTIUM 分支下的定义如下 define DEFAULT BOOT LINE lnPci 0 0 your host name d vxWorks h 193 168 80 169 e 193 168 80 254 u target pw vxworks tn target 其中 lnPci 0 0 指定了使用第 0 个网卡和第 0 个处理器 lnPci 这个标识会因为使用的驱动程 序不同而有所不同 但这里用 lnPci 就可以了 host 指定你的主机的名字 使用 host 就可以 d vxWorks 指定了 VxWorks 映象下载的完整路径 后面会有说明 h 193 168 80 169 是宿主机的 IP 地址 可以根据实际情况修改 e 193 168 80 254 是目标机的 IP 地址 可以根据实际情况修改 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 9 页 共 18 页9 u target 指定了 FTP 服务器的用户名 这个 FTP 就是用来下载 VxWorks 映象的 后面 还会提到 pw target 是用户名对应的口令 tn target 指定目标机的名字 任意指定即可 3 指定网卡驱动程序 首先查找 Network driver options 这段文字 之后你可以看到在该注释后面定义了一 系列的有关网卡驱动的宏定义 注意保证 INCLUDE END 和 INCLUDE LN 97X END 这 两个宏处于定义状态 define 其他的宏都处于未定义状态 undef 即 Network driver options define INCLUDE END Enhanced Network Driver Support undef INCLUDE DEC21X40 END END DEC 21x4x PCI interface undef INCLUDE EL 3C90X END END 3Com Fast EtherLink XL PCI undef INCLUDE ELT 3C509 END END 3Com EtherLink III interface undef INCLUDE ENE END END Eagle Novell NE2000 interface undefINCLUDE FEI END END Intel 8255 7 8 9 PCI interface undefINCLUDE GEI8254X END END Intel 82543 82544 PCI interface define INCLUDE LN 97X END END AMD 79C97x PCI interface undef INCLUDE ULTRA END END SMC Elite16 Ultra interface undef INCLUDE BSD BSD Netif Driver Support Deprecated undef INCLUDE EEX BSD Intel EtherExpress interface undef INCLUDE EEX32 BSD Intel EtherExpress flash 32 undef INCLUDE ELC BSD SMC Elite16 interface undef INCLUDE ESMC BSD SMC 91c9x Ethernet interface 4 包含 PC CONSOLE 缺省情况下 VxWorks 系统是不接受外部输入设备 如键盘 的输入 也不向外部输 出设备 如显示器 输出数据 为了便于调试 我们必须改变它的这种缺省状态 我们查 找定位宏 INCLUDE PC CONSOLE 然后保证其处于定义状态 define 即可 即 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 10 页 共 18 页10 define INCLUDE PC CONSOLE PC keyboard and VGA console ifdef INCLUDE PC CONSOLE define PC CONSOLE 0 console number define N VIRTUAL CONSOLES 2 shell application endif INCLUDE PC CONSOLE 5 修改 sysLn97xEnd c 打开 C tornado2 2 target config pcPentium 目录下的 sysLn97xEnd c 文件 先定位到 memory mapped IO base 这段文字 然后将其前面的参数由 pciRsrc endUnit bar 1 修改 为 NONE 保存即可 即 sprintf paramStr paramTemplate endUnit END unit number NONE memory mapped IO base pciRsrc endUnit bar 0 IO address space base PCI2DRAM BASE ADRS host PCI mem base pciRsrc endUnit irqvec IRQ vector pciRsrc endUnit irq IRQ number LN97X CSR3 VALUE csr3 register value LN97X OFFS VALUE offset LN97X RSVD FLAGS flags reserved 3 3编译编译 Bootrom 和和 VxWorks 映像映像 编译编译 Bootrom 打开 Tornado 开发工具 在 Build 菜单下选择 Build Boot ROM 选择 BSP 为 pcPentium image 类型为 bootrom 工具为 gnu 如图 8 点击 OK Bootrom 就会编译 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 11 页 共 18 页11 图 8 编译 bootrom 编译编译 VxWorks 映像映像 编译生成 bootrom 后 还要创建一个 VxWorks 映象 image 也就是 VxWorks 操作 系统本身的代码 步骤为 1 创建一个 bootable VxWorks image 的工程 BSP 选择 pcPentium 图 9 建立基于 pcPentium BSP 的 VxWorks 映像 2 选择需要的 VxWorks 组件 如图 10 在这个例子中我们需要包括两个重要的组件 Telnet server 和 Target shell 前者使我们可以通过 Telnet 协议登录到 VxWorks 操作系统中 后者则可以让我们通过命令 行控制 VxWorks 系统 另外 需要把所有 C 相关的选项都包含进去 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 12 页 共 18 页12 图 10 包括 Telnet server 和 Target shell 组件 完成选择后 即可开始编译程序 到此我们已经生成了 VxWorks 的系统引导程序和运 行时的代码映象 这里还要提醒读者 在你每次修改完系统的配置信息 如 config h 后 都要重新创建一个工程来编译 VxWorks 映象 以免出现代码不一致的问题 将生成的名为 vxworks 的文件 在你创建的工程的目录下 复制到 D VxWorks 目录下 这个路径是由 上面我们所设置的 DEFAULT BOOT LINE 宏中的路径参数决定的 必须保持二者一致 3 4创建引导软盘创建引导软盘 现在开始制作 VxWorks 系统引导磁盘 用于引导装载 VxWorks 运行映象 定位目录 到 C tornado2 2 target config pcPentium 插入您已经格式化好的软盘 然后运行 mkboot a bootrom 该命令将在软盘上建立 VxWorks 系统引导分区 并将引导程序复制到软盘上 4建立调试环境建立调试环境 4 1配置配置 FTP 服务器服务器 这里的 FTP 服务器用于在系统成功引导后 下载 VxWorks 的运行时映象 我们这里 使用 Tornado 开发环境自带的 FTP 服务器 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 13 页 共 18 页13 如图 11 打开 Tornado FTP Server 选择 Security 菜单下的 Users Rights 子菜单 创建 User Name 为 target 修改 Home Directory 为 D VxWorks 目录 此路径由上面 的 DEFAULT BOOT LINE 参数决定 同时修改口令为 target 最后点击 Done 按钮 完成修改 图 11 配置 FTP 服务器 为了便于调试 我们还要打开 FTP Server 的日志功能 选择 Logging 菜单下的 Logging Options 子菜单 其中除了 Winsock Calls 外 让其他选项全都处于开启状 态 保持 FTP Server 窗口处于打开状态 这样 FTP 服务器就处于运行状态 虚拟机从软盘启动 接下来会下载服务器 D vxworks 映像 服务器的 FTP 会有相关的 log 如图 12 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 14 页 共 18 页14 图 12 FTP 服务器log 4 2配置配置 target server 如图 13 打开您的 Tornado 开发环境 选择 Tools Target Server Configure 菜单 在 Description 中任意填写一个名字 这里是 net00 在 Available Back 中选择 wdbrpc 并在下面的 IP 地址框中填写目标机的 IP 地址 这里是 192 168 80 254 由 DEFAULT BOOT LINE 参数决定 将 Target Server Properties 下拉框更改至 Core File and Symbols 并在 File Path 一项中选择您的映象的完整路径 这里是 D VxWorks 由 DEFAULT BOOT LINE 参数决定 基于 VmWare 的 VxWorks BSP 定制及调试环境构建方 法 第 15 页 共 18 页15 图 13 配置 Target Server 完成以上两项配置 如果目标机已经启动 点击 Launch 按钮 就可以启动 Target Server 了 再回到 Tornado 开发环境 在工具条上的 Target Server 下拉框列表中选择 192 168 80 169 host 这时您会发现工具条中一些原先处于 禁用 状态的工具按钮 现在

温馨提示

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

评论

0/150

提交评论