IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 操作系统-IO笔记 -> 正文阅读

[嵌入式]操作系统-IO笔记

1 I/O 硬件原理

1.1 I/O 设备

IO设备大致可以分为:块设备和字符设备。

1.2 设备控制器

I/O设备一般有机械部件和电子部件两部分组成。
电子部件称作设备控制器,经常以主板上的芯片的兴衰出现。

1.2内存映射I/O

CPU如何与设备的控制寄存器和数据缓存区进行通信?
在这里插入图片描述

方法一: 为每个控制寄存器分配一个I/O端口(I/O port)
方法二: 将所有的控制寄存器映射到内存空间中。
I/O 映射优点:

  1. 减少控制I/O的开销
  2. 不需要特殊的保护机制来阻止用户进程进行I/O 操作。
  3. 可以引用内存的每一条指令也可以引用控制寄存器。

缺点:

  1. 对一个设备控制寄存器进行高速缓存可能是灾难性的。硬件必须能够针对每个页面有选择性地禁用高速缓存
  2. 高速内存总线问题。

高速内存总线问题解决方案

  1. 首先将全部内存引用发送到内存,如果内存相应失败,CPU将尝试其他总线。
  2. 在内存总线上放置一个探查设备。
  3. 在内存控制器中对地址进行过滤。
    在这里插入图片描述

1.4 直接存储器存取

由DMA控制器调控到多个设备的数据传送,而这些数据传送经常是同时发生的。
DMA 控制器包含一个内存地址寄存器,一个字节计数寄存器,和一个或多个控制寄存器

当磁盘控制器的缓存区满了之后,由DMA控制器请求传送到内存,不在由CPU控制请求传送到内存,这就大大提高了CUP的工作效率

在这里插入图片描述
某些DMA 控制器可以以 每次一字模式和块模式操作。

1.5 重温中断

在这里插入图片描述
中断向量表
在这里插入图片描述
在这里插入图片描述
精确中断
将机器留在一个明确的状态的中断,称为精确中断。
特性

  1. PC(程序计数器)保存在一个已知的地方
  2. PC所指向的指令之前的所有指令已经完全执行
  3. PC所指向的指令之后的所有指令都没有执行
  4. PC所指向的指令的执行状态是已知的。
    在这里插入图片描述

2. I/O软件原理

2.1 I/O软件的目标

  1. 设备独立性: 它可以访问任意I/O设备而无需事先指定设备
  2. 统一命名: 一个文件或一个设备的名字应该是一个简单的字符串或整数,它不应依赖于设备。
  3. 错误处理:
  4. 同步和异步传输
  5. 缓冲: 数据离开一个设备之后通常并不能直接存放到其最终的目的地。
  6. 共享设备和独占设备

2.2 程序I/O控制

I/O的最简单形式是让CPU做全部工作。
在这里插入图片描述
程序控制I/O最根本的方面,就是输出一个字符之后,CPU要不断的查询设备以了解它是否就绪准备接收另一个字符
在这里插入图片描述

2.3 中断驱动I/O

这种允许CPU在等待打印机变为就绪的同时做某些其他事情的方式就是使用中断。
在这里插入图片描述

2.4 使用DMA的I/O

在这里插入图片描述

3. I/O 软件层次

在这里插入图片描述

3.1 中断处理程序

当中断发生是,中断处理程序将做它必须要做的全部工作以便对中断进行处理。
处理中断,并选择下一次运行哪个进程
在这里插入图片描述

3.2 设备驱动程序

每个链接到计算机上的I/O设备都需要某些设备特定的代码来对其进行控制,这样的代码称为设备驱动程序
在这里插入图片描述

3.3 与设备无关的I/O软件

在这里插入图片描述

1. 设备驱动程序的统一接口

是所有设备(例如:磁盘、键盘、打印机等)的统一接口。
在这里插入图片描述
对于每一种设备类型,例如磁盘或打印机,操作系统定义一组驱动程序必须支持的函数。

2. 缓冲

在这里插入图片描述
a: 对于每个到来的字符,都必须启动用户进程
b:
循环缓冲区

3.错误报告

许多错误是设备特定的并且必须由适当的驱动程序来处理,但是错误处理的框架是设备无关的。
I/O 错误类型:编程错误、实际的I/O错误

4.分配与释放专用设备

5.与设备无关的块大小及字符设备的数据传输大小。

3.4 用户空间的I/O软件

用户层I/O 软件 :库过程
假脱机(spooling) 是多道程序中处理独占I/O设备的一种方法。另一种方法是创建一个特殊进程,称为守护进程,以及一个特殊目录、称为假脱机目录(spooling directory)
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:20:04  更:2022-02-19 01:21:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:48:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码