建立调试环境

建立调试环境

 

Tornado采用支持主机/目标机开发模式。本节以x86系列目标机为例介绍调试环境的建立

 

7.1.1 配置文件config.h

目标机运行的程序包括两部分:引导文件bootrom.sys和操作系统影像文件VxWorks。

引导文件bootrom.sys的主要作用类似于BIOS,一般它存放在一张软盘或目标机硬盘或目

机FLASH盘上,由Vxld或其他程序加载到内存,用于初始化目标机上的包括引导硬件在内

硬件,建立VxWorks运行的环境,从引导设备上加载VxWorks操作系统影像,并将CPU的控

权移交给操作系统。

VxWorks是操作系统的影像文件。它是应用程序和目标代理程序(调试环境的目标机部分

运行的软件平台,一般存放在bootrom.sys所在软盘或目标机硬盘或目标机FLASH盘,或

机硬盘上,由bootrom.sys的引导程序加载到目标机内存。

bootrom.sys和VxWorks这两个可以利用Tornado提供的工具,按照配置文件config.h有关

置自动生成。特定BSP的配置文件config.h在该BSP目录下。如pc486的配置文件是Tornad

o

\target\config\pc486\config.h。

配置文件config.h主要定义了引导行,目标机操作系统包含的主要成分,如软驱、IDE硬

、SCSI设备、网络等设备驱动,文件系统(DOSFS,TFFS,CDROMFS等),调试方式,内

地址等及有关参数。

引导行(boot line)定义了引导设备、引导路径、操作系统文件名、主机/目标机IP地

、子网掩码、FTP用户名和口令等参数。

对于X86平台目标机,引导设备可以是软盘(fd),硬盘(ata或ide),FLASH盘(tffs

,网卡(elt、ene等)等。一般采用通过以太网或通过RS232或RS422标准串口连结进行

试。

在X86平台上,首先确定调试手段,是通过网络还是串口调试?然后按下面的步骤建立调

环境:

 

1 修改配置文件

2 生成bootrom_uncmp引导文件和VxWorks影像文件

3 制作启动软盘

4 配置主机环境

5 用启动软盘启动目标机

6 从主机搭接(attach)到目标机

下面详细介绍。

7.1.2 网络连接

使用以太网连结调试方式,通过网口使用FTP协议从主机下载VxWorks映像。在X86平台上

一般使用启动软盘来启动目标机。首先要确定目标机使用的网卡型号。VxWorks5.4支持

网卡可以参考config.h文件。需要包含相应的INCLUDE_XXX。常用的如下表:

表7.1 VxWorks5.4支持的几种常用网卡

INCLUDE_XXX   网络接口卡   备注

INCLUDE_ENE   Eagle/Novell NE2000接口卡   包括兼容卡,不支持即插即用方

INCLUDE_ELT   3COM EtherLink III接口卡   ? 包括兼容卡,不支持即插即用方

INCLUDE_EL_3C90X_END  3com fast etherLink XL PCI网卡 3Com3c905系列

INCLUDE_FEI   Intel Ether Express PRO100B PCI接口卡

INCLUDE_LN_97X_END   AMD 79C972网卡

 

1 修改config.h

修改config.h最重要的一步是修改引导行。引导文件bootrom.sys根据引导行来确定引导

备、引导路径、操作系统文件,并且引导行存放在固定的位置。操作系统访问引导行来

定网络的配置,系统reboot时也将访问引导行。bootrom.sys和VxWorks将它转换为一个

定的引导参数结构BOOT_PARAMS 。

在config.h中,引导行定义为有特定格式的字符串。BOOT_PARAMS定义在h\bootlib.h中

解释如下:

 

typedef struct            ? /* 引导参数结构BOOT_PARAMS */

  {

  char bootDev [BOOT_DEV_LEN];    /* 引导设备代码 */

  char hostName [BOOT_HOST_LEN];   /* 主机名 */

  char targetName [BOOT_HOST_LEN];  /* 目标机名 */

  char ead [BOOT_TARGET_ADDR_LEN];  /* 目标机以太网地址*/

  char bad [BOOT_TARGET_ADDR_LEN];  /* 底板以太网地址 */

  char had [BOOT_ADDR_LEN];      /* 主机以太网地址 */

  char gad [BOOT_ADDR_LEN];      /* 以太网网关 */

  char bootFile [BOOT_FILE_LEN];   /* 引导文件名 */

  char startupScript [BOOT_FILE_LEN]; /* 启动脚本文件名*/

  char usr [BOOT_USR_LEN];     ? /* 用户名 */

  char passwd [BOOT_PASSWORD_LEN];  /* 口令 */

  char other [BOOT_OTHER_LEN];    /* 留给应用程序使用 */

  int? procNum;            /* 处理器号*/

  int? flags;             /* 配置标示*/

  int? unitNum;            /* 网络设备编号 */

  } BOOT_PARAMS;

 

以ISA 3COM3c509b网卡为例,网卡需要设置为非即插即用方式,中断号为5,IO端口为0x

3

00。主机IP地址为222.1.5.169,目标机IP地址为222.1.5.36。主机名为VxHost,有一FT

P

用户VxMe,口令为isMe。

对应的引导行应为:

“elt(0,0)VxHost:\tornado\target\config\pc486\vxWorks h=222.1.5.169

e=222.1.5.

36 u=VxMe pw=isMe tn=VxTarget”

解释如下:

ene       /* 启动设备名,为ISA3COM3c509网卡,ne2000网卡应为ene */

VxHost /* 主机标名,可以任意填写,不影响启动过程 */

\tornado\target\config\pc486\vxWorks /* 需要从主机加载的路径及映像文件名

*/

 

h=222.1.5.169 /* 主机的IP地址 */

e=222.1.5.36 /* 目标机的IP地址 */

u= VxMe /* 用户名,主机的Ftp服务器必须有相应的同名用户 */

pw= isMe /* 口令,必须与主机的Ftp服务器相应的同名用户的口令相同*/

tn= VxTarget /*目标名,可以任意设置,不影响启动过程*/

 

将下面的一行

#undef? INCLUDE_ELT       /* uninclude 3COM EtherLink III interface

*/

该为:

#define INCLUDE_ELT       /* include 3COM EtherLink III interface */

 

还要修改下面的定义

#define IO_ADRS_ELT   0x240

#define INT_LVL_ELT   0x0b

为:

#define IO_ADRS_ELT   0x300      /* 网卡I/O地址 */

#define INT_LVL_ELT   0x05         ? /* 网卡中断号 */

 

config.h 修改完毕,下一步是生成目标文件bootrom.sys和V  xWorks。

 

2 生成目标文件bootrom.sys和VxWorks

先生成bootrom_uncmp。

在Tornado集成环境中执行菜单命令Build-〉Build Boot ROM…,在弹出的对话框中,左

框中选择BSP,选中pc486,右边框中选择要生成的影像文件,选择bootrom_uncmp,然后

击OK确认。Tornado将生成bootrom_uncmp。

 

再生成VxWorks。

在Tornado集成环境中执行菜单命令Build-〉Standard BSP Builds…。(如果没有该项

请执行菜单命令Tools-〉Options…,在弹出的对话框中,选中Project页,选择Show

Tor

nado 1.0.1 menu items,点击OK确认)。与生成bootrom_uncmp类似,在弹出的对话框中

BSP选择pc486,影像文件,选择VxWorks。然后点击OK确认。Tornado将生成VxWorks。

注意,必要时先进行clean操作

 

3 制作启动软盘

拷贝 Tornado\target\config\pc486\bootrom_uncmp至 Tornado\host\bin下;

准备一张已格式化的空盘插入软驱;

在目录Tornado\host\bin下执行命令

mkboot a: bootrom_uncmp

注意,有时,我们需要改变配置参数,重新生成引导文件,如果软盘已经是可引导的,

么只需更换软盘上的引导文件即可,方法是:

  del a:. (需要键入’y’确认删除)

  vxcopy bootrom_uncmp a:bootrom.sys

 

4 配置主机环境

主机操作系统Win95安装目录下有一文件hosts.sam,向其中加入:

主机IP 主机名

目标机IP 目标机名

启动Tornado组件FTP Server,在WFTPD窗口中选择菜单Security中的User/right...,在

弹出窗口中选择New User...,根据提示信息输入登录用户名和口令,并且要指定下载文

VxWorks所在根目录。可能还需要选取主菜单Logging中Log options、Enable Logging、

G

ets 、Logins 、Commands 、Warnings选项。

 

5 用启动软盘启动目标机

将系统引导软盘插入目标机软驱,加电启动,目标机即通过FTP方式从主机下载VxWorkst

统。

在控制台上可以看到启动信息。如果需要修改,在等待用户配置时,按c键,进行相应修

。(注意:配置信息要与主机配置、Ftp服务器配置一致),修改结束后,按@键重新启

目标机。

 

6 从主机搭接(attach)到目标机

在Tornado集成环境中点取Tools菜单,选取Target Server,选择config...;

在Configure Target Servers窗口中先给目标服务器命名;

在配置目标服务器窗口中的“Target Servers Property”窗口中,选择Back End;在“

A

vailable Back”窗口中选择wdbrpc,在“Target IP/Address”窗口中输入目标机IP(

例为222.1.5.36);

在配置目标服务器窗口中的“Target Servers Property”窗口中,选择Core File

and S

ymbols, 选择File为BSP目标文件所在目录(本例为PC486目录)的VxWorks,并选取为Al

l

Symbols;

在配置目标服务器窗口中的" Target Servers Property"窗口中的其它各项可根据需要

择;

点击Launch按钮,连接主机和目标机,全部出现successed后即可进入应用程序调试;

点击图形按钮中下拉框,选择和主机相连的目标机。即可建立主机目标机连接。

 

这时Shell、Debugger等按钮可用。

7.1.3 串口连接

串口连接一般从启动软盘下载VxWorks映像。其步骤如下:

 

1 修改通用配置文件

在config.h文件中加入以下宏定义:

#define INCLUDE_WDB

#define INCLUDE_WDB_TTY_TEST

#undef WDB_COMM_TYPE

#define WDB_COMM_TYPE WDB_COMM_SERIAL /*定义通信方式为串口联结*/

#define WDB_TTY_CHANNEL 1 /*通道号,目标机串口2*/

#define WDB_TTY_BAUD 9600 /*串口速率,VxWorks最高可设置至38400*/

#define WDB_TTY_DEV_NAME "tyCo/1"

#define CONSOLE_TTY 0

 

引导行为

#define DEFAULT_BOOT_LINE \

"fd=0,0(0,0)hostname:/fd0/vxWorks h=222.1.5.169 e=222.1.5.36 u=VxMe"

 

2 生成目标文件bootrom.sys和VxWorks

同网络连接。

 

3 制作启动软盘

同网络连接。同时要把Tornado\target\config\pc486\VxWorks拷贝至软盘。

 

4 配置主机环境

不需要。

 

5 用启动软盘启动目标机

将系统制作盘插入目标机软驱,加电启动,目标机即由软盘下载VxWorks系统。

 

6 从主机搭接(attach)到目标机

在Tornado集成环境中点取Tools菜单,选取Target Server,选择config...;

在Configure Target Servers窗口中先给目标服务器命名;

在Configure Target Servers窗口中先给目标服务器命名;

在配置目标服务器窗口中的" Target Servers Property"窗口中选择Back End,在"Avai

l

 

able Back"窗口中选择wdbserial,再在"Serial Port"窗口中选择主机与目标机连接所

用的串口号(COM1,COM2),再在"Speed(bps)"窗口中选择主机与目标机间串口速率;

在配置目标服务器窗口中的" Target Servers Property"窗口中选择Core File and

Symb

ols,选择File为BSP目标文件所在目录(本例为PC486目录)的VxWorks,并选取为All

Sy

mbols;

在配置目标服务器窗口中的" Target Servers Property"窗口中的其它各项可根据需要

择;

点击Launch按钮,连接主机和目标机,全部出现successed后即可进入应用程序调试;

点击图形按钮中下拉框,选择和主机相连的目标机。即可建立主机目标机连接。

 

这时Shell、Debugger等按钮可用。?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

天气预报的获取

好久没有写技术文章了,2010年工作太忙,奔波在国内各地,也没什么时间关注一些技术方面的事情,最近有一个项目封闭开发,有些时间来写些琐碎的东西,就当是整理下最近的东西吧,没什么技术价值&#…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python列表与元组)

序列数据结构 1.成员是有序排列的 2.每个元素的位置称为下标或索引 3.通过索引访问序列中的成员 4.Python中的序列数据类型有字符串、列表、元组 "abc" ≠ "bca" 5.Python中的列表和元组,可以存放不同类型的数据 列表使用方括号[ ]表示&a…

apktoolkit apk反编译没有文件_[工具] Mac下一键APK逆向环境

安装apktool和dex2jar,jd-guihomebrew安装: brew install apktool brew install dex2jar JD-GUI去http://jd.benow.ca/下载 dmg可能不支持最新版本的mac用不了,打开就报错反编译流程执行脚本apktool d xxx.apk 注:xxx.apk为你要反编译的apk…

搭建你的嵌入式Vxworks开发环境

3.1 最常见的开发环境配置使用串口和网络连接(host和target之间)。串口连接用于和boot loader之间的通信(如输出信息在host上的显示),网络连接用于传输文件,包括Vxworks system image。默认情况下使用网络连…

python开发应用程序错误_Python 程序员经常犯的 10 个错误

常见错误 #6: 不明白Python在闭包中是如何绑定变量的 看下面这个例子: >>> def create_multipliers(): ... return [lambda x : i * x for i in range(5)] >>> for multiplier in create_multipliers(): ... print multiplier(2) ... 你也许希望获…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python字典和集合)

字典和集合 字典 每个字典元素都是一个键(关键字)/值(关键字对应的取值)对 #创建字典 dic_score{"语文":80,"数学":99} #打印 print(dic_score) print(dic_score["语文"]) #长度 print(dic_score.__len__)#错误写法 print(len(dic_score)) #…

VxWorks动态加载.out文件

//Device.cpp #include "other.h" #ifdef __cplusplus extern "C" { #endif int initDevice(char *arg); #ifdef __cplusplus } #endif int initDevice(char *arg) { printf("%s\n", arg); } 生成的.out文件需对其使用如下命令 chmod.exe arx…

[Project Euler]加入欧拉 Problem 9

A Pythagorean triplet is a set of three natural numbers, a b c, for which, a2 b2 c2 For example, 32 42 9 16 25 52. There exists exactly one Pythagorean triplet for which a b c 1000.Find the product abc. 意思很明白找出这样的a, b, c abc 1000 a …

java 在已有的so基础上封装jni_[干货]再见,Android JNI 封装

1 前言2 JNI 速查表2.1 Java 和 Native 数据类型映射表2.2 引用类型3 JNI 理论基础速览4 JNI 常用场景示例4.1 字符串传递(java->native)4.2 字符串返回(native->java)4.3 数组传递(java->native)4.4 其他复杂对象传递(java->native)4.5 复杂对象返回(native->j…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python函数)

函数(function) :实现某种特定功能的代码块 优点:程序简洁,可重复调用、封装性好、便于共享 类别:系统函数和用户自定义函数 Python内置函数 数学运算函数 print(abs(-1)) print(pow(2,3)) print(round(3.1415926,…

arm B和BL指令浅析

B或BL指令引起处理器转移到“子程序名”处开始执行。两者的不同之处在于BL指令在转移到子 程序执行之前,将其下一条指令的地址拷贝到R14(LR,链接寄存器)。由于BL指令保存了下条指令的地 址,因此使用指令“MOV PC ,LR”即可实现子…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python模块、包和库)

模块(Module) 模块是一个python文件(.py),拥有多个功能相近的函数或类。 便于代码复用,提高编程效率,提高了代码的可维护性。 避免函数名和变量名冲突。 包(Package)…

ARM uboot中的.lds

对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:SECTIONS …

原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)

淡入淡出效果,在日常项目中经常用到,可惜原生JS没有类似的方法,而有时小的页面并不值得引入一个jQuery库,所以就自己写了一个,已封装, 有用得着的朋友, 可以直接使用. 代码中另附有一个设置元素透明度的方法, 是按IE规则(0~100)设置, 若改成标准设置方法(0.00~1.00), 下面使用时…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(Python面向对象的编程)

面向对象的程序设计(OOP) 对象(object): 将属性和方 法封装在一起。 类(class): 具有相同的属性和方法的对象集合。 对象是类的实例 子类继承了父类的全部属性和方法, 并且也有自己特有的属…

python实验四_python实验四

1.简单计算器的设计 请设计简单的“加减乘除”计算器并从键盘上输入数据进行计算 def add(x, y): """相加""" return x y def subtract(x, y): """相减""" return x - y def multiply(x, y): """…

adr和ldr的区别

其实这两个都是伪指令:adr是小范围的地址读取伪指令,ldr是大范围的读取地址伪指令。可实际上adr是将基于PC相对偏移的地址值或基于寄存器相对地址值读取的为指令,而ldr用于加载32为立即数或一个地址到指定的寄存器中。到这儿就会看到其中的区…

收藏:flex/flash

关于Flash Professional CS5的代码提示不显示的几种解决办法一个flash组件开发网站(不过大部分是收费的) Ruochi.com -- Ruochi Group - flash.actionscript.gadgets(图片轮换播放 开源项目)Flash获取html参数的方法AS3 库资源 很多非常有用的类库 转载于…

python3.8怎么打开创建_Python 3.8 新功能大揭秘【新手必学】

最新版本的Python发布了!今年夏天,Python 3.8发布beta版本,在2019年10月14日,第一个正式版本已准备就绪。现在,我们都可以开始使用新功能并从最新改进中受益。 Python 3.8是Python语言的最新版本,它适合用于…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python文件)

路径 绝对路径:从盘符开始的路径 相对路径:从当前目录(工作目录)的路径 获取当前路径 #获取当前工作目录 import os print(os.getcwd())访问模式 文件对象open(文件名,访问模式) f open…