这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助]移植goahead webserver的问题,急!

共5条 1/1 1 跳转至

[求助]移植goahead webserver的问题,急!

菜鸟
2006-06-16 04:44:38     打赏

[求助]移植goahead webserver的问题,急!

移植环境是vxworks5.5+s3c4510b

现在已经生成了webs.out可执行文件。在download到系统之后,

sp websvxmain,返回taskspawned: id=f3c370, name=slu0, value=0xf3c370,

这时使用i命令在windsh上察看任务信息,发现任务状态时PEND+T,错误号是:3d0002。

经过在webserver的源文件main.c,sock.c,sockGen.c中添加打印信息,发现,程序在sock.c中的socketEof()函数的return语句前停住了。在此语句之前添加打印信息,控制台那边会不停的打印出此信息。不知道这是vxworks映像的问题还是webserver的源代码的问题?还是说有另外其他的问题?恳请指教,多谢!




关键词: 求助     移植     goahead     webserver         

菜鸟
2006-06-16 23:13:00     打赏
2楼

现在web访问不到.

昨晚我看了看,访问web的时候,打印出来的信息.如下简写:

socket read!.......(好像read了很多次)

然后是socketDeleteHandler! websHomePageHandler!

hello sock.c! socketDoOutput! socketFlush!

hello sock.c! socketDoOutput!......这样持续一会最后是socketFree!然后又恢复到访问前的状态.停留在一个地方,不停的输出:hello socketEof!上面的信息除了hello之外都是函数名,我想看看它的调用过程,所以在main.c和sock.c,sockGen.c文件的很多函数的return前添加了打印语句.好像还是socket有问题是不是读不到socket啊?


菜鸟
2006-06-19 17:08:00     打赏
3楼
应该很多人做过的吧,我应该怎么调试呢?amine和xiaohua大侠我看过你们的移植笔记,学到了不少东西,可是现在的问题还是解决不了.访问不到web,麻烦帮帮忙啊! [align=right][color=#000066][此贴子已经被作者于2006-6-19 9:36:23编辑过][/color][/align]

菜鸟
2006-06-27 23:22:00     打赏
4楼

GOHEAD在VXWORKS上我跑过,不知道你是用的哪个版本?


菜鸟
2007-01-01 22:57:00     打赏
5楼

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请求指导!


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]