Notes of Ouyang

Intresting in P2P & MANET Research and development, Handle-set embedded system design and programming.

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  6 Posts :: 0 Stories :: 16 Comments :: 0 Trackbacks

常用链接

留言簿(6)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

2009年10月17日 #

     摘要: 记录 将网上的代码升级到VC++ 2008 SP1后编译时出现“优化编译器”出错的问题 的解决办法。  阅读全文
posted @ 2009-10-17 13:27 金陵书生 阅读(5244) | 评论 (0)编辑 收藏

2009年3月22日 #

        为了毕业,花了段时间写了个几千行代码的程序,加上使用的从eMule中抽取出来的Kademlia代码,差不多也有25000行了。可是越往下做越觉得偏离了我原来的想法,也越来越缺少具体的使用价值了,很沮丧,也很想放弃了。
    
        过段时间闲一点的时候一定要按照我原来的想法重新写好这个程序:
       1. 支持无中心的P2P文件共享,彻底解决校园网中靠个人架设FTP来完成电影、软件、资料等交换的问题。
       2. 支持带访问控制的AICH,即要避免私密文件的泄露,又要使得可以同时从多点下载智能合并。
       3. 支持飞鸽传输协议(能支持飞秋更好),同时具有文件交换和即时通讯等功能。
       4. 兼容eMule-VeryCD,可以在联网的情况下下载eMule资源。
       5. 按照硕士论文中的组网设计,提供嵌入式Linux版本

posted @ 2009-03-22 21:24 金陵书生 阅读(2872) | 评论 (15)编辑 收藏

2008年5月17日 #

minigui-1.3.3及其示例程序编译的详细过程

金陵书生<ouyang_njupt (at) 126.com> 2008.05.16

      在开始介绍minigui的编译过程之前,先给出两个对本文档的说明。首先,本文档介绍的是交叉编译minigui,因此所编译出来的所有可执行文件都只 能在目标板上运行,试图在编译后直接运行是得不到任何结果的,而且还会提示说不是可执行文件(elf)。其次,文档中的linux命令都采用灰色背景跟其 他文字区分开来。命令中的的第一个字母>表示用户console窗口中的命令提示符,具体操作的时候请不要输入该字符。

       文档本来是为项目写的,因此署了常用的邮箱,没想到马上就有垃圾邮件过来了。真烦人。


一。编译华恒科技移植好的minigui-1.3.3库及其测试程序

执行了HHARMMX21附带的光盘中的arminst后会创建好/HHARMMX21目录,其中minigui位于/HHARMMX21/applications/minigui-free/目录下。该目录下的HHTECH.readme是编译华恒科技移植好的minigui的过程说明。

执行HHTECH.readme中的前四个步骤(如下):

Step 1:

cd /HHARMMX21/applications/minigui-free/libminigui-1.3.3

./HHTECH.inst.lib

Step 2:

cd /HHARMMX21/applications/minigui-free/mg-samples-1.3.1/

./HHTECH.compile.mg

Step 3:

cd /HHARMMX21/applications/minigui-free/minigui-res-1.3.3/

./HHTECH.insti

Step 4:

/HHARMMX21/applications/minigui-free/nfsroot

./HHTECH.reduce.lib

执行完这四步以后,minigui库已经编译和安装好了。但是mg-samples中的示例程序都是些演示某个单一控件的使用方法的小程序。使用minigui来开发的复杂一点的程序都在mde中。而华恒科技提供的说明文档中并未提到这一点。根据分析,华恒科技提供的mde无法直接编译通过,估计就是因为这样华恒科技才没有在HHTECH.readme中给出mde的编译过程。下面是我根据网络资料和对mde进行分析后实践出来的mde编译过程。

二。 编译mde-1.3.0

mde的编译需要用到 popt库,因此我们需要先下载和编译popt库。我已经将libpopt库上传到实验室内部网站了,在上传下载中可以找到,文件名为popt_1.10.orig.tar.gz

  1. 交叉编译libpopt

    libpopt的编译比较简单,关键在于使用正确的交叉编译工具。

    tar xvzf popt_1.10.orig.tar.gz

    cd popt

>CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc ./configure --build=i686-pc-linux-gnu --host=arm-unknown-linux --prefix=/HHARMMX21/applications/minigui-free/nfsroot/ --target=arm-unknown-linux

    >make

    >make install

    这里有两个地方容易出现问题:一是权限问题。Linux下对文件的权限有很严格的设定,因此可能会出现用户没有访问或者建立目录的权限导致无法解压缩。或者是没有权限读写 /HHARMMX21/applications/minigui-free/nfsroot而导致make install出错。另一个是交叉编译工具链的设置问题,需要通过CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc命令来指向正确的交叉编译工具链。这里我是通过分析mg-samples-1.3.1Makefile文件而得到交叉编译工具链的名称和位置的。

    如果上面命令执行无误,则/HHARMMX21/applications/minigui-free/nfsroot/lib/下有libpopt.a,libpopt.la,libpopt.so,libpopt.so.0,libpopt.so.0.0.0等几个文件,在/HHARMMX21/applications/minigui-free/nfsroot/include/下有popt.h文件。

  1. 编译mde-1.3.0

华恒科技提供的HHARMMX21附带光盘中的mde-1.3.0文件有问题,估计是其开发人员没能解决popt库的问题,所以想通过修改mde-1.3.0下的tools目录下的vcongui.c文件来屏蔽对popt库的调用,结果没有成功,却忘了恢复对mde-1.3.0源代码的修改。因此我们需要编辑vcongui.c文件来去掉对#include <popt.h>的注释。

cd /HHARMMX21/applications/minigui-free/mde-1.3.0/tools/

gedit vcongui.c

将第5行由

//#include <popt.h>

改为

#include <popt.h>

也就是去掉对#include <popt.h>的注释。然后回到mde-1.3.0目录下,执行./HHTECH.compile.mg编译mde.

cd /HHARMMX21/applications/minigui-free/mde-1.3.0/

./HHTECH.compile.mg

如果执行无误则成功编译了mde-1.3.0,这时可以去bomb,notebook等目录下看一下,应该已经生成了程序的可执行文件。其中mde-1.3.0下的bomb目录包含的是一个扫地雷游戏,挺好玩的。

请别忘了,所有交叉编译出来的程序必须到目标板上才能运行,也就是只能通过MAINet手持终端才能执行,在自己的电脑上是无法执行和查看效果的。

posted @ 2008-05-17 10:23 金陵书生 阅读(2423) | 评论 (0)编辑 收藏

2008年4月11日 #

      To implemente my first test virtual network interface driver--eoudp,which implemente a virtual NIC to transimt specific frames to an remote host with the help of udp,for the purpose to implemente a virtual local area network without any additional hardwares,I have read some books about the linux kernel and the linux network device driver. 
     One of the books I have been reading was the 《Understanding Linux Network Internals》,a good book to help you understand the Linux Network with details. I have finished read the chapter One,explained the fundational mechainsms that used in the implemention of linux network,which drive me to recommend the book immediately.
      The cover of 《Understanding Linux Network Internals》.
      

      You can view some details about the book at http://www.china-pub.com/30187 , and you can view the book online through   http://book.chinaunix.net/special/ebook/oreilly/Understanding_Linux_Network_Internals/
      1. Much graphics was employed to show the mechanisms that the linux network implements used. The following graphic is a typically example.
 
To those who want to acquaint with the mechanisms and implement details of the linux network,I recommend you to read the Part I、Part II、Part III、Part V and Part VII due to your interesting. I recommend all of you to read the Part I first and then chose the chapters that you are interested,no consequence reading is necessary.
posted @ 2008-04-11 21:27 金陵书生 阅读(516) | 评论 (0)编辑 收藏

2008年4月9日 #

    Virtual Network Interface Driver Develope: Conception and Experience
 
      

      This is my first article to note my experience of linux kernel study,especially the TCP/IP network stack.
posted @ 2008-04-09 08:36 金陵书生 阅读(300) | 评论 (0)编辑 收藏

        前面由于微软的spaces.live.com访问缓慢,自己购买的空间又遭强推广告,心里很不爽,于是终止了写博客。以前写的一些想法、经验等可以从http://jlbookworm.spaces.live.comhttp://bbs.njupt.edu.cn 获得。
        由于后面的研究和开发都与嵌入式Linux手持终端相关,为了督促自己的学习,也为了记录自己进入这个前面未曾接触的领域的学习历程,准备坚持写技术博客来记录自己的心得和经验,以便后面查阅。
        技术博客的内容将以原创性的开发心得和体会文章为主,主要涉及应用系统设计、嵌入式Linux开发、C/C++编程、网络编程等。
       为了锻炼自己蹩脚的英语,准备尽量使用英语来记录。欢迎和感谢可能的访客提出各种错误帮助我改进,在此提前致谢!
posted @ 2008-04-09 08:26 金陵书生 阅读(353) | 评论 (1)编辑 收藏