|
前言(Surface): 当前版本(Current Version): 历史(History): 目录(Content): 3.BSP FAQ 4.文件系统 FAQ 5.网络 FAQ
附录A.一些有用的连接
A:BSP 是用来支持你的硬件的软件, 它包含在你的VxWorksImg里面. BSP的作用屏蔽不同的硬件结构(如CPU和外围芯片)向VxWorks的Kernel提供 bsp: 板级支持包,主要完成目标硬件的初始化工作,提供操作系统一个统一的接口,负责硬件操作, 1.1.2 如何学习VXWORK,PSOS入门?
1.3 编程
2.1 编译器和链接器 2.1.2 我怎样使用新版本的编译器? 2.1.3 当用另一个编译器编译代码时,得到更多的错误和警告,怎样才能让GCC生成更多的警告信息? -Wall不能真正打开所有的警告,我采用由Bruce Evans推荐的参数 # BDECFLAGS are a set of gcc warning settings that Bruce Evans has suggested This set of flags is *much* pickier than -Wall alone. 2.1.4 当编译我的模块时一切都是好的,但是当我试图下载时得到一个错误:missing symbol "__eabi"? |
| -- 作者:lxlong -- 发布时间:2005-6-25 13:09:28 -- 2.1.5 我生成了2.95.2版本的编译器,一切正常,但当我开始链接我的映象时,出现了错误,下面是我 A: 该问题是由gcc(ver2.7.2-2.95.2)试图改变它得到静态构造函数的方法引起的。它不再对每个构造静 #undef ASM_OUTPUT_CONSTRUCTOR /* This one is so that GLOBAL_THING gets a $ in it\'s name */ 现在更换到你的编译目录,敲入make clean命令,然后重新编译和安装编译器。我采用这种方法是可以的 2.1.6 在我编译时,我在编译窗口看到如下输出: nm386 -g partialImage.o @B:\\Sources\\Components\\Common\\Common_Geni_Test\\Src\\prjObjs.lst (From: Dave Korn)
A: 我在vxworks中使用GNU编译器 typedef struct ex PackedStruct;
A: 如果你想在一个C程序文件里调用一个C++函数,C++函数必须用extern "C"声明;否则编译器将破坏函数 2.1.9 -fvolatile开关真的需要吗? addql #1,a0@(8) 2.1.10 我链接了许多档案文件,现在链接器在解析文件之间的交叉参考时出现了问题? 1、把$(LIBS)替换成$(LD_PARTIAL) -o vxWorks.tmp $(MACH_DEP) usrConfig.o version.o 2.1.11 警告"trigraphs occured"是什么意思? 2.1.12 为什么编译的最后步骤时间这么长? A: 我不知道为什么这样?但是我们在step #4不重新使用partialImage.o 而是重新生成它,整个过程45s. (是ld386没有对符号过滤进行优化的原因吗?) (From: Ole Asbjorn Fadum, OleAsbjornF@scanmar.no) Some more information. od -bv $infile | (ie use od to generate a list of octal bytes, remove the offset, change the spaces to comma, od -An -v -tu1 $infile | tr \' \' \',\' | However it is clear that a C program would be even faster... It was still sluggish using char map[256][4]; for (;;) { now the system is spending very little of its time doing this bit (it was a lot slower Ages ago I sped up \'munch\' - by grepping out most of the symbols it isn\'t interested in... nmarm vxWorks.tmp | tee vxWorks.nm | grep " __" | munch > ctdt.c (I use the symbol table from this stage for a variety of things...) |
| -- 作者:lxlong -- 发布时间:2005-6-25 13:11:03 -- 2.1.13 怎样把一个段装载到特定的绝对地址? 2.1.14 我在使用C++类型的注释时,出现错误,怎样改变它? (From: Bill Pringlemeir, bpringlemeir@yahoo.com) 2.1.15 我在编译时碰到了关于cc1参数/选项的错误? 2.2 调试器 2.2.2 我怎么在创建一个任务后停止它,以使得我能从开始对它进行调试? 2.2.3 为什么当我使用SHELL检查内存时,看不到断点? 2.3 FTP 2.4 主机工具 2.4.2 我怎样写一个WTX工具? (From: Christopher A Leddy, caleddy@west.raytheon.com)
2.4.4 我试图在windows NT4.0 SP5环境下运行Tornado2.0带的vxsys程序,碰到一个错误: "the system 2.4.5 怎样创建加密密码? [1] problematical since you have difficulty protecting the password file as none of the |
| -- 作者:lxlong -- 发布时间:2005-6-25 13:11:16 -- 2.5 安装 2.5.1 当我试图安装GNU源光盘时,出现了一个关于文件aux.h的错误:permission denied。但该文件并不 2.5.2 在我安装完Tornado或它的补丁后,我所有的C文件类型都被移除了,而使用Tornado作为打开该文件 2.5.3 当我每次双击一个文件,都打开一个Tornado.我想所有的文件都用一个Tornado打开,怎么做? 2.5.4 能把多个CPU平台安装到一个目录下吗? 2.6 MAKEFILE 简单拷贝包含整个应用和工程的整个目录结构到NT,可以解决问题,并生成一个完整的build。拷贝到另一 2.6.2 为什么make没有在我修改了BSP目录里的文件(比如sysSerial.c)后重新生成我的工程? 2.6.3 我怎样在我的工程里生成一个连接器列表(linker list)? 2.6.4 怎样生成C和汇编混合文件? This will generate a file called <file>.out containing C and assembly code. You need to have But this is probably not enough. By default VxWorks puts a name in the object file. This name puts $fd "PRJ_DIR = [file dir [prjInfoGet $hProj fileName]]" This should be changed t (With assistance from Bill Pringlemeir, bpringlemeir@yahoo.com) 2.6.5 怎样把额外的.o文件加入到我的工程里? |
| -- 作者:lxlong -- 发布时间:2005-6-25 13:11:33 -- 2.6.6 我想使用make man在我的BSP里生成额外的文档,但只有sysLib.c的文档被更新了。我把我的文件加 t
2.7 工程 2.7.1 当我修改了usrConfig.c后,我的应用程序并没改变,怎样能把改变编译到应用程序里? 2.7.2 怎样不用Tornado重新生成工程文件? 2.7.3 当我生成依赖关系时,一些依赖关系丢失了。它们不在Tornado树中,但include目录用-I包含和使用 2.8 目标机服务器 2.8.1 怎样不用Tornado启动target server? 2.8.2 我的程序正常装载需要几秒钟,但现在装载一个小的应用程序却需要很长时间。我怎样加速下载过程? 2.8.3 当我启动target server时,碰到WTX错误,告诉同步停止,我怎么修正它? 2.8.4 当我在SHELL里输入一个命令时,出现"The target system is not initialized yet. Can\'t roceed." 2.9 Target Shell 2.9.1 当我从我的工程里移除shell组件时,我碰到一个dosFsDevInit执行错误,怎样能不包含shell而包含 2.9.2 在启动windshell时,一般是通过执行 windsh.tcl来实现的,我在.wind目录下创建了这个文件,但它 2.9.3 当我ping 我的"myHost"时,shell好象丢掉许多内存,为什么? 2.9.4 怎样重复使用一个不断增加的参数的命令? 2.9.5 怎样使用"lkup"列出2个字符的符号? 2.9.6 怎样增加SHELL的最大行长(128字符)? 2.9.7 怎样能让我的程序去SHELL正在使用的端口上读数据? taskDelete(shelltid); 2.9.8 有shell的替换程序吗? 2.9.9 怎样能在我的程序中执行SHELL命令,并使用它的输出? extern int consoleFd; outFileFd = creat( outputFile, O_RDWR); printf("creat returned %x as a file desc\\n",outFileFd); if (outFileFd != -1) } 2.9.10 怎样检查静态变量? |
| -- 作者:lxlong -- 发布时间:2005-6-25 13:11:47 -- 2.10 Telnet
3.2.1.2 如果要在mpc860上加一个硬盘,用什么方法呢? 谢谢! 3.2.1.3 mpc860在下载中遇到的问题,我用veisionice仿真器下载程序的时候,发现程序老是下不下去。 3.2.1.4 860中的程序调用,在860的BSP文件 romInit.s中,在程序末尾有条指令是跳转到 romStart(), 3.2.1.5 vxworks下,是否有api可以获取网卡mac地址呢?
3.3 Bootstrap 4.文件系统 FAQ 4.1.100 如何从dos的root directory读出的32字节中算出文件建立时间? 4.2 Flash文件系统
#define IO_ADRS_ENE1 0x300 bsp\\confignet.h: bsp\\sysNe2000End.c printf ("ne2000EndLoad: %s.\\n", paramStr); In the Project Menu, find the object name IP_MAX_UNITS, change it to 2. and build it . 使用ipAttach和usrNetIfConfig setup the second network cards. |
| -- 作者:lxlong -- 发布时间:2005-6-25 13:12:05 -- 5.2 ARP 再问:由谁能否为我解释一下SNMP中的OID是如何定义的?我如何得到相关的信息? 5.9 其它网络相关问题 5.9.100 VxWorks下ping局域网为何不通? 讲讲我的具体设置 在VxWork下,ping 168.8.8.66,用Sniffer抓包看到:
6.1.100 请教Vxworks中类的用法: extern"C" { }; A:一看你的文件名后缀是否为cpp(必须为小写) 去掉语句extern"C" ,文件后缀名改为.cpp! 6.1.101 请教帮主c and c++,tornado支持c and c++ ,但当我用c++写好程序test.cpp,然后想在
不同的cpu处理不一定相同,你是不是说网络设备的中断处理?(by superme ) 是这样的,比如对于一个网络设备,物理层和MAC层分别由不同的CPU处理,两个CPU之间的通信机制是靠 终于有个大侠给我回复了这个问题,我将之贴出来与大家共享: 外部中断产生时,处理流程是: 6.3.2 请教中断问题,偶用ADS测试ARM中断式,当有IRQ中断产生时,程序转到中断入口0x18处 { unsigned vec, oldvec; |
| -- 作者:lxlong -- 发布时间:2005-6-25 13:12:45 -- 希望这些对你有所帮助 #i nclude "vxWorks.h" void myISR(int); SEM_ID myBinary; #define MY_INUM 0xC011 /* Windows message, in fact */ /*-----------------------------------------------------------------------*/ myBinary = semBCreate(SEM_Q_FIFO, SEM_EMPTY); taskSp
|
