TriCore:Interrupt 2

2024-05-13 22:12
文章标签 tricore interrupt

本文主要是介绍TriCore:Interrupt 2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天继续来看看 IR 模块。

名词缩写

缩写全称说明
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
HWHardWare
SWSoftWare
GPSRGeneral Purpose Service Register
GPSRGGeneral Purpose Service Register Group

前面一节 TriCore:Interrupt 1 中提到,每一路中断都会连接到一个 SRN, 每一个 SRN 中都有一个 SRC寄存器控制该中断的配置。

在众多中断中,存在几路不会连接到硬件模块的特殊中断 —— GPSR(General Purpose Service Register)用来实现软中断。

GPSR

如上图所示,每个 GPSR Group 内部 包含 8 个 SRN,其分别对应 SRC_GPSRxy,其中:

x 代表 group number,其个数和 CPU 个数相对应;

y 代表 number of interrupt within the group,其范围是 [0,7]

以TC39X为例,x 范围是 [0,5], y 范围是 [0,7], 则一共是 6 * 7 = 42 个 GPSR。

触发 GPSR 有 2 种方式:

1. SRC_GPSRxy.SETR = 1 或者

2. SRBx[y] = 1

其中:

1. 方式 1 和前一节中提到的 写 SRC.SETR 方式一致。

2. 方式 2 专门作用于 GPSR。

二者的差异在于,使用方式 2 可以同时触发 N(1~8)个GPSR中断。

SRB

如上图 Figure175 所示,某个 GPSRGroupx 会连接到与其对应的 SRBx 寄存器,且在 GPSRGroupx 中每一个SRN 对应 SRB 中的 一个 Bit 位。即

由上图可以可以看到如果向 SRBx 寄存器中写入 0xFF 可以同时触发 GPSR Group X 中的 8 路 GPSR 中断。 如果使用写 SRC 的方式,则需要对8 个SRC寄存器进行逐个写入操作。

SRB 寄存器的其他注意事项:

1. A Service Request Broadcast Register is always read as 0

2. Writing ´1´ to SRBx[y] triggers the service request GPXRxy1

3. Writing ´1´ to SRBx[31:6] has no effect.

写在后面

作为一名新晋AutomotiveOS Engineer,闲暇时间写写技术总结,如有不当之处,还请指正。

以后博客内容会同步更新在订阅号 AutomotiveOS,喜欢的可以关注:)

 参考资料:

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

这篇关于TriCore:Interrupt 2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/986968

相关文章

sqlite3的db.interrupt方法深入解析

在Node.js环境中,sqlite3库是一个广受欢迎的轻量级数据库库,它为开发者提供了一个简洁的API来与SQLite数据库进行交互。在处理长时间运行或复杂的数据库查询时,有时可能需要中断这些查询。sqlite3库提供了db.interrupt方法来实现这一功能。本文将深入解析db.interrupt方法,包括其API函数定义和相应的代码示例解释。 一、db.interrupt方法简介 db

理解interrupt()方法

java interrupt()方法只是设置线程的中断标记,当对处于阻塞状态的线程调用interrupt方法时(处于阻塞状态的线程是调用sleep, wait, join 的线程),会抛出InterruptException异常,而这个异常会清除中断标记。因此,根据这两个思路,不同的run()方法设计,会导致不同的结果,下面是示例,并说明了运行了结果和原因 package com.concurr

MPC5748G之spi polling interrupt

开发环境: 硬件:MPC5748G软件:S32 Design Studio for Power Architecture Version 2017.R1外设:W25Q64 spi引脚: PI[6] CS0_2 xxxPE[15] SCLK_2 819PG[15] SOUT_2 xxxPG[14] SIN_2 818 步骤及注意事项: 1.配置好外设及系统时钟2.初始化sp

MPC5748G之can polling interrupt

开发环境: 硬件:MPC5748G软件:S32 Design Studio for Power Architecture Version 2017.R1外设:TPS43331 I2CTJA1043 CAN can引脚: PB0PB1 步骤及注意事项: 1.配置好外设及系统时钟2.初始化can设置1)轮询模式2)中断模式a.需要在中断向量表中配置中断函数b.初始化中断寄存器P

MPC5748G之adc polling interrupt

开发环境: 硬件:MPC5748G软件:S32 Design Studio for Power Architecture Version 2017.R1 adc引脚: PB5 步骤及注意事项: 1.配置好外设及系统时钟2.初始化adc设置1)轮询模式2)中断模式a.需要在中断向量表中配置中断函数b.初始化中断寄存器PSRc.使能adc转换中断 遇到的问题: EOC与ECH在

MPC5748G之i2c polling interrupt

开发环境: 硬件:MPC5748G软件:S32 Design Studio for Power Architecture Version 2017.R1外设:24LC256 I2C引脚: PE8PE9 步骤及注意事项: 1.配置好外设及系统时钟2.初始化I2C设置1)轮询模式2)中断模式a.需要在中断向量表中配置中断函数b.初始化中断寄存器PSRc.使能I2C接收发送中断

MPC5748G之uart polling interrupt

开发环境: 硬件:MPC5748G软件:S32 Design Studio for Power Architecture Version 2017.R1 串口引脚: PC8PC9 步骤及注意事项: 1.配置好外设及系统时钟2.初始化串口设置1)轮询模式2)中断模式a.需要在中断向量表中配置中断函数b.初始化中断寄存器PSRc.使能串口接收发送中断3.然后就可以愉快的开启串口终

imx6ull Enhanced Periodic Interrupt Timer (EPIT)

一、overview EPIT是一个32位的计时器,能够在处理器很少干预的情况下以固定的时间间隔提供精确的中断。软件使能后,EPIT就开始计数。IMX6ULL有2个EPIT定时器。其框图如下所示: 1.1 epit 特性 EPIT具有以下主要特性: •可选择时钟源的32位递减计数器 •12位预分频器,用于对输入时钟进行分频 •可即时编程的计数器值 •可以设置在低功耗和调试模式下,计数器仍

tq2440_External Interrupt Controller

在开始之前整理一下ARM9结构中断建立过程: /* EXCEPTION HANDLER VECTOR TABLE */  ^ DRAM_BASE  HandleUndef # 4  HandleSwi # 4  HandlePrefetch # 4  HandleAbort # 4  HandleReserv # 4  HandleIrq # 4  HandleFiq # 4  小注: 这里

【ARMv7-A】——WFI(wait for interrupt)

文章目录 WFI基本原理使用场景多任务模型注意事项代码实例linux 内核中的 WFI 指令不使用 WFI 指令使用 WFI 指令 WFI WFI 即 Wait for interrupt,常用于低功耗。 WFI (Wait for interrupt) 和 WFE (Wait for event) 是两个让 ARM 核进入 low-power standby 模式的指令,