求讨论-以怎么样的形式写实时操作系统的驱动?
本帖最后由 qazqwe159635789 于 2012-12-30 17:27 编辑-----------------------------------------------------------------------
背景:
我是大四在校生,老师最近安排了个任务要写 FreeRTOS 的驱动程序,任务安排的很范,就是这一句话。最近刚看理解了 FreeRTOS 的移植部分,下面要做所谓的“驱动程序”的编写了,有很多问题困惑,求大家讨论。具体的外设就是那些很简单的
-----------------------------------------------------------------------
我的想法:
我先说说我的想法。根据前面学习的情况,我的理解,首先 FreeRTOS 和 Ucos 这些实时操作系统没有给出驱动程序的模型(能不能说它们没有设备管理功能?), 所以写嵌入式程序的“驱动”大多数情况下和裸机的程序相似,像AD,DA,IO口等还好,调用读写函数一次操作可以完成,基本多任务调度不会产生什么冲突。但是比如串口驱动,或是显示屏的驱动,这些输入输出字符串的程序就要有所不一样,要通过某种机制进行保护一下(现在想到的机制有如放置临界段限制,用FIFO做缓存解决冲突)。
这几天看实时系统的感受是实时系统关键引入的优势有两个:一个是多任务调度,令一个是时间管理。其他信号量等是为了支持多任务的产物。
-----------------------------------------------------------------------
纠结的事情:
一个是实时操作系统的“实时”,一个是驱动程序的“可移植性”,一个是“通用格式”。这三个问题用不用考虑?还有这所谓的“驱动”是针对单片机的外设模块好,还是针对具体电路上的外设电路好?
一些讲 ucos 的书上会介绍 串口的驱动编写,很多无非就是加了个 fifo 感觉没有什么实质性的东西,没有介绍和裸机程序的区别,也没有一些建设性的提示。还有在网上看到有人用类似 linux 方式,像文件方式处理外设“驱动”,感觉这在“实时系统”里是不是不太好?网上也没有找到一个公认的方法,新接触实时操作系统,没有实际开发经验,所以请有经验的大牛们在“实时操作系统的驱动”这方面如果有什么经验不吝赐教两句,或有兴趣的大家讨论一下。
页:
[1]