Tornado2.2-vxworks5.5仿真测试和调试指南

 

集成的Vxworks目标仿真器—VxSim,它提供了与真实目标机一致的调试和仿真运行环境,允许开发者可以在没有BSP、操作系统配置以及目标机硬件设备的情况下进行开发和调试。

VxSim对软件开发者的意义,主要是在嵌入式系统开发中软件的开发通常受到硬件开发进度的制约,由于软件开发必须滞后于硬件的开发,影响了产品的研发进度,VxSim在一定程度上解决了这个问题:使得用户可以在工程开发初期,在硬件环境不具备的情况下,可以利用Tornado进行与硬件无关模块的设计。

下面以简单的PC机仿真为目标机,进行简单的开发和调试过程,主要以图代替文本描述,对于初步的入门者也许提供一些帮助。

1、创建一个工程

2、创建一个Bootable VxWorks Image

 

3、选择一个BSP包

4、生成工程

5、生成的工程目录

6、编写一个main.c程序

#include <stdio.h>

 

int WinMain(void)

{

int nCount = 1234;

printf("hello world!\n");

printf("This is a demo program!\n");

}


7、添加main.c程序(点击工程右键即可)

8、添加main.c后的工程

9、在usrAppInit.c做如下修改

/* usrAppInit.c - stub application initialization routine */

/* Copyright 1984-1998 Wind River Systems, Inc. */

/*
modification history
--------------------
01a,02jun98,ms   written
*/

/*
DESCRIPTION
Initialize user application code.
*/ 

/******************************************************************************
*
* usrAppInit - initialize the users application
*/ 

void usrAppInit (void)
    {
#ifdef	USER_APPL_INIT
	USER_APPL_INIT;		/* for backwards compatibility */
#endif
	WinMain();
    /* add application specific code here */
    }

10、依赖性设置(点击工程右键即可)

11、编译全部(点击工程右键即可)

vxrm *.o *.rpo ctdt.c symTbl.c vxWorks* *.out *.pl

vxrm ..\prjComps.h ..\prjParams.h ..\prjConfig.c ..\linkSyms.c

vxrm ..\libs.nm ..\libs.size

wtxtcl C:\Tornado2.2\host\src\hutils\configGen.tcl ..\demo.wpj

ccsimpc -c -g -mpentium -ansi -fno-builtin -fno-defer-pop -I.. -IC:\Tornado2.2\target\conf

ig\simpc -IC:\Tornado2.2\target\h -IC:\Tornado2.2\target\config\comps\src -IC:\Tornado2.2\

target\src\drv -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -DPRJ_BUILD   C:\Tornado2.2\target

\config\simpc\sysLib.c -o sysLib.o

ccsimpc -g -mpentium -ansi -fno-builtin -fno-defer-pop -I.. -IC:\Tornado2.2\target\config\

simpc -IC:\Tornado2.2\target\h -IC:\Tornado2.2\target\config\comps\src -IC:\Tornado2.2\tar

get\src\drv -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -DPRJ_BUILD  -c ..\usrAppInit.c

ccsimpc -c -g -mpentium -ansi -fno-builtin -fno-defer-pop -I.. -IC:\Tornado2.2\target\conf

ig\simpc -IC:\Tornado2.2\target\h -IC:\Tornado2.2\target\config\comps\src -IC:\Tornado2.2\

target\src\drv -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -DPRJ_BUILD   ..\prjConfig.c -o pr

jConfig.o

ccsimpc -c -g -mpentium -ansi -fno-builtin -fno-defer-pop -I.. -IC:\Tornado2.2\target\conf

ig\simpc -IC:\Tornado2.2\target\h -IC:\Tornado2.2\target\config\comps\src -IC:\Tornado2.2\

target\src\drv -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -DPRJ_BUILD   ..\linkSyms.c -o lin

kSyms.o

ccsimpc -g -mpentium -ansi -fno-builtin -fno-defer-pop -I.. -IC:\Tornado2.2\target\config\

simpc -IC:\Tornado2.2\target\h -IC:\Tornado2.2\target\config\comps\src -IC:\Tornado2.2\tar

get\src\drv -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -DPRJ_BUILD  -c ..\main.c

vxrm ..\prjObjs.lst

Generating ..\prjObjs.lst...

ccsimpc -g -mpentium -ansi -fno-builtin -fno-defer-pop -I.. -IC:\Tornado2.2\target\config\

