这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [原创]GoAhead WebServer移植小结

共4条 1/1 1 跳转至

[原创]GoAhead WebServer移植小结

菜鸟
2003-09-29 16:35:38     打赏
[quote][b]以下是引用[i]bonebird在2003-9-28 22:15:00[/i]的发言:[/b] rever2能否来篇goahead的原创啊? 我找到了一些资料,能down了,可是用不起啊 [/quote] 我以前写的一些,贴出来大家看看,多指教: VxWorks中自带了WebServer组件,在network components->network protocols-> network applications下选择http server即可。也可以采用rapid control for Web。这里我们介绍GoAhead WebServer,它是一个源码免费、功能强大、可以运行在多个平台的嵌入式WebServer。 GoAhead WebServer的主要特性有: l 支持ASP l 嵌入式的JavaScript l 标准的CGI执行 l 内存中的CGI处理GoFroms l 扩展的API l 快速响应,每秒可处理超过50个请求 l 完全和标准兼容 l 如果不包含SSI,仅要求60K的内存;包含SSI,要求500K内存 l web页面可以存在ROM或文件系统中 l 支持多种操作系统,包括eCos 、LINUX 、LynxOS 、QNX 、VxWorks 、WinCE、pSOS等 下面讲述一下通过downloadable工程来架设GoAhead WebServer的过程,当然也可以用类似的方法把它集成到bootable工程中: ① 到http://12.129.4.11/webserver/webserver.htm下载最新的GoAhead Webserver。 ② 建立基于bsp 的downloadable 工程, 名称为 goaheadweb 。 ③ 将下列下载的源文件加入到工程中: balloc.c base64.c default.c ejlex.c ejparse.c emfdb.c form.c h.c handler.c md5c.c mime.c misc.c page.c ringq.c rom.c security.c sock.c sockGen.c sym.c uemf.c um.c umui.c url.c value.c webrom.c webs.c asp.c websuemf.c cgi.c /vxworks/main.c ④ 参考/vxworks/makefile来修改工程的makefile。 在makefile 中增加定义 -DWEBS -DUEMF -DOS="VXWORKS" –DVXWORKS 如下: CFLAGS = -g -m486 -ansi -nostdinc -DRW_MULTI_THREAD -D_REENTRANT -DWEBS -DUEMF -DOS="VXWORKS" -DVXWORKS -fvolatile -nostdlib -fno-builtin -fno-defer-pop -I. -IE:/Tornado-x86/target/h -DCPU=I80486 如果需要增加用户管理、存取控制支持,则还需要增加下列定义 -DUSER_MANAGEMENT_SUPPORT -DDIGEST_ACCESS_SUPPORT 具体可以参考原makefile进行。 ⑤ 根据文档修改/vxworks/main.c。 设置根目录,例如 #define ROOT_DIR T("/tffs0/webs") 设置缺省主页 websSetDefaultPage(T("index.asp")); 利用ftp等工具将index.asp等主页下到tffs0中。 ⑥ 编译为 goaheadweb.out 下载。 ⑦ 在 WindShell 下加载webserver sp websvxmain ⑧ 在浏览器端键入 http://192.168.0.2/index.asp 就可以访问到 /tffs0/webs/index.asp 文件了。 ⑨ Asp编程: GoAhead Asp编程首先需要预先定义Asp函数,在main.c的函数initWebs()中有如下的例子: websAspDefine(T("aspTest"), aspTest); 这里将aspTest()定义为Asp函数,用户可提供相关的函数来进行想要完成的功能,例如: /* * Test Javascript binding for ASP. This will be invoked when "aspTest" is * embedded in an ASP page. See web/asp.asp for usage. Set browser to * "localhost/asp.asp" to test. */ static int aspTest(int eid, webs_t wp, int argc, char_t **argv) { char_t *name, *address; if (ejArgs(argc, argv, T("%s %s"), &name, &address) < 2) { websError(wp, 400, T("Insufficient args\n")); return -1; } return websWrite(wp, T("Name: %s, Address %s"), name, address); } 然后在Asp的页面中调用Asp函数即可,如调用上述例子:

Expanded ASP data: <% aspTest("Peter Smith", "112 Merry Way"); %>

※ 注意:如果要停止或重起WebServer,请不要使用taskDelete 或者 td来删除webserver任务,而是调用kill()来给webserver任务发送9或者15信号。



关键词: 原创     GoAhead     WebServer     移植         

菜鸟
2003-09-29 17:37:00     打赏
2楼
很好!谢谢了。

菜鸟
2004-11-04 23:11:00     打赏
3楼
[quote]以下是引用rover2在2003-9-29 08:36:00的发言: 我以前写的一些,贴出来大家看看,多指教: VxWorks中自带了WebServer组件,在network components->network protocols-> network applications下选择http server即可。[/quote]好像没有找到http server这个组件。我的是t2.2 for arm[upload=jpg]UploadFile/2004-11/2004114151119959.jpg[/upload]

菜鸟
2004-11-07 03:17:00     打赏
4楼
呵呵,rover出来说句话,你的是买的吗?

共4条 1/1 1 跳转至

回复

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