基于IMX6ULLmini的Linux裸机开发系列五:通用中断控制器(GIC)

news2024/11/16 22:34:16

目录

GIC结构

获取GIC中断控制器基地址

方法一:查询芯片数据手册

方法二:查询cp15协处理器

CBAR寄存器

SCTLR 寄存器

VBAR寄存器


GIC用于管理单核或多核芯片中的中断资源

  • ARM公司开发了4 个版本GIC规范 ,V1~V4

  • ARMv7-A内核搭配GIC-400使用

GIC结构

GIC官方手册:ARM® Generic Interrupt Controller

  • V2最多支持 8 个内核

  • 三类信号源:

    • 软件中断:用于多核通信,ID0~ID15

    • 私有中断:内核独有的中断,ID16~ID31

    • 共享中断:所有内核共享的中断,ID32~ID1019

  • 分发器:选择把中断信号发送到哪一个cpu接口单元

    有哪些相关寄存器?

    • 中断数量:GICD_TYPER

    • 中断清除: GICD_ ICENABLERn

    • 中断使能:GICD_ISACTIVERn

    • 中断优先级设置:GICD_IPRIORITYR

  • cpu接口单元:处理信号后,发送信号给CPU

    有哪些相关寄存器?

    • 中断优先级数量:GICC_PMR

    • 抢占优先级和子优先级设置: GICC_BPR

    • 保存中断ID:GICC_IAR

    • 通知cpu中断完成:GICC_EOIR

获取GIC中断控制器基地址

方法一:查询芯片数据手册

 

方法二:查询cp15协处理器

共有16个:c0~c15。每个协处理器本身有多种含义,需逐步配置

//设置并读协处理器
MRC {cond} p15, <opc1>, <Rn>, <CRn>, <CRm>, <opc2>
//设置并写协处理器
MCR {cond} p15, <opc1>, <Rn>, <CRn>, <CRm>, <opc2> 
  • cond:执行条件,一般省略

  • opc1:第一层设置

  • Rn:通用寄存器

  • CRn:要设置的协处理器

  • CRm:第二层设置

  • opc2:第三层设置

B3.17 Oranization of the CP15 registers in a VMSA implementation

CBAR寄存器

CRn=c15,opc1=4,CRm=c0,opc2=0

  • GIC的地址

MRC p15, 4, r1, c15, c0, 0 ;获取 GIC 基地址

SCTLR 寄存器

CRn=c1,opc1=0,CRm=c0,opc2=0

 

  • bit13:中断向量表基地址

  • cache\mmu\分支预测...

    MRC p15, 0, <Rt>, c1, c0, 0 ;读取 SCTLR 寄存器,数据保存到 Rt 中。
    MCR p15, 0, <Rt>, c1, c0, 0 ;将 Rt 中的数据写到 SCTLR(c1)寄存器中。

VBAR寄存器

CRn=c12,opc1=0,CRm=c0,opc2=0

  • bit5~31:中断向量表偏移地址

MRC p15, 0, <Rt>, c12, c0, 0 ;读取 VBAR 寄存器,数据保存到 Rt 中。
MCR p15, 0, <Rt>, c12, c0, 0 ;将 Rt 中的数据写到 VBAR寄存器中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/908770.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

day24

复制目录到指定路径 file-App下的src目录复制到 D:/aaa public static void copy(File src, File dest) throws IOException {//0. 创建出目标路径if (!dest.exists()){dest.mkdirs();}//0.0 判断dest是否存在&#xff0c;如果不存在&#xff0c;创建爱你出来&#xff0c;不能复…

‘VB6EXT.OLB’ could not be registered

打开VB6提示&#xff1a;‘VB6EXT.OLB’ could not be registered 解决办法&#xff1a; 用管理员打开。 实测可行。 参考&#xff1a;VB6 Error please help-VBForums

dockers搭建基本服务

1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 拉取mysql-5.6和owncloud的镜像 docker run -d --name mdb --env MYSQL_ROOT_PASSWORD123 cytopia/mysql-5.6 docker run -d -p 90:80 --name webdcloud --link mdb:mdb owncloud 注册的时候&#xff0c;数据…

NUMA为何物?对系统性能有什么影响?

NUMA(全称是Non-Uniform Memory Access,就是非统一内存访问)的诞生背景可以追溯到上世纪90年代,当时计算机系统逐渐向多处理器、多线程、多任务的方向发展,传统的UMA内存设计已经无法满足多处理器系统的需求。在UMA中,所有的处理器共享同一个内存资源,随着处理器数量的增…

JS加密的域名锁定功能,JShaman支持泛域名

JShaman的域名锁定功能&#xff0c;支持泛域名 JShaman的JS代码混淆加密中&#xff0c;有一项“域名锁定”功能。使用此功能后&#xff0c;代码运行时会检测浏览器地址中的域名信息&#xff0c;如是非指定域名&#xff0c;则不运行&#xff0c;以此防止自己网站的JS代码被复制…

(动态规划) 剑指 Offer 10- I. 斐波那契数列 ——【Leetcode每日一题】

❓ 剑指 Offer 10- I. 斐波那契数列 难度&#xff1a;简单 写一个函数&#xff0c;输入 n &#xff0c;求斐波那契&#xff08;Fibonacci&#xff09;数列的第 n 项&#xff08;即 F(N)&#xff09;。斐波那契数列的定义如下&#xff1a; F(0) 0, F(1) 1 F(N) F(N - 1) F…

基于Python的婴儿用品销售网站SpringBoot+Vue婴幼儿用品商城【源码+lw】

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

基于SSM的疫情核酸结果查询系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

linux 性能分析之内存分析(free,vmstat,top,ps,pmap等工具使用介绍)

引言 学生时代经常听到老师和同学说到学习 linux 的重要性。但是当时看到这个命令行界面就头疼&#xff0c;也就草草地应付学了一下&#xff0c;哎嘛&#xff0c;还是游戏香&#xff01; 但是当前两天自己捣鼓服务器的时候&#xff0c;发现自己部署的一个服务总是崩溃&#x…

使用VisualStudio制作上位机(一)

文章目录 使用VisualStudio制作上位机(一)写在前面第一部分:创建应用程序第二部分:GUI主界面设计使用VisualStudio制作上位机(一) Author:YAL 写在前面 1.达到什么目的呢 本文主要讲怎么通过Visual Studio 制作上位机,全文会以制作过程来介绍怎么做,不会去讲解具体…

一文读懂视频号下载

工具&#xff1a; 移动端抓包工具&#xff08;以Stream为例&#xff09;电脑端浏览器电脑端析包工具&#xff08;以Charles为例&#xff09;【可选项】 一、手机抓包 1 开启Stream 2 抓包 手机进入视频号&#xff0c;通过“搜索“的方式发送get请求&#xff0c;达到抓包的效…

强训第36天

C D C 193--1100 0001 194--1100 0010 196--1100 0100 198--1100 0110 能包括全部的且最小的为 1100 0xxx xxx为主机号&#xff0c;站三位 B MAC地址是绑定网卡的&#xff0c;全球唯一 D A C D IP网段 17为网络号 所以是 40.15.1aaa aaa(7位主机号).0 因为要划分2个子网 所以…

jmeter接口测试详解

前言 今天笔者呢&#xff0c;想给大家聊聊Jmeter接口测试流程详解&#xff0c;废话不多说直接进入正题。 同时&#xff0c;我也准备了一份自动化测试视频教程&#xff0c;需要的可以直接在下方观看&#xff0c;你也直接点击文末小卡片免费领取资料文档 视频教程观看处&#…

【赠书活动|第六期《强化学习:原理与Python实战》】

文章目录 RLHF是什么&#xff1f;RLHF适用于哪些任务&#xff1f;RLHF和其他构建奖励模型的方法相比有何优劣&#xff1f;什么样的人类反馈才是好的反馈RLHF算法有哪些类别&#xff0c;各有什么优缺点&#xff1f;RLHF采用人类反馈会带来哪些局限&#xff1f;如何降低人类反馈带…

C语言编写图形界面

文章目录 环境使用库基础概念句柄 程序的入口创建窗口定义窗口类注册窗口类创建窗口 完整代码运行效果 环境 使用的是VSCode MinGW&#xff1b; 使用库 我们使用windows.h库来实现图形化界面。 头文件如下&#xff1a; #include <windows.h>windows.h是 Windows 操作…

多维时序 | MATLAB实现SCNGO-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现SCNGO-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现SCNGO-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现SCNGO-BiGRU-Attention多变量时间序列预测。 模型描述…

第三届人工智能与智能制造国际研讨会(AIIM 2023)

第三届人工智能与智能制造国际研讨会&#xff08;AIIM 2023&#xff09; The 3rd International Symposium on Artificial Intelligence and Intelligent Manufacturing 第三届人工智能与智能制造国际研讨会&#xff08;AIIM 2023&#xff09;将于2023年10月27-29日在成都召开…

GEE-PIE遥感大数据处理与典型案例实践技术应用

随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近年来遥感技术突飞猛进。由此&#xff0c;遥感数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量也大幅增长&#xff0c;使其越来越具有大数据特征。对于相关研究而言&#xff0c;遥感大数据的出现为其提…

item_search_img-按图搜索淘宝商品(拍立淘)

一、接口参数说明&#xff1a; item_search_img-按图搜索淘宝商品&#xff08;拍立淘&#xff09;&#xff0c;点击更多API调试&#xff0c;请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_search_img 名称类型必须描…

Ohio主题 - 创意组合和代理机构WordPress主题

Ohio主题是一个精心制作的多用途、简约、华丽、多功能的组合和创意展示主题&#xff0c;具有敏锐的用户体验&#xff0c;您需要构建一个现代且实用的网站&#xff0c;并开始销售您的产品和服务。它配备了最流行的WordPress页面构建器 WPBakery Page Builder&#xff08;以前称为…