您的位置:控制工程论坛网论坛 » 嵌入式系统 » 向嵌入式Linux移植实时设备驱动程序

nicebaby

nicebaby   |   当前状态:在线

总积分:415  2024年可用积分:0

注册时间: 2008-09-09

最后登录时间: 2011-08-09

空间 发短消息加为好友

向嵌入式Linux移植实时设备驱动程序

nicebaby  发表于 2008/11/2 14:24:00      645 查看 0 回复  [上一主题]  [下一主题]

手机阅读

Linux暴风雨般地占领了嵌入式系统市场。根据工业分析家分析,大约1/3到1/2的新的32位和64位嵌入式系统设计采用了Linux。嵌入式 Linux 已经在很多应用领域显示出优势,比如SOHO家庭网络和成像/多功能外设,并在以下几方面具备巨大的跨越式发展前景:(NAS/SAN)存储,家庭数字娱乐(HDTV/PVR/DVR/STB)和手持设备/无线设备,特别是数字移动电话。 

  新的嵌入式Linux应用不会象掌握在智慧和工艺之神-罗神手中那样,会突然从开发者的头脑中爆发出来。大量的项目必须采用数千行的,甚至数百万行的过去的现成代码。成百上千的嵌入式项目已经成功地将其它平台的现成代码移植到Linux之上,比如Wind River VxWorks 和 pSOS, VRTX, Nucleus 和其它RTOS ,这些移植工作现在仍然有价值和现实意义。

  到目前为止,大多数的关于移植旧的RTOS应用到嵌入式Linux的文献,已经在关注RTOS 接口(API),任务,调度模式和怎样将他们映射到相应的用户空间去。 在嵌入式程序的密集I/O空间中,同样重要的是,将RTOS的应用硬件接口代码向具有更加规范化模式的Linux设备启动程序的移植。

  本文将纵览几种常用的内存映射I/O方法,它们经常出现于旧的嵌入式应用中。它们涵盖的范围,包括从对中断服务例程的特殊使用和用户线程对硬件访问,到出现于有些ROTS中的半规范化驱动程序模型。它对于移植RTOS 代码到规范化模式的Linux设备启动程序具有启发性,并且介绍了一些方法。特别地,本文会重点讨论和比较RTOS代码中的内存映射,Linux基于I/O调度队列的移植,和重新定义RTOS I/O,以便在本地Linux 驱动程序和守护进程里应用。

  RTOS I/O 概念

  “不规范”是能够描述大多数在基于RTOS系统里的I/O的最佳词语。大多数RTOS针对较早的无MMU的CPU而设计,忽略了内存管理,即使当MMU问世也是这样,不区分物理地址和逻辑地址。大多数 RTOS还全部在特权态(系统模式)运行,表面上看增强了性能。像这样,全部的RTOS 应用和系统代码都能够访问整个机器地址空间,内存映射设备和I/O指令。实际上,将RTOS应用程序代码同驱动程序代码区分开非常困难,即使它们是有差别的。

1楼 0 0 回复