设备驱动程序和中断服务例程

问题描述

| 一个非常基本的问题。我了解到设备驱动程序和中断服务例程仅是某些程序或代码。只要需要它们就可以执行。 执行意味着CPU正在执行其指令集ISA中的某些指令。那么,这是否意味着设备驱动程序和ISR也是生成所需结果的机器指令? 这类程序究竟是由什么构成的设备驱动程序和中断例程组成?这样的程序还具有数据段,代码段和堆栈段吗? 我正在学习x86汇编语言和C。     

解决方法

那是一个准确的评估。足够复杂的设备驱动程序具有数据段,代码段和堆栈段。     ,考虑如何从设备获取数据。有两种方法: 投票:我们到了吗?我们到了吗?程序,操作系统内核,设备驱动程序,等等……不断询问设备是否有任何新数据。 中断:设备告诉CPU它有重要的内容,然后中断CPU。 CPU执行称为中断服务程序的例程来处理请求,然后继续执行被中断之前的所有操作。 根据您的操作系统(或无操作系统,仅是裸机),设备驱动程序可以是程序,也可以是操作系统内核的组成部分,... 典型的设备驱动程序将执行以下操作:识别设备,初始化设备,处理设备中断,处理写入/读取/配置设备的请求,... 当然,现代CPU倾向于提供保护功能,并且不允许任意进程访问设备。因此,设备驱动程序将以高特权级别运行,通常作为OS内核的一部分运行,或者在用户空间设备驱动程序将使用内核提供的一些定义明确的接口的情况下。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...