AURIX芯片 Trap详解

本文详细解释了TriCore体系结构中的Trap概念,包括Trap的发生条件、类型(同步、异步、硬件和软件)、向量表的使用以及实际应用中的陷阱定位。重点介绍了如何通过TCN和TIN识别特定故障,并展示了在劳特巴赫实例中的应用方法。
摘要由CSDN通过智能技术生成

1.了解trap

关键词

简写

全称

TCN

Trap Class Number

TIN

Trap Identification Number

Synch

Synchronous

Asynch

Asynchronous

NMI

Non-Maskable Interrupt

BTV

Base Trap Vector Table Pointer

1)Trap发生的条件

Trap是由于诸如不可屏蔽中断(NMI)、指令异常、内存管理异常或非法访问等事件而发生的。Trap总是处于Active状态;它们不能被软件Disable。

2)Trap类型

TriCore体系结构为Trap指定了8个通用Class。每个Class都有自己的Trap处理程序,通过每个条目32字节的Trap向量访问,由硬件定义的TCN号索引。在每个Class中,特定的Trap由一个TIN(Trap Identification Number, TIN)来区分,在执行Trap处理程序的第一条指令之前,这个识别码由硬件加载到寄存器D[15]中。trap处理程序必须对D[15]中的值进行测试和分支,以到达特定TIN的子处理程序。

Trap可以进一步分为同步或异步,以及硬件或软件生成。下表列出了Trap类,总结和分类了每个类中预定义的特定Trap集,然后对它们进行了解释。

TC3xx有八种类型的Trap分别为Class0-Class7,通过TCN标识。每个Class的具体Trap通过TIN标识。确定TCN与TIN就可以确定具体故障。

Synchronous Traps

同步Trap与特定指令的执行或试图执行相关,或者与访问虚拟地址的尝试相关,而访问虚拟地址需要内存管理系统的干预。引起Trap的指令是精确的。

在执行超出该指令之前,Trap会立即被捕获并服务。

Asynchronous Traps

异步Trap与中断类似,因为它们与外部检测到的硬件条件相关联,并向核心发出信号。

不可屏蔽中断(NMI, Non-Maskable Interrupt),是外部事件。异步Trap和中断之间的区别在于,异步Trap是通过Trap向量而不是中断向量路由的。

它们不能被屏蔽,并且不会改变当前CPU的中断优先级编号。

Hardware Traps

硬件Trap是在硬件检测到异常情况时产生的。

在大多数情况下,异常条件与试图执行特定条件相关。例如非法指令Trap、内存保护Trap和数据内存错误Trap。

Software Traps

软件Trap是作为执行系统调用或断言指令的有意结果而产生的。

支持的断言指令为TRAPV (Trap on overflow)和TRAPSV (Trap on sticky overflow)。

系统调用由 SYSCALL 指令生成。

Unrecoverable Traps

不可恢复Trap是指软件无法恢复的Trap;也就是说,引发Trao的任务不能简单地重新启动。

在 TriCore 架构中,FCU (a fatal context Trap)是一个不可恢复的错误。

3)Trap向量表

BTV(Base Trap Vector Table Pointer)包含trap向量表的基址。当一个trap发生时,trap向量表中的入口地址由该trap的trap类生成,左移5位,然后与BTV寄存器的内容对齐。Trap Class的左移导致向量表中各个条目之间的间距为8个words(32字节)。

4)Trap定位

当Trap发生时,由硬件产生一个Trap标识符。trap标识符有两个组成部分:trap类号(TCN),用于索引trap向量表。trap识别号(TIN),它被加载到数据寄存器D[15]中。Trap类号左移5位,与BTV寄存器中的地址对齐,生成Trap处理程序的入口地址。

1、D[15]寄存器记录着TIN号。

2、D[4]寄存器记录着TCN号。异常发生后保存的值,D[4] = (TCN <<16) | TIN。

3、A[11]寄存器保留了函数的返回地址,可以通过A[11]来推测异常发生的函数。

4、Trap = BTV | TCN <<5; 将取得Tarp的入口地址,Trap的入口地址不是固定的。

2.实际使用

1)使用劳特巴赫实例分析

发生Trap会强制跳入Os_Hal_UnhandledExc函数,可以在该函数内打断点。

2)实际应用思路

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车观察侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值