1
GoAhead 在vxWorks@VMWare 下的移植小结
Searcher Caiyang ver 1.0 2007-4-17
软件环境
准备工作
GoAhead 的编译
网页测试
后记
参考文献
鸣谢
软件环境
Tornado 2.2 for X86
GoAhead WebServer 2.1.8
vxWorks5.5 @VMWare
准备工作
首先在VMWare 下移植vxWorks(论坛上有很多这方面的帖子,不再赘述)。
注意:加载的vxWorks 须包含如下组件:
Target shell
c++components(具体组件可根据需要进行选择)
development tool components ->loader components->target unloader
development tool components ->symbol table components-> synchronize
host and target
symbol tables
其次进行goahead 编译相关准备工作
1. 首先下载GoAhead2.18 版本,解压后得到文件夹ws031202,将其该名为goahead 后转移
到E 盘根目录下(文件名和转移的盘符位置可选)。
2.
安装Microsoft Visual C++ 6.0
打开E:\goahead\WIN\webcomp.dsw
编译生成webcomp.exe 文件(也可通过其它方式生成)
制作filelist 文件
E:\goahead\web\FAQ.htm
E:\goahead\web\about.htm
E:\goahead\web\addgroup.asp
E:\goahead\web\addlimit.asp
E:\goahead\web\adduser.asp
E:\goahead\web\asp.asp
E:\goahead\web\bogus.asp
E:\goahead\web\contents.asp
E:\goahead\web\delgroup.asp
E:\goahead\web\dellimit.asp
2
E:\goahead\web\deluser.asp
E:\goahead\web\docs.htm
E:\goahead\web\dspuser.asp
E:\goahead\web\forms.asp
E:\goahead\web\home.asp
E:\goahead\web\loadcfg.asp
E:\goahead\web\overview.htm
E:\goahead\web\savecfg.asp
E:\goahead\web\small.htm
E:\goahead\web\tests.htm
E:\goahead\web\title.htm
E:\goahead\web\treeapp.asp
E:\goahead\web\um.htm
生成网页的C 格式文件
webcomp E:\goahead\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 },
{ T("/addlimit.asp"), page_3, 897 },
{ T("/adduser.asp"), page_4, 1077 },
{ T("/asp.asp"), page_5, 622 },
{ T("/bogus.asp"), page_6, 170 },
{ T("/contents.asp"), page_7, 2146 },
{ T("/delgroup.asp"), page_8, 609 },
{ T("/dellimit.asp"), page_9, 627 },
{ T("/deluser.asp"), page_10, 619 },
{ T("/docs.htm"), page_11, 1800 },
{ T("/dspuser.asp"), page_12, 623 },
{ T("/forms.asp"), page_13, 678 },
{ T("/home.asp"), page_14, 753 },
{ T("/loadcfg.asp"), page_15, 597 },
{ T("/overview.htm"), page_16, 3037 },
{ T("/savecfg.asp"), page_17, 587 },
{ T("/small.htm"), page_18, 887 },
{ T("/tests.htm"), page_19, 506 },
{ T("/title.htm"), page_20, 321 },
{ T("/treeapp.asp"), page_21, 1089 },
{ T("/um.htm"), page_22, 4091 },
{ 0, 0, 0 },
};
由于我们这里的移植是在不基于文件系统的情况下进行的,GoAhead 会将网页以数组的形
式进行存储。
3
编译GoAhead WebServer
接下来开始进入GoAhead 的编译过程具体步骤如下:
1. 新建一个Downloadable Project,名字可以任意取,这里取名goaheadx86
2. 加入GoAhead WebServer 文件:
把E:\goahead\*.c 和E:\goahead\*.h
E:\goahead\vxworks\*.c 和 E:\goahead\vxworks\*.h 加入工程中。
注意:去掉websSSL.c,webcomp.c,并用生成的WIN\ webrom.c 代替goahead 根目录下
的webrom.c(注意在工程中修改包含头文件为 #include "../wsIntrn.h" 或者直接将
webrom.c 拷贝到goahead 根目录下替换原先的webtom.c)。
3. 修改..\vxworks\main.c 文件为如下形式
#define ROOT_DIRT("")
static char_t*rootWeb = T("");/* Root web directory */
4. 加入编译选项:
-DWEBS -DUEMF -DOS="VXWORKS" -DVXWORKS -DWEBS_PAGE_ROM
注意:这句的加入位置为在Workspace 工作区中,点击builds,展开goaheadx86 builds,
右键PENTIUMgnu->properties->c/c++compiler 在最后加入编译选项(中间用空格隔开),
具体如下图1 所示:
图 1
4 编译
如果顺利的话会生成goaheadx86.out
4
网页测试
1. 通过TargetServer download 生成的goaheadx86.out 即你做的Downloadable Project,
可以通过Tornado2.2 中的browser 下的module information 来查看加载的goaheadx86.out
的相关信息。
2. 在Shell 中启动web server 的任务:
->sp websvxmain
3. 在IE 中访问的Target 的IP 既可以看到网页。
如果通过以上操作不能看到网页,则需检查是否中间某个环节出了问题。
后记
本文只给出了goahead 移植的一种情况,对于基于文件系统的移植,以及在Torando2.2 for
arm 等平台上的情况,大家可以参考本文进行处理。
参考文献
1. GoAhead 移植笔记 written by
xiaohu...@163.com for EDW Date:
2003/10/20
2. goAhead WebServer 在VxWorks 上的移植笔记
3. vxWorks group
鸣谢
感谢我的师兄bulls。
感谢网友孙彬的帮助,正是他的意见使得GoAhead 的编译能够顺利完成。
感谢中国电子产品开发网的大力支持,尤其是苦丁茶,starlight 等热心的朋友们。