1532_AURIX_TriCore内核架构_中断

news2024/10/6 20:26:44

全部学习汇总: GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com)

中断一直是我想了解关注的一个功能模块,因为感觉不同的芯片上这部分的设计差异比较大。而这部分也跟我们嵌入式软件的设计模式直接相关。

1. 在TriCore内核中,中断服务的提供者可能有两个:CPU或者DMA通道。

2. 中断发生之后,ICU会利用SRPN(服务请求优先级编号)来判断,看一下哪一个请求会胜出。之后,胜出者设置为PENDING状态,然后与当前正在发生的中断进行优先级的比较看是否需要进行中断切换。

3. ICU的中断控制寄存器可以禁用以及使能全局中断,结合上面的描述来看,当前正在进行中的中断应该是禁不掉的,其相关的ISR还会继续进行。那么,PENDING状态的会是什么处理结果呢?单纯从结构上看,这个还是看不出来。

4. 从接下来的描述可以看得出来,我前面的疑问有了明确的答案。总结来说,那就是中断的切换需要考虑全局的中断使能。只有在全局中断使能的时候才会进行中断的切换。

5. 从可以阻断中断发生的几种条件来看,其实中断可以有相同的优先级出现,最简单的一个就是同一个中断出现了多次响应。

6. 如果CPU正在执行一个多周期的指令或者CPU正在修改ICR寄存器都是可以阻止中断发生的。

1. 进入到中断之后会开启管理员模式,这样就可以对所有的外设进行操作。

2. 从寄存器的调用层级限制可以看出来,中断的嵌套最多是支持64层的。

3. 在进入到中断服务之后,会开启对全局寄存器的写入保护。

4. 如果在中断服务发生的时候,不开启中断使能,那么应该不会出现中断的嵌套。

5. BISR指令比较特殊,可以保存被中断服务优先级的上下文低区。

1. ISR可以通过FRE退出;退出的时候,硬件会进行一个上下文保护,保存中断优先级以及中断使能标志。

2. ISR的入口在中断向量表中,位置由中断优先级来决定。

3. 中断发生之后,CPU根据中断优先级计算出来一个中断向量表中的位置,之后加载到PC寄存器。

4. BIV,中断向量表的基地址。可以通过BIV的修改来支持多个中断向量表的切换。

5. 限量表中的向量间距可以是8字节或者32字节,由BIV寄存器中的VSS来决定。

1. 这里给出来了8字节以及32字节的间距下的软件解析方式。

2. 如果中断ISR处理程序很小,可以在相关向量表代码中存储,否则要跨过所有向量跳转。

1. 这里的描述在其他的地方已经看到过,但是有点记不清,这里的默认地址是否在MCU的有效地址范围之内。

2. 从上面的图中可以看出来,如果有的中断向量没有用到,相应的空间可以给其他的ISR存储代码用。

1. 如果一个ISR跨了多个向量空间,那么被跨过的优先级就不能够在用了。但是,似乎这个只是限制了一个中断服务的提供方,对于DMA来说还是可以继续用的。

2. 中断优先组中的中断不能够相互中断,实现的方式其实是控制当前优先级的寄存器数值。然而,实现中断优先级组,只能够是支持连续的优先级。

1. 结合这里的图,可以更好地理解中断优先级组的概念。

2. 从上面的描述看,这个优先级的高低其实是跟优先级的数值正相关的。数字越大,优先级越高。

1. 可以让一个中断支持两种优先级,拆分的时候需要有两个向量元素。这个中断ISR被拆分,拆分的阶段比较明确但是也是比较难考虑的。因为它本身是在执行的过程中发生了优先级的变化,而变化之后,由于架构本身的设计自然还得跳转到另一块向量区域。

2. 如果让一个中断源支持两个优先级,相对来说简单,只需要在向量中增加两个优先级的入口即可。

1. 中断的优先级是直接绑定中断向量运行实体的。

2. 相同的中断采用不同的优先级,要有不同的Vector Entry,不管是ISR拆分还是直接两套ISR。

3. 在创建向量表的时候需要考虑一个中断采用不同优先级的情况。

中断相关的寄存器其实没有太多需要关注的,在基本的中断系统介绍的时候穿插介绍了比较重要的部分。这里我就不再专门进行笔记梳理了。

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

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

相关文章

使用HikariCP连接池常用配置讲解及注意事项

使用HikariCP连接池常用配置讲解及注意事项常遇到的几种错误Possibly consider using a shorter maxLifetime valueConnection is not available, request timed out after xxxxxmsNo operations allowed after connection closed常见配置及注释说明,可以使用并根据…

每日刷题2——指针概念

更新不易,麻烦多多点赞,欢迎你的提问,感谢你的转发, 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我…

Twins: Revisiting the Design of Spatial Attention in Vision Transformers

Twins: Revisiting the Design of Spatial Attention in Vision Transformers一、引言二、Twins-PCPVT三、Twins-SVT四、实验五、消融实验文章链接: https://arxiv.org/abs/2104.13840代码链接: https://github.com/Meituan-AutoML/Twins一、引言 在本文中,重新审…

基于Matlab计算经典CFAR阈值

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

基于开源 PolarDB-X 打造中正智能身份认证业务数据基座

一、公司及业务介绍 中正智能是全球领先的生物识别和身份认证公司之一。我们曾负责公安部指纹算法国家标准的起草、编写,具备从算法、终端、平台、设计、生产、交付全域自研的能力,拥有多项自主知识产权的产品,并积极与高校合作开展基础研发。…

【Rust 指南】并发编程|无畏并发的原因

文章目录前言1、线程1.1、通过 spawn 创建新线程1.2、join 方法2、move 强制所有权迁移3、使用消息传递跨线程传递数据3.1、Send 方法3.2 、Sync 方法前言 安全高效的处理并发是 Rust 诞生的目的之一,主要解决的是服务器高负载承受能力。 并发(concurren…

石家庄正定县恢复种植 国稻种芯·中国水稻节:河北绘就画卷

石家庄正定县恢复种植 国稻种芯中国水稻节:河北绘就画卷 新华社记者 杨世尧 摄 河北日报 通讯员张 晓峰 摄影报道 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业农业大健康大会…

MongoDB备份与恢复

MongoDB备份与恢复 文章目录MongoDB备份与恢复1.备份恢复工具2.备份工具区别3.mongoexport导出工具命令4.导出MongoDB的表4.1.创建备份的目录4.2.登录数据库4.3.查询表和表中数据4.4.导出数据为json格式4.5.导出数据为csv格式5.mongoimport导入工具5.1.恢复json格式数据5.2.登录…

Python基础-3-列表

一:简述 列表是由一系列按特定顺序排列的元素组成,可以创建包含字母表中所有字母,数字或家庭成员姓名的列表;也可以将任何东西加入列表,其中的元素之间可以没有任何关系。列表中通常包含了多个元素,因此给…

HTTPS中间人攻击实验

HTTPS中间人攻击实验 一.实验基础 1、HTTPS概述 HTTPS (全称: Hyper Text Transfer Protocol over SecureSocketLayer), 是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。 默认端口:443 SSLspli…

【无人机】基于拓展卡尔曼滤波时序四旋翼无人机状态跟踪附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

SpringBoot+Vue项目实现疫情期间社区出入管理系统

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

web前端期末大作业——基于Bootstrap响应式汽车经销商4S店官网21页

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

【prometheus上报和使用】

prometheus上报和使用prometheus环境搭建进行上报CountrateirateincreaseGaugehistogram分位线summaryprometheus Prometheus是由SoundCloud开发的开源监控系统,由GO语言编写而成,采用Pull的方式来获取监控信息,并且提供了多维度的数据模型和…

Linux-sed

sed sed是一种几乎包括所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要用来将数据进行选取、替换、删除、新增的命令 sed [选项] ‘[动作]’ 文件名 选项: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项…

vue.js毕业设计,基于vue.js前后端分离订座预约系统设计与实现(H5移动项目)

功能介绍 【后台功能】 广告管理:设置小程序首页轮播图广告和链接 留言列表:所有用户留言信息列表,支持删除 会员列表:查看所有注册会员信息,支持删除 录入资讯:录入资讯标题、内容等信息 管理资讯&#x…

HTTP Only下的XSS攻击

今天继续给大家介绍渗透测试相关知识,本文主要内容是HTTP Only下的XSS攻击。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权…

程序猿成长之路之密码学篇-密码学简介

在阅读本文前需要了解的术语: 授权人/非授权人:授权人指获取了查看数据权限的用户,非授权人则是指未获取到权限的用户。明文/密文:明文指没有加密的数据内容,密文是指加密后的数据内容CIA(密码学中不是美国中情局的意思…

npm 如何更新项目最新依赖包

NPM 是什么? Node 软件包管理器(NPM)提供了各种功能来帮助你安装和维护项目的依赖关系。 由于错误修复、新功能和其他更新,依赖关系可能会随着时间的推移而变得过时。你的项目依赖越多,就越难跟上这些更新。 老旧的软件包会对安全构成威胁&am…

USB-数据传输

一、USB编码-反向不归零编码(NRZI)位填充 规则:数据为0,电平反转,数据为1,电平不翻转;当连续出现6个相同的1穿插一个0,目的是为了防止连续出现多个1导致的同步漂移。 二、USB传输帧 帧是USB传输的时间单位&#xff0…