Chinaunix首页 | 论坛 | 博客
  • 博客访问: 405666
  • 博文数量: 44
  • 博客积分: 4980
  • 博客等级: 上校
  • 技术积分: 1035
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-09 20:39
个人简介

偶尔编程的胖子 40岁之后还能坚持学习

文章分类

全部博文(44)

文章存档

2023年(12)

2022年(2)

2011年(1)

2010年(6)

2009年(1)

2008年(22)

我的朋友

分类: C/C++

2008-04-17 19:13:49

之前完成GoAhead webserver移植后,写了移植手记,但其中并未包含无文件系统的rom格式的web文件操作,近日来就此问题,网友提出了很多提问,因工作原因,无法一一作答。

在此对此问题作一详述,希望能够帮助有需要的朋友。

 

首先浏览文件webcomp.c(在GoAhead源代码文件夹内可以找到的),此文件就是我们需要用来压缩我们的web文件的源代码,

其中int gmain(int argc, char_t* argv[]);此函数就是我们来压缩的文件,具体使用时此函数较麻烦,需要手动输入许多内容。

 

修改为如下函数:

int webcomp(char_t*prefix, char_t *fileList)

{

       if (compile(fileList, prefix) < 0) {

              return -1;

       }

       return 0;

}

此函数就很简单了

第一个参数,就是后面列表中每个文件的前缀,

后面就是文件列表文件,注意:它是个文件名字,此文件内容是web文件列表

 

格式如下:

 

 

 

再次包含一个函数;

 

void CompareWeb(void)

{

       char sListName2[] = "web.lst" ;

       GetFileList("web");

       #ifdef MPE5_SYSTEM_FUNC

       webcomp("host:c:/mpe5/web", sListName2);

       remove(sListName2);

       #endif

}

 

至于GetFileList()函数如何获取,利用dirList(fd, sDirectory, 0, 1);此函书既可,具体如何实现,请查阅vxworks帮助文档或者搜索源代码就好了

(运行该函数时,需要一个有文件系统的系统来执行,可以使用在vc下编辑这些代码,当然vc下执行时需要windows版本的dirList函数,这个我就没有研究了,我个人使用了vxsim,即仿真版本,可以使用fat文件格式)

通过CompareWeb函数后,会生成webrom.c,将此文件加入您的vxworks项目中,在goahead项目编译选项中加入:-DWEBS_PAGE_ROM,然后全编译整个项目,全部完成

 

 

中间的一些细节部分可能不能完全详尽,相信大家都可以搞定的,哈哈

 

祝大家周末愉快

 

阅读(2186) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~