⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vxworks中文faq.txt

📁 vxworks中文FAQ
💻 TXT
📖 第 1 页 / 共 5 页
字号:
mkdir ./$(HOST); \
fi
....
备注:
HOST=x86-win32


A:该makefile是在编译tornado的host工具时用到的,这个判断是在cygwin的shell中执行,意思是如果
该目录不存在着创建该目录。注意:tornado的host工具很多是用cygwin的工具编译的,所以其风格是unix
的。
(by bestracer)

2.7 工程

2.7.1 当我修改了usrConfig.c后,我的应用程序并没改变,怎样能把改变编译到应用程序里?
A:Tornado 2.0的工程不使用usrConfig.c,它使用配置面板,文件可以在target/config/comps下发现,如
果你喜欢用usrConfig.c,make target/config/yourBsp目录下的 Makefile文件,就可以了。
(From: Roie Geron, roie@ecitele.com)

2.7.2 怎样不用Tornado重新生成工程文件?
A: 使用如下命令重新生成那些bootable工程文件:
wtxtcl <Tornado base>/host/src/hutils/configGen.tcl <Project>.wpj
  这个命令也可以被Tornado使用。当配置改变时,这个命令可以作为build的第一个执行命令。
  对downloadable工程,没有标准命令。一个修改过的configGen也可以被使用,文件名为makeGen.tcl
