17.中断控制器

news/2025/3/20 7:51:59/

文章目录

  • 中断控制器
    • 4412下的中断控制器
    • 本次实验用到的寄存器
  • 编程

中断控制器

如果外设直接发送中断给CPU会存在下列问题:

  1. 当CPU在处理一个中断时会屏蔽其它中断
  2. 由于CPU是多核的,中断请求会随机发送给任意CPU,会造成混乱
  3. 中断不清楚是属于FRQ还是IRQ

在这里插入图片描述
因此,三星的4412引入了中断控制器
在这里插入图片描述

4412下的中断控制器

在芯片手册第9章中断表中查到GPX1_1代表的中断9属于ID为57的中断号,后续设置57号中断寄存器
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

本次实验用到的寄存器

第一个寄存器
在这里插入图片描述

第二个寄存器
在这里插入图片描述在这里插入图片描述

第三个寄存器:8位用来设置分配给哪个CPU处理,一共160个中断,每个中断需要8位,一共需要1280位。每个寄存器32位,共需要这样的寄存器40个。
由于4412只有4个CPU,因此设置低4位即可设置分配给哪个CPU
在这里插入图片描述在这里插入图片描述

根据地址图可知:57号中断对应的是0x838寄存器的8-15位,由于4412上电后默认使用的是CPU0,因此设置第8位1来分配给CPU0接收中断信号。
对应的寄存器是ICDIPTR14_CPU0
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

第四个寄存器
在这里插入图片描述

编程

/*外设层次 - 让外部的硬件控制器产生一个中断信号发送给中断控制器*//*将GPX1_1设置成中断功能*/GPX1.CON = GPX1.CON | (0xF << 4);/*设置GPX1_1的中断触发方式为下降沿触发*/EXT_INT41_CON = EXT_INT41_CON & (~(0x7 << 4)) | (0x2 << 4);/*使能GPX1_1的中断功能*/EXT_INT41_MASK = EXT_INT41_MASK & (~(1 << 1));/*中断控制器层次 - 让中断控制器接收外设产生的中断信号并对其进行管理然后再转发给CPU处理*//*全局使能中断控制器使其能接收外设产生的中断信号并转发到CPU接口*/ICDDCR = ICDDCR | 1;/*在中断控制器中使能57号中断,使中断控制器接收到57号中断后能将其转发到CPU接口*/ICDISER.ICDISER1 = ICDISER.ICDISER1 | (1 << 25);/*选择由CPU0来处理57号中断*/ICDIPTR.ICDIPTR14 = ICDIPTR.ICDIPTR14 & (~(0xFF << 8)) | (0X01 << 8);/*使能中断控制器和CPU0之间的接口,使中断控制器转发的中断信号能够到达CPU0*/CPU0.ICCICR = CPU0.ICCICR | 1;

http://www.ppmy.cn/news/123443.html

相关文章

中断系统结构及中断控制详解

中断系统结构及中断控制详解 MCS—51提供5个中断请求源&#xff0c;2个中断优先级&#xff0c;可实现两级中断服务程序嵌套。当CPU执行关中断指令后&#xff08;或复位&#xff09;&#xff0c;将屏蔽所有中断请求&#xff0c;只有CPU执行开中断指令后才有可能接受中断请求&am…

中断控制器

在ARM中CPU有七种工作模式&#xff1a; 什么叫做工作模式&#xff1f; 每一种工作模式都有哪些东西&#xff1f; 每一种工作模式下面都有一些不同的寄存器、不同的权限、不同的触发条件&#xff1b; 不同的寄存器&#xff0c;如图&#xff1a; 可以看出&#xff0c;不同工…

Linux中断子系统(二)中断控制器GIC驱动分析

Linux中断子系统&#xff08;二&#xff09;中断控制器GIC驱动分析 备注&#xff1a;   1. Kernel版本&#xff1a;5.4   2. 使用工具&#xff1a;Source Insight 4.0   3. 参考博客&#xff1a; Linux中断子系统&#xff08;一&#xff09;中断控制器及驱动分析 吐血整…

ARM通用中断控制器GIC之中断控制

在阅读本章之前&#xff0c;可以参考笔者之前关于GIC的一些描述&#xff1a; ARM通用中断控制器GIC(generic Interrupt Controller)简介 ARM架构Generic Interrupt Controller(GIC)之Distributor和CPU interface功能介绍 ARM架构Generic Interrupt Controller(GIC)详解之术语…

Linux中断子系统(一)中断控制器GIC架构

Linux中断子系统&#xff08;一&#xff09;中断控制器GIC架构 备注&#xff1a;   1. Kernel版本&#xff1a;5.4   2. 使用工具&#xff1a;Source Insight 4.0   3. 参考博客&#xff1a; Linux中断子系统&#xff08;一&#xff09;中断控制器及驱动分析 吐血整理|肝…

day35|贪心算法-柠檬水找零用最少的箭引爆气球

今日方法汇总&#xff1a; 柠檬水找零&#xff08;临时变量的设置&#xff09;根据身高重建队列用最少数量的箭引爆气球 860.柠檬水找零 将中间结果记录在字典中&#xff0c;每次找零均遍历字典中的数值。 分析题目的场景&#xff0c;贪心的策略就是优先选择10块钱进行找零&…

3.2 掌握RDD算子

一、准备工作 &#xff08;一&#xff09;准备文件 1、准备本地系统文件 2、把文件上传到HDFS &#xff08;二&#xff09;启动Spark Shell 1、启动HDFS服务 2、启动Spark服务 3、启动Spark Shell 二、掌握转换算子 &#xff08;一&#xff09;映射算子 - map() …

FAQ的作用是什么?如何搭建FAQ系统?

在今天的数字化时代&#xff0c;越来越多的企业和组织开始意识到&#xff0c;提供高质量的客户服务和支持已经成为了竞争优势的重要组成部分。在这个背景下&#xff0c;FAQ系统逐渐成为了许多企业和组织提供客户支持和服务的重要工具之一。 一、FAQ系统的作用 FAQ是英文Frequ…