RTEMS 的小技巧(2011.6.30.)

(本文原创,转载请注明出处,谢谢)

RTEMS 4.10.0 今年早些时候发布了,自己一直捣鼓 4.9.5,所以没空弄这个东西,朋友们坐不住了,很多人都在尝鲜。有些朋友在编译RTEMS4.10.0时遇到了困难,我安装了工具就替朋友们解决了一下。这一弄,还发现了一些问题。特别写在这里(所有命令在linux fedora 8下测试通过):

  • 编译 RTEMS 4.10.0 的 i386的BSP时,有童鞋说编译时间过长,我亲测了一下,My god,真的是好长好长……仔细看看飞驰的提示信息,原来把i386ex 、pc386、pc486、pc586_bse、pc586等等全部编译了,那么时间能不长吗?给出的解决方案是:如果只想编译pc386,使用gmake RTEMS_BSP="pc386" install 替代原来的make all install命令。 这样编译时间就大幅度缩短了。
  • 编译 RTEMS 4.10.0 network-demos-4.10.0.tar.bz2中的 network-demos-4.10.0/http的时候,可能会提示
    /confdefs.h:2305:4: error: #error "CONFIGURATION ERROR: POSIX API support not configured!!"这个问题是因为新版本的webserver使用了nongoose httpd,这个httpd使用posix开发的。当然,也可以指定其他的webserver,这个demo写得非常强大,如果想一行不改变这个源代码。编译RTEMS时要启用--enable-posix,编译才能成功。 ../configure --target=i386-rtems4.10 --enable-posix --enable-cxx --enable-networking --enable-rtemsbsp=pc386 --prefix=/opt/rtems-4.10 就OK了。当然如果只想使用基本的httpd,需要修改http的Makefile。将该文件中的地45行的USE_SIMPLE=no改为yes,第USE_MONGOOSE=yes改为no。然后编译,就不需要posix了。但是在../configure --target=i386-rtems4.10 --disable-posix --enable-cxx --enable-networking --enable-shttpd --enable-rtemsbsp=pc386 --prefix=/opt/rtems-4.10 中指定 --enable-shttpd。这样,即使不需要posix也可以编译成功。
  • 有些童鞋想将应用程序移植到rtems4.10.0上,使用network-demos-4.9.5.tar.bz2在rtems 4.10.0下编译。原则上是不需要做大的改动,就http这个示例来说,由于rtems 4.10.0改变了库的头文件的定义,需要重新包含头文件。network-demos-4.9.5/http/init.c 中第29行#include <rtems_webserver.h>改为#include <shttpd/shttpd.h>即可,轻松在rtems 4.10.0下编译成功。当然配置rtems 4.10.0时要带上 --enable-shttpd 参数。

 

 

(本文原创,转载请注明出处,谢谢)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值