ECos 驱动程序的编写 1/12 ECos系统驱动程序的编写 介绍 Ecos 的驱动程序分为两个部分: 1
/dev 目录下,该部分程序同硬件相关 2
/io 目录下,该部分程序同系统相关 在IO 包中的元件,可以增加 当一个驱动程序被认为是静止的时候,她们必须通过一个透明的“ handle”来访问
每一个设备都有一个独特的名字,函数 cyg_io_lookup()被用来寻找设备名字和设备号的对应
而且,cyg_io_lookup()函数为设备驱动程序在使用该设备时进行设备的初始化提供了方便
所有设备都有一个名字,如:/dev/console、/dev/serial0,等等 所有的驱动程序,在Ecos 中都是有 c 写成的 设备驱动程序的基本功能是提供对设备的接收和发送数据
而详细的实现方法有设备类自己实现
例如:向块设备读写数据同向串口读写数据不同 附加的函数为操作设备或硬件设备的状态提供了接口
不同的设备有不同的附加函数
Ecos 的设备模块支持分层(layering),也就是说,一个设备驱动程序可以创建在另一个设备驱动程序上
例如:tty 就建立在简单的串口驱动上
上层模块相对底层模块而言,有更好的可塑性,可以增加更多的功能和特征
如 tty设备驱动还提供了队列缓冲和编辑
有些设备驱动还提供了它们所依赖的下一级驱动的特性
Tty设备允许通过get/set config调用来操作实际串口的的信息,并下达到实际串口
用户 AP I 所有相关函数,除了 cyg_io_lookup()以外,都需要 io 句柄
所有函数都返回一个Cyg_ErrNo 值
若一个错误发生时,该值为负数,且其绝对值代表相应的错误号
该值在cyg/error/codes
正确返回 ENOERR
任何的函数参数都为指针
它允许驱动传递效率高
最应引起注意的是参数 length