simpc -IC:\Tornado2.2\target\h -IC:\Tornado2.2\target\config\comps\src -IC:\Tornado2.2\tar

get\src\drv -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -DPRJ_BUILD  -c C:\Tornado2.2\target\

config\comps\src\version.c

ccsimpc -r -nostdlib -Wl,@..\prjObjs.lst  \

       version.o -Wl,--start-group  \

       -LC:\Tornado2.2\target\lib\simpc\SIMNT\gnu -LC:\Tornado2.2\target\lib\simpc\SIMNT\common 

C:\Tornado2.2\target\config\simpc\simpcDrv.a    -lcplus  -lgnucplus  -lvxcom  -lvxdcom  -l

arch  -lcommoncc  -ldrv  -lgcc  -lnet  -los  -lrpc  -lwdb  -lwind  -lwindview C:\Tornado2.

2\target\lib\libSIMNTgnuvx.a -Wl,--end-group  -o partialImage.o

nmsimpc -g partialImage.o @..\prjObjs.lst | wtxtcl C:\Tornado2.2\host\src\hutils\munch.tcl

 -c simpc > ctdt.c

ccsimpc -c -fdollars-in-identifiers -g -mpentium -ansi -fno-builtin -fno-defer-pop -I.. -I

C:\Tornado2.2\target\config\simpc -IC:\Tornado2.2\target\h -IC:\Tornado2.2\target\config\c

omps\src -IC:\Tornado2.2\target\src\drv -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -DPRJ_BUI

LD  ctdt.c -o ctdt.o

ccsimpc -g -mpentium -ansi -fno-builtin -fno-defer-pop -I.. -IC:\Tornado2.2\target\config\

simpc -IC:\Tornado2.2\target\h -IC:\Tornado2.2\target\config\comps\src -IC:\Tornado2.2\tar

get\src\drv -DCPU=SIMNT -DTOOL_FAMILY=gnu -DTOOL=gnu -DPRJ_BUILD  -c C:\Tornado2.2\target\

config\comps\src\dataSegPad.c

ldsimpc --subsystem=windows -e _WinMainCRTStartup C:\Tornado2.2\host\x86-win32\i386-pc-min

gw32\lib\crt1.o \

       dataSegPad.o partialImage.o ctdt.o \

       -T C:\Tornado2.2\target\h\tool\gnu\ldscripts\link.SIMNT -o vxWorks

wtxtcl C:\Tornado2.2\host\x86-win32\bin\simpcToExe.tcl vxWorks

echo -v   vxWorks

-v vxWorks

 

Done.

 

12、打开VxSim Lauch

13、下载对象文件main.o,这样我们可以调试main.c所有函数了

14、在main.c设置断点第6行

15、运行程序(run),Task以WinMain函数作为起点开始

16、运行程序后,程序指针指向WinMain函数开始处

17、让程序指针运行如图处,我们看看watch窗口和VxSim界面上的内容

a.变量窗口

b.Vxsim内容

18、Shell程序使用

A、Shell帮助

-> help

help                        Print this list

h         [n]               Print (or set) shell history

i         [task]            Summary of tasks' TCBs

ti        task              Complete info on TCB for task

sp        adr,args...       Spawn a task, pri=100, opt=0, stk=20000

sps       adr,args...       Spawn a task, pri=100, opt=0, stk=20000

                            and leave it suspended

td        task              Delete a task

ts        task              Suspend a task

tr        task              Resume a task

tw        task              Print info about the object a task is pending on

w                           Summary of tasks' pending information

d         [adr[,nunits[,width]]] Display memory

m         adr[,width]       Modify memory

mRegs     [reg[,task]]      Modify a task's registers interactively

version                     Print VxWorks version info, and boot line

 

Type <CR> to continue, Q<CR> to stop:

 

b                               Display breakpoints

b         addr[,task[,count]]   Set breakpoint

bd        addr[,task]           Delete breakpoint

bdall     [task]                Delete all breakpoints

c         [task[,addr[,addr1]]] Continue from breakpoint

s         [task[,addr[,addr1]]] Single step

l         [adr[,nInst]]         List disassembled memory

tt        [task]                Do stack trace on task

bh        addr[,access[,task[,count]]] Set hardware breakpoint

             access:     0 - instruction        1 - write 1 byte

                    3 - read/write 1 byte      5 - write 2 bytes

                    7 - read/write 2 bytes     d - write 4 bytes

                    f - read/write 4 bytes

sysSuspend                      Suspend the system

sysResume                       Resume the system

 

