当前位置: 首页 > news >正文

当地自己的淘宝网站怎么做小程序专区

当地自己的淘宝网站怎么做,小程序专区,建设汽车行业网站,啤酒网站建设I/O设备模型 绝大部分的嵌入式系统都包括一些I/O(Input/Output,输入/输出)设备,例如仪器上的数据显示屏、工业设备上的串口通信、数据采集设备上用于保存数据的Flash或SD卡,以及网络设备的以太网接口等,都…

I/O设备模型

绝大部分的嵌入式系统都包括一些I/O(Input/Output,输入/输出)设备,例如仪器上的数据显示屏、工业设备上的串口通信、数据采集设备上用于保存数据的Flash或SD卡,以及网络设备的以太网接口等,都是嵌入式系统中容易找到的I/O设备例子。

I/O设备模型框架

RT-Thread提供了一套简单的I/O设备模型框架,如下图所示,它位于硬件和应用程序之间,共分成三层,从上到下分别是I/O设备管理层、设备驱动框架层、设备驱动层。
在这里插入图片描述
应用程序通过I/O设备管理接口获得正确的设备驱动,然后通过这个设备驱动与底层I/O硬件设备进行数据交互。

I/O设备管理层实现了对设备驱动程序的封装。
应用程序通过图中的“I/O设备管理层”提供的标准接口访问底层设备,设备驱动程序的升级、更替不会对上层应用产生影响。
这种方式使得设备的硬件操作相关的代码能够独立于应用程序而存在,双方只需关注各自的功能实现,从而降低了代码的耦合型、复杂性,提高了系统的可靠性。

设备驱动框架层是对同类硬件设备驱动的抽象,将不同厂家的同类硬件设备驱动中相同的部分抽取出来,将不同部分留出接口,由驱动程序实现。

设备驱动层是一组驱使硬件设备工作的程序,实现访问硬件设备的功能。
它负责创建和注册I/O设备,对于操作逻辑简单的设备,可以不经过设备驱动框架层,直接将设备注册到I/O设备管理器中,使用序列图如下图所示,主要有以下2点:

  • 设备驱动根据设备模型定义,创建出具备硬件访问能力的设备实例,将该设备通过rt_device_register()接口注册到I/O设备管理器中。
  • 应用程序通过rt_device_find()接口查找到设备,然后使用I/O设备管理接口来访问硬件。

在这里插入图片描述

对于另一些设备,如看门狗等,则会将创建的设备实例先注册到对应的设备驱动框架中,再由设备驱动框架向I/O设备管理器进行注册。
在这里插入图片描述

  • 看门狗设备驱动程序根据看门狗设备模型定义,创建出具备硬件访问能力的看门狗设备实例,并将该看门狗通过rt_hw_watchdog_register()接口注册到看门狗设备驱动框架中。
  • 看门狗设备驱动框架通过rt_device_register()接口将看门狗设备注册到I/O设备管理器中。
  • 应用程序通过I/O设备管理接口来访问看门狗设备硬件。

I/O设备模型

RT-Thread的设备模型是建立在内核对象模型基础之上的,设备被认为是一类对象,被纳入对象管理器的范畴。
每个设备对象都是由基对象派生而来,每个具体设备都可以继承其父类对象的属性,并派生出其私有属性。

在这里插入图片描述

struct rt_device
{struct rt_object parent; /* 内核对象基类 */enum rt_device_class_type type; /* 设备类型 */rt_uint16_t flag; /* 设备参数 */rt_uint16_t open_flag; /* 打开标志 */rt_uint8_t ref_count; /* 设备被引用次数 */rt_uint8_t device_id;/* 数据收发回调函数 */rt_err_t (*rx_indicate)(rt_device_t dev, rt_size_t size);rt_err_t (*tx_complete)(rt_deivce_t dev, void *buffer);const struct rt_device_ops *ops; /* 设备操作方法 *//* 设备私有数据 */void *user_data;
};
typedef struct rt_device *rt_device_t;

I/O设备类型

RT-Thread支持多种I/O设备类型,主要设备类型如下所示:

