首页 > 其他分享 >初尝内核中断

初尝内核中断

时间:2024-09-04 19:55:00浏览次数:13  
标签:操作系统 处理 初尝 irq 中断 内核 外设

每台计算机都连接有很多外设,那操作系统对这些外设进行管理时要如何通信呢?一般有轮询(Polling)中断(Interrupt)两种,第一种是操作系统定时主动去查询这些外设,看有没有设备需要进行处理,而第二种则是外设需要处理时主动向操作系统发送请求信号,然后操作系统再做相应的处理。这第二种不需要定时去查询,只有在设备需要时才进行处理,节省了CPU的消耗,提高了效率。故而我们先尝试下如何去使用Linux内核的中断处理机制,本次采用共享中断的机制来学习我们的中断程序。 

一般来说,一个中断有这样的操作步骤: 

1.注册中断及服务子程序;
2.使能中断;
3.中断到来时调用服务子程序进行处理,处理完成后退出继续等待下一个中断的到来。 

而在Linux内核源码include/linux/interrupt.h里有注册中断需要用到的如下函数:

static inline int __must_check request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev) ;

标签:操作系统,处理,初尝,irq,中断,内核,外设
From: https://blog.csdn.net/guochongxin/article/details/141690754

相关文章

  • 书写首个内核模块
    在《为Ubuntu换颗“心”》一文中,我们已经了解到了如何去编译安装新的Kernel,编译过程也生成了相应的内核树,为什么要生成内核树呢?其实就跟我们写应用程序时一样,写程序会调用到其他的库文件或其他文件生成的目标文件,最后再由链接器把这些目标文件处理生成可执行文件,就是这道理,这为......
  • ADC中断切换通道
    CH592ADC中断函数切换通道代码参考:#include"CH59x_common.h"#defineadctest1volatileuint8_tadclen;volatileuint8_tDMA_end=0;uint16_tadcBuff[40];uint8_tadcindex=0;uint8_tadcchannel=0;enumchannel{channel_0,channel_1,......
  • 鸿蒙内核源码分析 (编码方式篇) | 机器指令是如何编码的?
    本篇说清楚 ARM指令是如何被编码的,机器指令由哪些部分构成,指令有哪些类型,每种类型的语法又是怎样的?代码案例|C->汇编->机器指令看一段C语言编译(clang)成的最后的机器指令(armv7)intmain(){inta=0;if(a!=1)a=2*a+1;returna;}生成汇......
  • 鸿蒙内核源码分析 (协处理器篇) | CPU 的好帮手
    本篇很重要,对CP15协处理所有16个寄存器一一介绍,可能是全网介绍CP15最全面的一篇,鸿蒙内核的汇编部分(尤其开机启动)中会使用,熟练掌握后看汇编代码将如虎添翼。协处理器协处理器 (co-processor)顾名思义是协助主处理器完成工作,例如浮点、图像、音频处理这一类外围工作。角色相当于......
  • Linux内核的栈回溯dump_stack原理
    浅析ARMv8体系结构:Aarch64过程调用标准_aarch64-64-little(重磅原创)冬之焱:谈谈Linux内核的栈回溯与妙用-腾讯云开发者社区-腾讯云(tencent.com)ARM架构dump_stack实现分析(3.0printk%pS选项实现)测试程序:#include<stdio.h>intA(inta){}intB(){ inta=5; A(a);......
  • CM3学习笔记(X)中断输入及悬起行为
    ##中断输入及悬起行为要理解中断的输入和悬起行为,我们首先要理解这几个概念。>中断的状态可以参考FreeRTOS中的任务的状态(仅对比参考),请结合下面的内容配合CM3官方手册7.4的图进行理解。+中断请求:可以理解为我们所说的中断触发标志位+中断悬起状态:这是一个状态位。检测到中......
  • 11.吐血整理sed入门到精通,sed语法,脚本命令,打印,替换,删除,插入,行替换,字符替换,保
    文章目录前言sed介绍1.sed介绍2.sed语法介绍3.sed脚本命令1.打印2.s替换3.删除脚本命令d3.插入脚本命令a/i4.行替换脚本命令c4.字符替换脚本y5.保存内容脚本w6.插入其他文本r6.中断退出脚本命令q脚本命令当中的地址[address]正则表达式sed[选项]1.sed-i选项2.sed-e......
  • 对OpenHarmony中LiteOS的内核分析——超时原理和应用
    前言在软件世界里面,超时是一个非常重要的概念。比如●当前线程暂时休眠1秒钟,休眠结束后继续执行●每5秒钟采集一下CPU利用率●数据发送失败,2秒钟以后再试一试●等待某种数据,但最多等待50毫秒应用//将当前任务休眠若干tick数,tick为时间单位,常见值为10毫秒LITE_OS_SEC_TEXTUINT3......
  • OpenHarmony 实战开发——内核IPC机制数据结构解析
    一、前言OpenAtomOpenHarmony(以下简称“OpenHarmony”)是由开放原子开源基金会(OpenAtomFoundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。作为面向全场景、全连接、全智能......
  • 集成电路学习:什么是IRQ中断请求
    一、IRQ:中断请求      IRQ是中断请求(InterruptRequest)的缩写,在计算机系统中,它代表了一种机制,允许外部设备或程序通过发送信号来打断CPU的正常执行流程,从而引起CPU执行特定的中断服务程序(InterruptServiceRoutine,ISR)。二、IRQ中断请求的基本概念1、中断:   ......