TriCore:Interrupt

今天简单总结下 TriCore 的中断路由模块。

名词缩写

缩写全称说明
IRInterrupt Router

SRService Request

包括:

1. External Resource

2. Internal Resource

3.SW(Software)

SPService Privoder

包括:

1. CPU

2. DMA

SRNService Request Node
SRCService Request Control Register
GPSRGeneral Purpose Service Request
SRBService Request Broadcast Register
ICUInterrupt Control Units
TOSTypes of Service

中断路由器

IR框架

如上图所示,每一个可以产生 SR(Service Request)的模块分别连接到 IR(Interrupt Router)中的一个或多个 SRN(Service Request Node)上,每一个SRN 内都有一个 SRC(Service Request Control Register)。每一路 SRN 都会连接到某一个 ICU(Interrupt Control Unit)上,一个 ICU 对应一个 SP(Service Privoder)。

比如TC39X系列,有 6 个CPU Core 和 1个 DMA,则 6 CPU + 1 DMA = 7SP 。上图中可以看到 CPU0 之后就是DMA,而不是CPU1,应该是对应 TriCore 家族的设计语言,不同子系列虽然资源不同,但是编址一致,因此不同芯片子系列的程序语言可以保持一致。

TC3XX系列最多支持 1024 个SR,不同的家族系列个数不一样,一般来说,Core 越多,支持的 SR 越多。

每一个 Core 中断向量表有256个入口,即最多支持 256 路 SR。

SRC 寄存器

FieldBitsTypeDescription
SRPN7:0rw

设置中断优先级,数字越大,优先级越高。取值范围:[0~255]

其中 优先级 0 专为 DMA使用,因此,用作 CPU的有效中断优先级范围是 [1, 255]

SRN10rw

0:禁用中断

1:使能中断

TOS13:11rw

设置SP的类型,包括 CPU 和 DMA

0: CPU0

1: DMA 

2: CPU1

3: CPU2

4: CPU3

5: CPU4

6: CPU5

ECC20:16rwhECC检测,进行写操作时更新
SRRrh

中断请求标志位(呈现结果,不可写入)

0: 无中断请求,not pending

1: 有中断请求  is pending

CLRRw

清除中断请求

0: No action

1: 清除 SRR; (读取到的值都是0,因此不建议读。如果和 SETR 并行写入,则无效果).

SETRw

发出中断请求

0: No action

1: 写 SRR 和 SWS; (读取到的值都是0,因此不建议读。如果和 CLRR 并行写入,则无效果)

IOVrh

中断触发溢出标志位

0: 无溢出

1: 有溢出

IOVCLRw

清除中断触发溢出标志位

0: No action

1: 清除 IOV; (读取到的值都是0,因此不建议读)

SWSrh

软件粘滞标志位

0: 中断未通过 SETR 触发

1: 中断通过 SETR 触发

SWSCLRw

清除软件粘滞标志位

0: No action

1: 清除 SWS; (读取到的值都是0,因此不建议读)

Otherrreserved

中断初始化

一般来说,中断初始化要进行的操作包括:

SRC.SRPN : 设置该路中断优先级,有效范围是 [1, 255]

SRC.SRN   : 设置该路中断是否使能

SRC.TOS   : 设置该路中断的 SP. 即进行相应的绑核操作

软中断

TriCore 的中断设计允许每一路中断都可以采用软件触发的方式触发,只需要另 SRC.SETR = 1 就可以触发该路中断。

写SRC.SETR = 1 后,会同时有:

1. SRC.SRR ==1,表明该路中断已经被成功触发,处于 Pending 状态;

2. SRC.SWS ==1,表明该路中断是由软件触发;

要清除软件触发,则需要写:

1. SRC.CLRR =1,清除该路中断的 Pending 状态;

2. SRC.SWSCLR =1,清除该路中断的软件触发粘滞标志位;

笔者认为,相对ARM架构来说,TriCore 的中断设计对软件开发人员来说更友好一些,只需要操作一个寄存器即可完成对该路中断的使能/禁用,触发/清除 等操作,定位问题的时候也相对友好一些。

参考资料:

AURIX TC3xx Family User's Manual Part 1 (infineon.com)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【5分钟学会一个知识点】01.Elasticsearch基本操作-增删改查

目录 【5分钟学会一个知识点-探索现代搜索与分析引擎的魅力】01.Elasticsearch基本操作-增删改查1.基本操作1.1索引操作1.2文档操作1.3查询1.4修改数据1.5查询1.5.1条件查询1.5.1.1遍历所有的索引1.5.1.2查询某个索引1.5.1.3条件查询1:使用GET url传参数1.5.1.4条件…

proteus数模转换器DAC0832的应用

proteus proteus,即EDA工具软件。Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是比较好的仿真单片机及外围器件的工具。虽然国内推广刚起步,但已受到…

油泼辣子在食品类别可以申请成商标不!

前阵韩国人在美国申请“chili crunch”油泼辣子作为商标,还准备禁止华人餐馆使用投诉侵权并索赔,普推知产老杨在USPTO上面检索发现,这个人申请的主要是30类方便食品的调味品,商标分类是全球通用的。 商标名称不能申请本类所属的通…

C++的数据结构(三):栈

栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构,它只允许在一端(称为栈顶)进行插入和删除操作。栈的这种特性使得它在解决函数调用、括号匹配、表达式求值等问题时具有天然的优势…

Linux下多线程相关概念

thread 1.什么是线程1.1 线程优缺点1.2 线程异常1.3 线程用途 2. 进程和线程区别3. 线程控制3.1 POSIX线程库3.2 pthread_create()3.3 线程ID3.4 线程ID地址空间布局pthread_self() 3.5 线程终止pthread_exit函数pthread_cancle函数 3.6 线程等待3.7 分离线程__thread修饰全局变…

【安全每日一讲】加强数据安全保护 共享数字化时代便利

前言 数据安全是数据治理的核心内容之一,随着数据治理的深入,我不断的碰到数据安全中的金发姑娘问题(指安全和效率的平衡)。 DAMA说,降低风险和促进业务增长是数据安全活动的主要驱动因素,数据安全是一种资…

Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址

Django项目之电商购物商城 – 修改/删除收货地址/设置默认地址 修改和删除收货地址依旧实在user应用下进行 , 其思路和新增收货地址非常相似 依旧是更具前端的数据来写 在这里修改和删除地址的URL是相同的 , 所以我们只要设置一个模型类就可以实现这两个功能 一 . 修改地址…

apk反编译修改教程系列-----反编译apk 去除软件强制更新的八种方式步骤解析【十七】

安卓有的apk 软件会不断更新。但有些用户需要旧版的有些功能或者新版功能增减原因等等。需要不更新继续使用。这类问题有的可以简单修改版本号来跳过更新。或者有的软件可以忽略。但对于某些无法跳过更新界面等等的apk。就需要深度反编译来去除软件的强制更新。 通过课程可以了…

Obsidian/Typora设置图床

在obsidian中默认图片是保存在本地的,但是在要导出文档上传到网上时,由于图片保存在本地,会出现无法加载图片的问题。 这里引用的一段话: 这里使用picgo-core和gitee实现图床功能, 参考1: Ubuntu下PicGO配…

【Docker】Ubuntu下Docker的基本使用方法与常用命令总结

【Docker】docker的基本使用方法 镜像image与容器container的关系基本命令- 查看 Docker 版本- 拉取镜像- 查看系统中的镜像- 删除某个镜像- 列出当前 Docker 主机上的所有容器,包括正在运行的、暂停的、已停止的,以及未运行的容器- 列出当前 Docker 主机…

【LeetCode算法】242. 有效的字母异位词

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、题目二、思路三、解决方案 一、题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第一周) - 自然语言处理介绍和线性分类

自然语言处理介绍和线性分类 1. 自然语言处理介绍2. 线性二分类3. 情感分析和基础特征提取 3.1. 情感分析3.2. 特征提取3.3. 文本预处理 4. 学习的基础-梯度下降算法5. 感知机6. 逻辑回归7. 情感分析8. 感知机和逻辑回归 1. 自然语言处理介绍 自然语言处理的目标是什么 能够解…

问题与解决:大华视频后台播放报错

大华播放器接到BI系统后,实时监控视频后台播放一段时间后,报错如下: The play() request was interrupted because video-only background media was paused to save power. 在谷歌浏览器下,直接用代码运行系统,视频在…

腾讯云服务器之ssh远程连接登录及转发映射端口实现内网穿透(实现服务器访问本地电脑端口)

目录 一、创建密钥绑定实例二、设置私钥权限三、ssh远程连接到服务器四、修改root密码五、端口转发(实现服务器访问本地电脑的端口) 一、创建密钥绑定实例 创建密钥会自动下载一个私钥,把这个私钥复制到c盘 二、设置私钥权限 1、删除所有用户…

企业级复杂前中台项目响应式处理方案

目录 01: 前言 02: 响应式下navigtionBar实现方案分析 数据 视图 小结 03: 抽离公用逻辑,封装系列动作 04: PC端navigationBar私有逻辑处理 05: 分析 navigationBar 闪烁问题 06: 处理 navigationBar 闪烁问题 07: category数据缓存,覆盖…

HTML+VUE3组合式+ELEMENT的容器模板示例(含侧栏导航,表格,...)

一个简单的在html中使用Vue3及Element-plus vue-icons的整合示例&#xff1a; 一、示例截图 二、文件代码 直接复制到html文件在浏览器打开即可预览 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title&g…

软件体系结构建模

一、“41”视图模型 逻辑视图&#xff08;用户&#xff09; 用于描述系统的功能需求&#xff0c;给用户提供哪些服务。以及描述系统软件功能拆解后的组件关系&#xff0c;组件约束和边界&#xff08;用类图表示&#xff0c;交互图&#xff0c;顺序图&#xff0c;状态图&#xf…

数据结构与算法学习笔记三---循环队列的表示和实现(C++)

目录 前言 1.为什么要使用循环队列 2.队列的顺序存储方式的实现 1.定义 2.队列初始化 3.销毁 4.清空队列 5.队列是否为空 6.队列长度 7.队头 8.入队 9.出队 10.遍历队列 11.完整代码 3.参考资料 前言 这篇文章介绍循环队列的表示和用法。 1.为什么要使用循环队…

使用curl命令查看服务器端口开放情况

目录 1.ssh端口 22 2.mysql数据库端口 3306 3.web应用端口 &#xff08;Jellyfin 8082&#xff09; &#xff08;wordpress 8088&#xff09; &#xff08;tomcat 8080&#xff09; 4.不存在的端口 5.被防火墙阻挡的端口 1.ssh端口 22 curl -v 10.10.10.205:22 curl…