(连接#http://www.xs4all.nl/~borkhuis/vxworks/makeGen.tcl#),把这个文件拷贝到../host/src/hutils
目录。Makefile文件可用如下命令生成:
wtxtcl <Tornado base>/host/src/hutils/makeGen.tcl <Project>.wpj
  请确认你使用了<Project>.wpj的完整路径。

2.7.3 当我生成依赖关系时,一些依赖关系丢失了。它们不在Tornado树中,但include目录用-I包含和使用
   VPATH宏?
A:我们以前也碰到同样的问题,你可以把#include "xxx\xxx\xxx.h"改成#include "xxx/xxx/xxx.h", 
然后在试试。(From: ellin_lin@263.net)

2.8 目标机服务器

2.8.1 怎样不用Tornado启动target server?
A:首先创建一个DOS窗口的快捷方式,然后在Tornado里配置你的target server,使得它能正常启动,并把
配置窗口里的配置文本拷贝到DOS快捷方式的属性里。即可。
(From: John Finley, john@kivala.com)

2.8.2 我的程序正常装载需要几秒钟,但现在装载一个小的应用程序却需要很长时间。我怎样加速下载过程?
A:增加你target server的Cache容量,缺省是1M,增加容量将减少下载时间。
(From: Wade Oram, oram_w_t@ifrinternational.co.uk)

2.8.3 当我启动target server时,碰到WTX错误,告诉同步停止,我怎么修正它?
A:一个解决问题的办法是使用远程registry,即使你在你本机上运行target server,这可以通过使用真实IP
设置远程registry解决。
  基本上"localhost"得到存储在Windows registry中的运行registry的机器名。主机上的WTX工具把
localhost解析成127.0.0.1,并把它传给目标机,然后目标机尝试与127.0.0.1通信,以便符号表的同步和结
束只与自己联系而不与主机联系。很好的特性。
  如果你的Windows主机有多个网口,并且目标机连在一个次要接口上,这还不足够。机器名被解析成IP地
址,否则目标机不知道。在连接目标机进行符号表同步前,你需要在目标机上使用routeNetAdd命令。
(From: Markus Mitterer, markus.mitterer@sbu1.storkgroup.com and lori@rti.com)

2.8.4 当我在SHELL里输入一个命令时,出现"The target system is not initialized yet. Can't roceed."
A:当你在目标机配置项里的"Core filea"指定一个"vxWorks"文件作为核心文件(core file),该问题将解决。
我指定了"vxWorks_rom"文件,并选择了"synchronize host/target symbol table"项,它工作的很好。

2.9 Target Shell

2.9.1 当我从我的工程里移除shell组件时,我碰到一个dosFsDevInit执行错误,怎样能不包含shell而包含
DOSFS组件?
A:首先它看起来可能是wierd,后来我想起来老的dosFsLib使用在RAM中的文件名数据库(使用HASH表),
所以如果你移除任何可能连接到hashLib中的符号表,就可能不能初始化。
一个可能的原因就是没有人注意到它,因为通常都包含 INCLUDE_STAT_SYM_TBL (也是一种符号表)。所以
你应该增加 INCLUDE_STAT_SYM_TBL 或简单的在dosFsInit前调用hashLibInit() 。
(From: Leonid Rosenboim, leonid@bitband.com)

2.9.2 在启动windshell时,一般是通过执行 windsh.tcl来实现的,我在.wind目录下创建了这个文件,但它
没执行,我什么地方做错了?
A:没有,这是windshell的一个bug,它不去搜索Tornado的安装目录,只搜索C:上的,所以你应该把你的
windsh.tcl移动到c:\.wind目录下,它将执行。

2.9.3 当我ping 我的"myHost"时,shell好象丢掉许多内存,为什么?
A:目标机上的shell为字符串分配内存(字符串的地址被传送给函数)。shell不能决定何时可以安全的释放
内存,所以它就把它留在那里,那块内存也不能重新使用。所以下次ping的时候,它又会分配内存。
你可以试试使用一个变量:
pingaddress = "myHost"
memShow
ping pingaddress
memShow
(From: Urban Lindberg, urbanl@my-deja.com)

2.9.4 怎样重复使用一个不断增加的参数的命令?
A:你可以写一个扩展的重复命令。在/target/src/usr/usrLib.c 文件里有repeat的源码,应该是很简单的。
(From: Werner Schiendl,ws-news@gmx.at)

2.9.5 怎样使用"lkup"列出2个字符的符号?
A:lkup "^[a-z][a-z]$",如果需要3个或更多,lkup "^[a-z][a-z][a-z]$"
(From: p_lavarre@my-deja.com)

2.9.6 怎样增加SHELL的最大行长(128字符)?
A:我也碰到同样的问题,我把一些更长的字符串放到变量里,然后在命令行里使用该命令,这样可以突破
128个字符。可能通过设置环境变量也可以实现,但第一个方法更简单。
(From: Don Small, dmsmall@sandia.gov)

2.9.7 怎样能让我的程序去SHELL正在使用的端口上读数据?
A:我发现不用SHELL接口,扫描用户输入。唯一的方法是先删除SHELL任务,然后读数据,再重新生成SHELL。
/*******************************************************/
        shelltid = taskNameToId("tShell");

        taskDelete(shelltid);
        for( ; ; )
        {
                // read
        }
        shellInit(0,TRUE);
/*******************************************************/
(From: Mridul Gupta, mridulgupta1@yahoo.com)

2.9.8 有shell的替换程序吗?
A:在如下地址http://www.xmission.com/~bgeer/bgsh.html: BGSH: A VxWorks Shell With Command Line 
Editing. 可以发现。
(From: Pekka Taipale, pjt@iki.fi)

2.9.9 怎样能在我的程序中执行SHELL命令,并使用它的输出?
A:我写了一个函数来实现该功能,它把命令作为字符串,并把执行结果输出到文件里。
   -> shellToFile("ifShow","ifShow.out")
你可以按你的需求修改它。
//
//
//  This function runs a shell command and captures the output to the
//  specified file
//

extern int consoleFd;
typedef unsigned int             (*UINTFUNCPTR) ();
extern "C" int shellToFile(char * shellCmd, char * outputFile)
{
int rtn;
int STDFd;
int outFileFd;

   outFileFd = creat( outputFile, O_RDWR);

   printf("creat returned %x as a file desc\n",outFileFd);

   if (outFileFd != -1)
   {
    STDFd=ioGlobalStdGet(STD_OUT);
      ioGlobalStdSet(STD_OUT,outFileFd);
      rtn=execute(shellCmd);
   if (rtn !=0)
    printf("execute returned %d \n",outFileFd);
      ioGlobalStdSet(STD_OUT,STDFd);

   }
   close(outFileFd);
   return (rtn);
}
(From: RonnoBonno, RHNAssociates@yahoo.com)

2.9.10 怎样检查静态变量?
A:在映象上执行nmxyz,并提出变量地址,你可以随后导出它的内容。
#> nmppc vxWorks | grep ftpsActive
0023dc60 d ftpsActive
(From: Toni Kurzberger, gonozal@gmx.at)

2.9.100为什么在主程序里的printf语句输出到shell下,而在任务里prinf语句却输出到vxworks simulator里?
A:在任务里标准输入输出是重定向到SIMULATOR里的。(by wys 2002/4/27)


2.10 Telnet
参看5.7
2.11 Tornado
2.11.1 怎样重定向虚拟控制台到文件里?
A:以下是由Dave Gurak dmgd@eci-esyst.com写的文章,
我使用ioGlobalStdSet成功的重定向IO到虚拟控制台,然而由于NT平台的tgtsvr无法重定向到文件里,
(ala Unix xterm)...
当我意识到windsh是个tcl解释器,/vio/1回应windsh,我发现一个解决方案。我所做的只是把windsh中
VIO_WRITE_Handler {event}的定义写到一个文件里,通过把"memBlockWriteFile $mblk -" 改成
"memBlockWriteFile -append $mblk log.txt"
这里是我的windsh.tcl(http://www.xs4all.nl/~borkhuis/vxworks/windsh.tcl),希望能有用。

2.11.2 怎样重定向标准IO到另外的设备上?
A;Aaron Kunze提供了一些重定向标准IO的例子,
http://www.xs4all.nl/~borkhuis/vxworks/stdio_rd.c

2.11.3 怎样在主机的SHELL下重复有一个参数不断增加的命令?
A:你可以使用TCL解释器,在SHELL下输入?进入TCL模式。如下:
-> ?
tcl> for {set x 0} {$x<100} {incr x} {
tcl>   shParse "dumpBlock $x"
tcl> }
tcl> ?
-> ...
?可以在TCL和C模式间切换。
(From: Markku Kotiaho kotiaho@m_a_i_l.com) 

2.11.4 我试图报告一个TSR(附带一个文件),TSR发送工具出错?
A:技术支持请求工具(Support Request tool)的MAPI在发送有附件的邮件时有问题,如果可能,尽可能用
SMTP接口发送。

2.11.5 WINDOWS下的调试器突然消失,当我按下工具按钮或从菜单下选择调试,但什么也没发生?
A:WINDOWS可能丢屏(off-screen),把它重新显示在屏幕上的一个办法就是用程序给窗口发送一个
"Move Window"的命令,一个粗鲁的办法就是使用如下程序(我曾用它把不同的WINDOWS重新显示在屏幕上)

/* (C) Johan Borkhuis, 1999 */

#include <wtypes.h>
#include <winuser.h>

void
main(void)
{
    MoveWindow((HWND)0x194, 10,10, 94, 88, TRUE);
}

The parameters to MoveWindow are: 
1)Window Handle: Fill in the right window handle. This can be obtained by (for example) 
   Spy++, which is shipped with Microsoft Visual C++. 
2)X and Y coordinate where the window has to be moved to. 
3)X and Y size of the window. These should be the same as the size of the original window. 
   These parameters can also be obtained from Spy++. 
