首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

移植Librt库到uClinux

移植Librt库到uClinux

最近一个ARM7+uClinux项目需用到定时器,但定时精度要求不是很高。所以想到了LibRT库。Librt库实现的POSIX 100b.3标准的定时器和消息队列接口,在Linux 2.6内核中已普遍支持,部分后期2.4内核版本也已补丁形式提供了librt库。
    uClinux 2.4.x 并未提供现成的Librt库,虽然uClibc0.9.7提供了Librt库,但由于2.4内核的不支持,也无法直接使用。网上查阅了很多资料也没有找到针对uclinux的POSIX timer补丁。考虑到uClinux源于Linux,利用Linux 的posix timer patch给uclinux打上,使uclinux 2.4内核也支持posix timer。从而使librt库能在uclinux 2.4下使用。
      以下是librt 简要移植步骤。

      1.下载Posix Timer Patch.选较新的Linux 2.4.8版本的。很遗憾,我的uclinux 2.4内核版本是2.4.x的(x>16),而且目录结构不同,不能直接使用patch命令直接给内核打补丁。 呵,patch补丁是使用‘diff’制作的,当然也可以根据补丁内容纯手工修改文件咯。由于我是ARM平台(nommu),所以只修改linux2.4.x/arch/下的arm和armnmmu目录就行了。(当然我现在利用修改后的结果可以制作出针对uclinux 2.4.x的patch文件了)

      2.下载uclibc0.9.7,重新编译librt库得到librt.a静态库。记得make config时配置系统Include路径要修改到uclinux/linux2.4.x下。

      3.使用patch后的内核和编译出的librt.a,就可以在uclinux上做Real-time的应用开发了。如果是对定时器精度要求很高的场合,可以考虑移植HRT,soureforge上有相应的开源。

      需要Posix Timer Patch for uClinux 2.4和librt.a的朋友,可以跟贴。详细的补丁和librt库编译过程就不方便公布了。
返回列表