TC3XX平台系列 - Trap System解读

本文深入探讨了TC3XX平台的NMI(Non Maskable Interrupt)中断,包括NMI的定义、触发机制,特别是SBC中断和TC3XX中断的细节。介绍了NMI在代码实现中的关键步骤,如中断向量表的注册,并提供了实例测试,强调了在中断处理中清除中断请求标志位的重要性。
摘要由CSDN通过智能技术生成

1.问题引入

正如图 1.1和图 1.2所示,SBC的INT引脚是连接至与TC3xx的ESR1引脚,用于触发NMI中断,那么TC3xx的NMI中断怎么触发呢?
在这里插入图片描述
图 1.1 中断引脚描述
在这里插入图片描述
图 1.2 开发板原理图

2.问题分析

2.1什么是NMI

NMI(Non Maskable Interrupt) ,不可屏蔽中断,产生这个中断的时候,表示系统发生了致命的错误。

2.2NMI触发机制

2.2.1SBC中断

中断默认都是开启的,都是不能失能的,引起事件如下:

  • 状态机事件
    - 状态切换不成功,例如因Vuc电流超过指定阈值导致切换Sleep失败
    - 成功退出SLEEP状态,进入WAKE状态
  • 看门狗喂狗失败,前提错误计数阈值大于2,且当前错误计数没超过错误计数阈值
  • 错误引脚监控,SYSPCFG1配置使能和允许恢复时间,在恢复时间内,会请求中断

    图 2.1 错误引脚说明
  • 监控block,主要是输出电源过压欠压过温故障,部分示意图如图 1.4所示
    • Vpre欠压
    • Vuc过温警告
    • Vcom过压、欠压、过温警告、过温关闭、短路
    • Vref欠压、过温警告、过载、短路
    • Vtracker1/2过压、欠压、过温警告、短路
    • Vstandby过载
    • Bandgap监测:两个Bandgap之间的偏差大于4%
      在这里插入图片描述
      图 2.2 中断示意图
  • Spi错误
  • ABIST自检完成
  • 保护配置下双bit错误

2.2.2TC3XX中断

NMI中断属于Trap的class 7,Tricore有自己的Trap Generation,以TC3XX为例,在参考手册的9.2章节有详细描述,注意,复位后会向所有CPU发送一次Trap。
从图 1.5可以看出:
-TRAP触发源有两个,一个是主动设置TRAPSET寄存器,一个是Trap Trigger,Trap Trigger可能是ESRx引脚的跳变,或者是Safety Alarm

  • Trap状态可以在status寄存器体现,可通过写TRAPCLR寄存器清除状态位
  • 需要使能TRAPDIS.CPU,以及有TRAP触发事件,才会通知到CPU
  • 在这里插入图片描述
  • 图 2.3 CPU Trap框图

3.解决问题

3.1TC3XX NMI实现

正如章节2所说,Non-Maskab

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值