HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-中断管理

news/2024/7/21 10:28:47 标签: harmonyos, 华为, OpenHarmony, LiteOS, 鸿蒙

在这里插入图片描述

目录

  • 一、中断基础概念
  • 二、中断管理使用说明
  • 三、中断管理模块接口
  • 四、代码分析(待续...)
  • 坚持就有收获

一、中断基础概念

  • 在程序运行过程中,出现需要由 CPU 立即处理的事务时,CPU 暂时中止当前程序的执行转而处理这个事务,这个过程叫做中断。当硬件产生中断时,通过中断号查找到其对应的中断处理程序,执行中断处理程序完成中断处理。
  • 通过中断机制,在外设不需要 CPU 介入时,CPU 可以执行其它任务;当外设需要 CPU 时,CPU 会中断当前任务来响应中断请求。这样可以使 CPU 避免把大量时间耗费在等待、查询外设状态的操作上,有效提高系统实时性及执行效率。
  • 当硬件产生中断时,通过中断号查找到其对应的中断处理程序,执行中断处理程序完成中断处理。

中断的相关概念:

  • 中断号:中断请求信号特定的标志,计算机能够根据中断号判断是哪个设备提出的中断请求。
  • 中断请求:紧急事件向 CPU 提出申请(发一个电脉冲信号),请求中断,需要 CPU 暂停当前执行的任务处理该紧急事件,这一过程称为中断请求。
  • 中断优先级:为使系统能够及时响应并处理所有中断,系统根据中断事件的重要性和紧迫程度,将中断源分为若干个级别,称作中断优先级。
  • 中断处理程序:当外设发出中断请求后,CPU 暂停当前的任务,转而响应中断请求,即执行中断处理程序。产生中断的每个设备都有相应的中断处理程序。
  • 中断触发:中断源向中断控制器发送中断信号,中断控制器对中断进行仲裁,确定优先级,将中断信号发送给 CPU。中断源产生中断信号的时候,会将中断触发器置“1”,表明该中断源产生了中断,要求 CPU 去响应该中断。
  • 中断向量:中断服务程序的入口地址。
  • 中断向量表:存储中断向量的存储区,中断向量与中断号对应,中断向量在中断向量表中按照中断号顺序存储。

二、中断管理使用说明

  • 根据具体硬件,配置支持的最大中断数及可设置的中断优先级个数。
  • 中断处理程序耗时不能过长,否则会影响 CPU 对中断的及时响应。
  • 中断响应过程中不能直接、间接执行引起调度的 LOS_Schedule 等函数。
  • 中断恢复 LOS_IntRestore()的入参必须是与之对应的 LOS_IntLock()的返回值(即关中断之前的 CPSR 值)。

Cortex-M 系列处理器中 0-15 中断为内部使用,因此不建议用户去申请和创建。

三、中断管理模块接口

功能类别接口函数描述
创建和删除中断LOS_HwiCreate中断创建,注册中断号、中断触发模式、中断优先级、中断处理程序。中断被触发时,handleIrq会调用该中断处理程序
LOS_HwiDelete删除中断
打开和关闭所有中断LOS_IntUnLock打开当前处理器所有中断响应
LOS_IntLock关闭当前处理器所有中断响应
LOS_IntRestore恢复到使用LOS_IntLock关闭所有中断之前的状态
使能和屏蔽指定中断LOS_HwiDisable中断屏蔽(通过设置寄存器,禁止CPU响应该中断)
LOS_HwiEnable中断使能(通过设置寄存器,允许CPU响应该中断)
设置中断优先级LOS_HwiSetPriority设置中断优先级
触发中断LOS_HwiTrigger触发中断(通过写中断控制器的相关寄存器模拟外部中断)
清除中断寄存器状态LOS_HwiClear清除中断号对应的中断寄存器的状态位,此接口依赖中断控制器版本,非必需

四、代码分析(待续…)

坚持就有收获

在这里插入图片描述


http://www.niftyadmin.cn/n/5375151.html

相关文章

iOS swift XHToast.showCenterWithText不显示

extension UIWindow {fileprivate class func window() -> UIWindow{ // let window UIApplication.shared.windows.last! 这是原来的代码let window UIApplication.shared.keyWindow! //这是修改后的代码(亲测有效,可以正常显示&#xff0…

Java设计模式——策略

前言 策略模式是平时Java开发中常用的一种,虽然已有很多讲解设计模式的文章,但是这里还是写篇文章来从自己理解的角度讲解一下。 使用场景 我们不妨进行场景假设,要对我们的软件进行授权管理:在启动我们的软件之前先要校验是否…

用HTML5 + JavaScript绘制花、树

用HTML5 JavaScript绘制花、树 <canvas>是一个可以使用脚本 (通常为JavaScript) 来绘制图形的 HTML 元素。 <canvas> 标签/元素只是图形容器&#xff0c;必须使用脚本来绘制图形。 HTML5 canvas 图形标签基础https://blog.csdn.net/cnds123/article/details/112…

c#directory 和directoryinfo的使用

当使用C#处理目录时&#xff0c;可以使用 System.IO 命名空间中的 Directory 和 DirectoryInfo 类来执行各种目录操作。以下是一些基本操作的示例&#xff1a; 创建目录 string directoryPath "C:\path\to\directory"; Directory.CreateDirectory(directoryPath);…

Linux第49步_移植ST公司的linux内核第1步_获取linux源码

已知ST公司的linux源码路径&#xff1a; /home/zgq/linux/atk-mp1/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.4.31-r0 1、创建“my_linux”目录 打开第1个终端 输入“ls回车” 输入“cd linux/回车”&#xff0c;切换…

类与结构体(6)

我们上一起讲了这一期讲存储类和继承&#xff0c;这个难度很大的。 存储类 存储类主要规定了函数和变量的范围&#xff0c;在c中有这些存储类↓&#xff1a; ৹ auto&#xff08;自动判断函数是什么类型&#xff09; ৹ register (常用的变量和inline差不多&#xff0c;但应…

字符串匹配之Z函数算法和KMP算法

目录 1 介绍1.1 Z函数算法2.2 KMP算法 2 训练 1 介绍 1.1 Z函数算法 Z函数算法&#xff0c;也叫作扩展KMP算法。它用来求取文本串text和模式串pattern的匹配位置。 首先介绍lcp(s1,s2)函数&#xff0c;它表示字符串s1和字符串s2的最大公共前缀长度。那么z[i] lcp(text, tex…

prettier-eslint 失效

eslint / prettier-eslint 失效 某天登录一个许久不用的项目&#xff0c;结果发现eslint不起作用了&#xff0c;同时按格式化按钮不起作用。 查看了一下输出&#xff0c;eslint / prettier-eslint&#xff0c;都出问题了。 prettier-eslint 这个插件的使用请务必注意eslint/…