RT_Device_Class_Char             /* 字符设备       */
RT_Device_Class_Block            /* 块设备         */
RT_Device_Class_NetIf            /* 网络接口设备    */
RT_Device_Class_MTD              /* 内存设备       */
RT_Device_Class_RTC              /* RTC 设备        */
RT_Device_Class_Sound            /* 声音设备        */
RT_Device_Class_Graphic          /* 图形设备        */
RT_Device_Class_I2CBUS           /* I2C 总线设备     */
RT_Device_Class_USBDevice        /* USB device 设备  */
RT_Device_Class_USBHost          /* USB host 设备   */
RT_Device_Class_SPIBUS           /* SPI 总线设备     */
RT_Device_Class_SPIDevice        /* SPI 设备        */
RT_Device_Class_SDIO             /* SDIO 设备       */
RT_Device_Class_Miscellaneous    /* 杂类设备        */

其中字符设备、块设备是常用的设备类型,它们的分类依据是设备数据与系统之间的传输处理方式。
字符设备模式允许非结构的数据传输,即通常数据传输采用串行的形式,每次一个字节。字符设备通常是一些简单设备,如串口、按键。

块设备每次传输一个数据块,例如每次传输512个字节数据。
这个数据块是硬件强制性的,数据块可能使用某类数据接口或某些强制性的传输协议,否则就可能发生错误。
因此,有时块设备驱动程序对读或写操作必须执行附加的工作。

在这里插入图片描述
当系统服务于一个具有大量数据的写操作时,设备驱动程序必须首先将数据划分为多个包。
每个包采用设备指定的数据尺寸。
而在实际过程中,最后一部分数据尺寸有可能小于正常的设备块尺寸。

如上图中每个块使用单独的写请求写入到设备中,头 3 个直接进行写操作。但最后一个数据块尺寸小于设备块尺寸,设备驱动程序必须使用不同于前 3 个块的方式处理最后的数据块。通常情况下,设备驱动程序需要首先执行相对应的设备块的读操作,然后把写入数据覆盖到读出数据上,然后再把这个 “合成” 的数据块作为一整个块写回到设备中。例如上图中的块 4,驱动程序需要先把块 4 所对应的设备块读出来,然后将需要写入的数据覆盖至从设备块读出的数据上,使其合并成一个新的块,最后再写回到块设备中。

http://www.yayakq.cn/news/258282/

相关文章:

  • 什么网站广告最多黄页号码标记申诉
  • 陕西省城乡建设学校网站amh wordpress
  • 编程跟做网站永康网站建设服务
  • 营销型网站托管制作精美网站建设服务周到
  • 下载官方网站app下载手机网站建设资讯
  • 网站开发技术文档 范本网站快速排名互点软件
  • 新手站长如何购买虚拟主机做网站汕头市网络科技有限公司
  • 手机模板网站制作做期货的一般看什么网站
  • 内蒙古省呼和浩特网站建设福建建设工程信息网查询平台
  • 建设网站的叫什么职位山东省建设厅网站多少
  • 注册公司名称查询网站wordpress装主题失败
  • 扬中网站建设怎么样手机短视频制作自学教程
  • 如何做线上网站的网站如何做网站竞价排名
  • 盐城网站建设科技有限公司如何开网店新手入门拼多多
  • 网站建设劳务协议全国部分高校精品课程建设网站
  • 建设网站做什么赚钱公司部门章有法律效力吗
  • 建站一条龙的服务流程是怎么样的h5开发小程序
  • wordpress一键安装包seo课堂
  • 建设银行怀柔支行营业部网站财务公司协会
  • 做商业网站没有注册公司萤火虫网站建设优化
  • it做私活的网站wordpress小子邀请码
  • 康定网站建设工作室qq互联 wordpress
  • 在住房和城乡建设部网站查询犀牛云网站建设费用
  • 电邮注册网站购物网站开发历史
  • 昆明哪有做网站的免费企业自助建站
  • 专业建站开发wordpress模板安装失败
  • 深圳专业网站建设定制保定网络营销推广
  • 福州建站模板厂家做公司网站是永久性的吗
  • 做网站组服务器在windows2003上做网站
  • 佛山seo网站排名抖音代运营报价单(仅供参考)