rt-thread的IO设备管理源码分析.doc

rt-thread的IO设备管理源码分析.doc

ID:57672227

大小:201.00 KB

页数:16页

时间:2020-08-31

rt-thread的IO设备管理源码分析.doc_第1页
rt-thread的IO设备管理源码分析.doc_第2页
rt-thread的IO设备管理源码分析.doc_第3页
rt-thread的IO设备管理源码分析.doc_第4页
rt-thread的IO设备管理源码分析.doc_第5页
资源描述:

《rt-thread的IO设备管理源码分析.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、rt-thread的IO设备管理模块为应用提供了一个对设备进行访问的通用接口,,并通过定义的数据结构对设备驱动程序和设备信息进行管理。从系统整体位置来说I/O管理模块相当于设备驱动程序和上层应用之间的一个中间层。I/O管理模块实现了对设备驱动程序的封装:设备驱动程序的实现与I/O管理模块独立,提高了模块的可移植性。应用程序通过I/O管理模块提供的标准接口访问底层设备,设备驱动程序的升级不会对上层应用产生影响。这种方式使得与设备的硬件操作相关的代码与应用相隔离,双方只需各自关注自己的功能,这降低了代码的复杂性,提

2、高了系统的可靠性。1 IO设备管理控制块[cpp]viewplaincopyprint?1.typedef struct rt_device *rt_device_t;  2./** 3. * Device structure 4. */  5.struct rt_device  6.{  7.    struct rt_object          parent;                   /**< inherit from rt_object *///内核对象  8.  9.    enum r

3、t_device_class_type type;                     /**< device type *///IO设备类型  10.    rt_uint16_t               flag;                     /**< device flag *///设备标志  11.    rt_uint16_t               open_flag;                /**< device open flag *///打开标志  12.  1

4、3.    rt_uint8_t                device_id;                /**< 0 - 255 *///设备ID  14.  15.    /* device call back */  16.    rt_err_t (*rx_indicate)(rt_device_t dev, rt_size_t size);//数据接收回调函数  17.    rt_err_t (*tx_complete)(rt_device_t dev, void *buffer);//数

5、据发送完回调函数  18.  19.    /* common device interface */  20.    rt_err_t  (*init)   (rt_device_t dev);//初始化通用接口  1.    rt_err_t  (*open)   (rt_device_t dev, rt_uint16_t oflag);//打开通用接口  2.    rt_err_t  (*close)  (rt_device_t dev);//关闭通用接口  3.    rt_size_t (*read

6、)   (rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size);//读通用接口  4.    rt_size_t (*write)  (rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size);//写通用接口  5.    rt_err_t  (*control)(rt_device_t dev, rt_uint8_t cmd, void *args);//控制通用接口

7、  6.  7.#ifdef RT_USING_DEVICE_SUSPEND  8.    rt_err_t (*suspend) (rt_device_t dev);//挂起设备  9.    rt_err_t (*resumed) (rt_device_t dev);//还原设备  10.#endif  11.  12.    void                     *user_data;                /**< device private data *///私有数据  13.}

8、;  typedefstructrt_device*rt_device_t;/***Devicestructure*/structrt_device{structrt_objectparent;/**

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。