Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->嵌入式系统 ->正文

RTOS设备驱动向嵌人式Linux的移植

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]

为使用Linux驱动程序重新设计

较可取的是应该至少写一个简单Linux驱动程序在内核层处理中断。一个基本的字符或者块驱动程序,能够在“上半部”直接处理中断数据,或者延时到任务队列或2.6内核新工作队列中作后续处理。一个或者多个应用线程/进程能够打开设备然后执行同步读操作,正像RTOS用队列实现同时调用一样。需注意的是,这种方法需要重写I/O线程读取,代替队列接收操作。

保留一个RTOS基于队列的I/O架构

为了减小移植到嵌入式Linux 后的影响,可以在保留基于队列的方案,添加额外的线程或者守护进程,在新创建的设备上等待I/O操作.当数据准备好以后,这些线程或者守护进程被唤醒 , 按队列重排由应用线程或进程读取的数据。

移植方法

把RTOS移植到嵌入式Linux 与商业应用程序移植概念上并无区别。当准备好移植的基础性工作:(创建make/build脚本和工具,编译器兼容性,指定所用的头文件等)之后,移植任务面临的是应用程序的结构和(API)使用问题。 为了便于下面的讨论,我们假设“应用”部分(除针对I/O以外的所有代码)会被从RTOS系统中移植到单独的一个Linux进程;RTOS任务映射到Linux线程,而任务的进程间通信(IPC)映射到Linux进程和线程相应通讯。 .

映射RTOS任务到Linux基于进程的线程 Process-based Threads

移植的基本概念容易理解,问题主要出现在细节上。最常见的是RTOS中的应用程序接口以及怎么样把它们保留到linux结构中继续使用。

整体分析―重构

假如项目时间要求不是很紧,并且为了把来项目的可重用和代码可移植性,你会化时间分析当前RTOS应用程序结构以及如何把他们映射到Linux中去。对于RTOS应用,需要考虑把任务对应一一映射到Linux基于进程的线程中去,或者考虑把RTOS应用重分配到多个Linux进程中去。基于这些考虑,应该重新考虑把RTOS进程间通信(IPC)用合适的进程间或者进程内通讯来替代。

在驱动程序上,肯定要把不规范的内嵌式RTOS代码转化成相应的驱动程序。如果已有的应用程序已经很好划分,或者使用RTOS I/O应用程序接口,或者分隔在不同的层面,转化工作把非常容易进行。如果这类I/O代码分散于整个应用程序中,把面临巨大工作量。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Linux操作系统的嵌入式领域面临新挑战   下一篇:Linux嵌入式系统与硬件平台的关系

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号