4)Boolean indicating that the window should be redrawn. 

2.11.6 当我在build时,build在某处被停止(比如在执行命令vxrm时)?
A:答案是禁止你的防病毒软件,很多已知问题是由Macaffee引起的,当我禁止了我的Norton和voila,我
又可以build了。
   有意思的是,我运行和build很长时间,突然它停止了,我的同学也是这样。我不知道是什么问题引起的
可能与工程的大小有关。
查看TSR 159521
(From: mchug06@attglobal.net)

2.11.7 当我在win2000下build的时候好象出错了,但我在WIN9X和NT下工作的很好?
注意: WindRiver有个补丁查看http://www.wrs.com/csdocs/kplocator/patchList.shtml得到更详细的信息。
A:在WIN2000下安装resource kit,它有一个应用兼容工具(Application Compatibility tool)。你可以
用它告诉TORNADO,当前运行在NT环境下。它位于win2k CD的support目录.你要运行apcompat.exe,让它告诉
TORNADO运行于NT环境。选择"Make the abov check box  settings permanent"项。
更多关于应用兼容工具的信息查看Microsoft's online knowledge base 的Q251062文章。
   另一个解决办法是使用IP地址而不是使用主机名进行远程注册。(参看问题2.8.3). 
(From: Niall Leonard (niall@exchange.Scotland.ncr.com), Kirk Davies (kirk.davies@pobox.com), 
Arik Halperin (arikh@hlan.com) and Adam)

2.11.100 如何在TORNADO环境里添加按扭?
A:编写完类似如下的TCL文件后,把相关文件都放到(ENV)/.wind/目录下,从新启动TORNADO即可。
# crosswind.tcl - user customization file for CrossWind
controlCreate crosswindTB \
        [list toolbarbutton -name cwToggleBrkPt -separator -tooltip "Toggle Global Breakpoint" \
         -cmduicallback "onCmdUIDebugItem toggleBrkpt" -callback "onToggleBreakpoint 1 gbreak" \
            -bitmap [format "%s/.wind/%s" h:/tornado toggleGBreak.bmp]]            

2.11.101 如何把文件编译成库形式?
A:做一个download的project,在Builds的Rules里选择archive 再编译即生成.a的库文件。

2.12 版本控制
2.12.1 Q: After I check out a project no files are shown in the workspace window. 
A: The project files (.wpj and .wsp) should be saved in "Unix"-style with only LF characters. 
Some version control systems (VSS for example) convert text files to DOS text files, with CR/LF.
 In VSS the project files and workspace files should be marked as binary. This can be done when 
 clicking in the files, or by adding *.wpj and *.wsp to the list of binary files in the 
 Tools->Options->FileTypes screen.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -