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)

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值