英飞凌电子生态圈开启每月之星评选啦!选出最活跃的每月之星Top3!
当前位置:首页 > 说事论飞 > AURIX 单片机专区 > Aurix/Tricore实验分享之四十六: 自定义Trap处理函数

Aurix/Tricore实验分享之四十六: 自定义Trap处理函数

回复主题
积分:1910
等级:专家级
Automan(版主) 发表于 2018-03-31

Tricore的Trap类似于其他处理器的Fault, NMI

Trap跟中断有相似也有差别,


简单讲, Trap跟中断的区别在于:

  1. Trap不能被屏蔽, 这一点跟Cortex M处理器的Fault完全一样子,

  2. Trap使用同Interrupt不同的向量表, 这一点跟Cortex M处理器不同, Cortex M的向量表是在一 起的,

    此外, Tricore的中断向量表与Trap向量表都是可以动态切换的.


请看启动文件:

    /* Load Base Address of Trap Vector Table. */

    __mtcr(CPU_BTV, (uint32)__TRAPTAB(0));


    /* Load Base Address of Interrupt Vector Table. we will do this later in the program */

    __mtcr(CPU_BIV, (uint32)__INTTAB(0));

可以看出CPU_BTV, CPU_BIV分别是Trap与中断的向量表地址寄存器.

您需要登录后才可以回帖 登录|注册
寻找方案
发布方案
发布需求
解决问题
加入我们
关注我们
返回顶部
关闭