Type <CR> to continue, Q<CR> to stop:

 

devs                        List devices

cd        "path"            Set current working path

pwd                         Print working path

ls        ["path"[,long]]   List contents of directory

ld        [syms[,noAbort][,"name"]] Load stdin, or file, into memory

                                    (syms = add symbols to table:

                                    -1 = none, 0 = globals, 1 = all)

lkup      ["substr"]        List symbols in system symbol table

lkAddr    address           List symbol table entries near address

printErrno  value           Print the name of a status value

period    secs,adr,args...  Spawn task to call function periodically

repeat    n,adr,args...     Spawn task to call function n times (0=forever)

 

NOTE:  Arguments specifying 'task' can be either task ID or name.

value = 0 = 0x0

->

B、查看目录

-> ls

 驱动器 C 中的卷没有标签。

 卷的序列号是 782B-C07C

 

 C:\vxworks_demo 的目录

 

[.]            [..]           [default]      demo.wpj       demo.wsp

linkSyms.c     main.c         Makefile       prjComps.h     prjConfig.c

prjObjs.lst    prjParams.h    usrAppInit.c  

              10 个文件         52,850 字节

               3 个目录 34,592,718,848 可用字节

value = 0 = 0x0

->

 

C、执行函数WinMain

-> WinMain

hello world!

This is a demo program!

value = 24 = 0x18 = __major_os_version__ + 0x14

->

 

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Win10 Tornado2.2替换是指将Windows 10系统中的原有版本升级为Tornado2.2版本的操作。Tornado是一款流行的开源Web框架,使用Python语言编写,提供高效的异步编程支持。升级到Tornado2.2版本可以获得更多的功能和性能优化。 首先,升级到Tornado2.2版本可以提高系统的运行效率和响应速度。Tornado2.2引入了更多的异步编程特性,可以更有效地处理并行请求和高负载情况。这意味着系统可以更快地响应用户的请求,提供更好的用户体验。 其次,Tornado2.2还添加了一些新的功能,例如支持WebSocket协议和HTTP/2协议等。WebSocket协议可以实现服务器和客户端之间的实时双向通信,为开发实时应用和聊天系统提供了更好的支持。而HTTP/2协议可以提高网页加载速度和数据传输效率,提供更流畅的浏览体验。 另外,Tornado2.2版本还修复了一些之前版本的bug,提升了系统的稳定性和安全性。这对于用户来说非常重要,可以减少各类问题和漏洞的出现,保护用户的信息和数据的安全。 当然,在进行Win10 Tornado2.2替换时,需要注意一些要点。首先,要确保系统和软件的兼容性,尽量避免出现软件冲突或不兼容的情况。其次,要备份重要的数据和文件,以防替换过程中出现意外情况导致数据丢失。最后,要跟进Tornado的更新和官方文档,及时了解新版本带来的改变和问题的解决方法。 总的来说,Win10 Tornado2.2替换可以提升系统性能,增加新功能,并提高系统的稳定性和安全性。但在进行替换之前,需要做好准备工作并注意一些要点,以确保顺利完成替换过程。 ### 回答2: Win10 Tornado2.2替换是指将Windows 10操作系统的Tornado版本升级到2.2版本。Tornado是一款开源的Python Web框架,用于构建高性能、可伸缩的Web应用程序。 替换Win10 Tornado2.2的步骤如下:首先,从官方网站下载Tornado2.2版本的安装包。然后,双击安装包文件,按照安装向导的指示完成安装过程。安装完成后,进入系统设置,找到“应用程序和功能”选项,在已安装的程序列表中找到旧版Tornado并卸载。 接下来,打开命令提示符窗口,使用管理员权限运行。输入“pip install tornado==2.2”命令,开始安装Tornado2.2版本的Python包。安装完成后,可以在Python环境中导入Tornado模块并开始使用新版本的功能。 Win10 Tornado2.2替换的好处是可以获得新版本带来的性能提升和更多的功能特性。Tornado2.2引入了一些新的功能,例如异步请求处理的改进、新的WebSocket协议实现、 路由匹配的优化等。这些新功能可以提高Web应用程序的性能和响应能力,使开发变得更加便捷。 总结来说,Win10 Tornado2.2替换是一种更新和升级操作系统中Tornado版本的方法,可以提高Web应用程序的性能和功能。通过遵循上述步骤,用户可以顺利地将旧版Tornado替换为Tornado2.2,并享受新版本带来的优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值