eCos驱动程序设计

本文介绍了eCos中设备驱动程序的设计,包括DEVTAB_ENTRY、BLOCK_DEVTAB_ENTRY宏的使用,以及设备表入口、设备IO函数表和设备IO函数的概念。详细阐述了设备驱动的三个主要部分,并解析了如何进行设备的读写、配置和中断管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设备驱动 程序主要用于对设备数据的读写操作,以及对设备配置和读取设备信息的操作,它还可以使用和管理来自设备的中断。所有的设备驱动程序设计接口都具有普遍性质。
    设备驱动程序一般可分为三个部分:D EV TAB_ENTRY,设备IO函数表DEVIO_TAB、设备IO函数。

     eCos中所有设备驱动都使用设备表入口来进行描述,设备表入口是一个具有cyg_devtab_entry_t类型的数据结构,使用宏DEVTAG_ENTRY()可以生成一个设备表入口。

         DEVTAB_ENTRY(l, name, dep_name, handers, init, lookup, priv)
其中:
    l--------该设备表入口的“C”标识符
    name------设备的“C”字符串名字
    dep_name---对于一个层次设备,此参数是该设备的下层设备的“C”字符串名字
    handlers-----IO函数句柄指针
    init-------当eCos处于初始化状态时候被调用的函数,该函数可以进行查找设备,对硬件进行设置等操作。
    lookup-----当调用cyg_io_lookup()函数能对该设备进行操作的时候所调用的一个函数。
    priv-------该设备驱动程序所需要的专用数据存在位置。

对于块设备,则需要宏
     BLOCK_DEVTAG_ENTRY(i, name, dep_name, handers, init, lookup, priv)

    设备表入口中的句柄handlers提供了一组设备驱动程序接口函数。handles是设备IO函数表DEVIO_TAB的指针,DEVIO_TAB包含了一组函数的指针,这些函数是各种接口函数cyg_io_XXX()的具体实现。

 

设备IO函数通过DEVIO_TAB宏来定义
   

      DEVIO_TABLE(l, write, read, get_config, set_config)
其中:
    l------表示的“C”标识符
    write----cyg_io_write()    //实现向设备传送数据
    read----cyg_io_read()       //实现向设别读取数据
    get_config---cyg_io_get_config()       //实现对设备配置信息的读取操作
    set_config---cyg_io_set_config()        //函数完成对设别的配置操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值