RTT——IO设备管理篇·基本概念理解
一、通过对象容器进行管理的,
对象容器就像系统的监控器一样,监控系统,系统咋干嘛都知道,是个全局性得管理系统。
二、内核对象基类派生出设备对象基类,设备对象基类是对对象基类的继承和派生。
具体设备类型继承了设备对象基类,是设备对象基类的派生。
这种结构很像树的结构。
也就是大家都是有一个老祖宗,都是同血缘!同宗同族!任何对象都是内核对象的派生!线程呀啥呀,都是内核对象的子孙。内核对象实质就是一个结构体而已!
三、管理流程
分三层:IO设备管理层、驱动设备框架层、设备驱动层。
对于简单的设备,如串口等,可以绕过驱动设备框架层,直接注册到IO设备管理层。
对于复杂的设备管理流程:例如看门狗,先把驱动设备注册到驱动管理架构层,驱动管理框架层再注册到IO设备管理层。
四、设备注册
注册的目的是将三层联系在一起,就是把上层的借口和设备驱动操作关联起来。这样应用层只需知道这个设备对象的名字就可以操作它了。
设备注册,是将设备的驱动操作函数关联起来,就是将该具体设备的操作函数指针绑定到该设备的结构体里(设备对象控制块),然后把该设备的结构体再放到容器中。
这样的话msh就可以查看了它的运行状态啥的。
思路是这么个思路。
具体:
1,创建设备控制块
2,填充设备控制块
3,将设备控制块注册到对象容器中
五、对于串口关注点
设备流模式 RT_DEVICE_FLAG_STREAM 参数用于向串口终端输出字符串:当输出的字符是 “\n” 时,自动在前面补一个 “\r” 做分行。
问题:注册到设备管理器上?
答:就是填充串口设备变量。
设备管理器是个啥东西?
答:就是内核对象容器。
RTT——IO设备管理篇·基本概念理解相关推荐
- 18 操作系统第五章 设备管理 IO设备的基本概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO核心子系统 假脱机技术 设备的分配与回收 缓冲区管理
文章目录 1 IO设备的基本概念和分类 1.1 什么是I/O设备 1.2 I/O设备分类 2 IO控制器 2.1 I/O设备组成 2.2 I/O控制器功能 2.3 I/O控制器的组成 2.4 寄存器编 ...
- rtt面向对象oopc——3.对官方IO设备模型框架图的补充绘图
该补充图有幸得到rt thread官方认可,gitee上已提交PR,且通过了官方评审,已被合并到<IO设备模型>章节末尾的<补充说明>小节里了rt-thread官方文档gite ...
- 5.1.1 IO设备的概念与分类
目录 思维导图 什么是IO设备 按使用特性分类 按传输速率分类 按信息交换的单位分类 思维导图 什么是IO设备 按使用特性分类 按传输速率分类 按信息交换的单位分类
- 什么是io?程序员该怎么理解io
引言 很多程序员会谈及IO,仿佛是种时尚或者给自己贴金的方式,因为提上它一般会涉及应用程序的性能相关话题,离高深的底层知识更接近了.但多数人的理解其实是模糊的,他们的脑海里会浮动着抽象的场景:IO就是 ...
- IO设备在OS中的权衡
IO设备是操作系统的中断源之一,IO设备包括磁盘,时钟,中断源,显示器,按照数据传送的基本单元分为块设备和字符设备.本文从磁盘这一个IO设备来归纳操作系统中IO设备从硬件到软件的工作方式. 硬件水平观 ...
- spring cloud contract的应用实现与概念理解-服务提供者一侧的落地
如题,本文是在前一篇"spring cloud contract的应用实现与概念理解-服务请求者一侧的落地"的基础上,续写服务提供者一侧的有关实现与理解. 通过对官网文章的学习和编 ...
- RT-Thread (2) RTT SPI设备驱动流程 || LWIP + ENC28J60
系列文章目录 RT-Thread (1) 添加外部内存到内存管理 RT-Thread (2) RTT SPI设备驱动流程 || LWIP + ENC28J60 RT-Thread (3) 为RTT增加 ...
- KVM中的网络IO设备虚拟化方式
在KVM虚拟化的架构里,对CPU的虚拟化采用的是硬件辅助的方式(Intel VT-x,AMD-V),效率比较高,内存的虚拟化有Intel EPT技术的支持,效率也没有问题:那么对于像磁盘驱动器,网卡等 ...
- 【操作系统】IO设备
第五章 IO设备 文章目录 第五章 IO设备 I/O设备的基本概念和分类 I/O控制器 I/O软件层次结构 I/O核心子系统 假脱机技术(SPOOLing技术) 设备的分配与回收 缓冲区管理 I/O设 ...
最新文章
- python2 json大数据_大数据技术之python 操作json
- 字节跳动Java岗面试题;java帮助文档手机版
- Spring Cron Expression
- android高仿天天动听,Android仿天天动听歌曲自动滚动view
- 布客·ApacheCN 编程/后端/大数据/人工智能学习资源 2020.9
- C语言实现TCP服务端
- 为什么程序员如此“嫌弃”主干开发模式?
- jsp页面输出excel文件乱码解决方案
- 冰点还原精灵怎么使用
- 月入过万的外卖CPS红包小程序源码分享(附搭建教程)
- python实现——40W告警日志分析(上)
- 前端工程师面试题详解(二)
- 利用python将某列修改成另一列
- List 接口中扩充的 10 个方法详解
- 未来趋势:区块链溯源技术
- shell 向 awk 传参
- Python 跳出嵌套循环的5种方法
- DVWA-SQL盲注 medium
- 《How Tomcat Works》读书笔记(三)--Connector(连接器)
- Fuchsia OS 现已支持第二代 Nest Hub