elanzj大哥:
你好!我跟您做过的移植方法也一样,但是碰到了以下问题,请求大哥能给一些指导,谢谢!
通过在网上查找资料,参考别人的开发经历,我按照以下步骤实验:
(1)创建VxWorks环境
①安装Tornado 2.2 for ARM,修改BSP(一个师兄调试成功的)。
②创建一个bootable工程,取名为webserver
(2)制作网页文件
①安装Microsoft Visual C++ 6.0
②打开D:\ws031202/WIN/webcomp.dsp
③编译生成webcomp.exe文件
④制作filelist.txt文件,将要用到的网页的目录和文件名以文本方式罗列如下:
D:\ws031202/web/FAQ.htm
D:\ws031202/web/about.htm
D:\ws031202/web/addgroup.asp ……
⑤使用GoAhead工具webcomp将网页编译成webrom.c文件,最后与其它源码一起编译进可执行映像中。在DOS命令行下,使用webcomp D:\ws031202/web filelist.txt > webrom.c 即可实现。此时webrom.c中主要内容应当为:
websRomPageIndexType websRomPageIndex[] = {
{ T("/FAQ.htm"), page_0, 9637 },
{ T("/about.htm"), page_1, 4353 },
{ T("/addgroup.asp"), page_2, 933 },
……};
(3)编译webserver工程
①在工程中添加D:\ws031202下的所有.c和.h文件,以及D:\ws031202/VXWORKS下的所有.c和.h文件 注意:添加的webrom.c应是上一步生成webrom.c。
②修改main.c文件,设置根目录为:
#define ROOT_DIR T("/D:/ws031202/web/")(问题1:请问在这里修改成这样的根目录对吗,小弟不太确定)
static char_t *rootWeb = T("/D:/ws031202/web/");/* Root web directory */
注意:这里的目录设定应当与webrom.c中的目录相对应。
③修改工程中的usrAppInit.c文件,在usrAppInit()函数中添加“taskSpawn("tweb",90,0x100,2000,websvxmain,0,0,0,0,
0,0,0,0,0,0);”用于启动GoAhead WebServer任务。
④参考D:\ws031202/VXWORKS/Makefile来修改工程的编译选项。在Makefile中增加定义-DWEBS-DUEMF-DOS="VXWORKS"-
DVXWORKS -DWEBS_PAGE_ROM,其中-DWEBS_PAGE_ROM表明网页存储在ROM中。
如果需要增加用户管理、存取控制支持等功能,则还需要增加下列定义:-DUSER_MANAGEMENT_SUPPORT和-DDIGEST_ACCESS
_SUPPORT。(问题2:我试着修改工程的Makefile文件,但每次在CONFLAG的定义后添加这些选项后保存完重新编译工程,Makefile又恢复到了原来的状态我就不太懂怎么回事了,好在我在工程目录下的Builds标签里找到了C/C++ Compile选项卡在后边添加这些编译选项才使得Makefile修改成功,但在重新编译的时候又出现了如下问题(我现在做的是没有文件系统的移植):dcc -c -g -tARMTLS:vxworks55 -Xinterwork -Wa,-Xgnu-thumb -W:c:,-Xmismatch-warning=2 -ew155
4,1551,1552,1086,1047,1547 -Xclib-optim-off -Xansi -Xstrings-in-text=0 -Wa,-Xsemi-is-newli
ne -ei1516,1643,1604 -Xlocal-data-area-static-only -Xsize-opt -DARMEL -I.. -ID:\Tornado2.2
\target\config\1601_tffs -ID:\Tornado2.2\target\h -ID:\Tornado2.2\target\config\comps\src
-ID:\Tornado2.2\target\src\drv -DCPU=ARMARCH4_T -DTOOL_FAMILY=diab -DTOOL=diab -DPRJ_BUILD
-Wcomment -DCPU_7TDMI_T -DARMMMU=ARMMMU_NONE -DARMCACHE=ARMCACHE_KS32C -DWEBS -DUEMF -DOS
="VXWORKS" -DVXWORKS -DWEBS_PAGE_ROM -DUSER_MANAGEMENT_SUPPORT -DDIGEST_ACCESS_SUPPORT -Xm
emory-is-volatile ..\prjConfig.c -o prjConfig.o
"D:\Tornado2.2\target\src\drv\tffs\tffsConfig.c", line 135: error (dcc:1633): parse error near '}'
"D:\Tornado2.2\target\src\drv\tffs\tffsConfig.c", line 136: error (dcc:1221): don't know size of object
make: *** [prjConfig.o] Error 0x1
Done.让小弟的实验不能正常进行了,恳请大哥能指点下谢谢!小弟不胜感激!)我给您发了Email请求指导!