英飞凌TC264之外部中断

一.外部中断说明:
1.256个向量第一个也就是第0号的中断向量无效.仅用来占位置.所以一共有255个向量,但是要占用256个向量的位置
2.向量表以优先级别排序数字越小优先级别越低,与arm,k60相反
3每个向量32 Byte,也就是8个word.如果中断Handler非常短,可以直接放在这32Byte的空间.一般是放跳转指令跳转到真正的中断Handler.(Tricore 1.6的中断向量可以选择32还是8 Byte, Tricore 1.3不能选择,只能32 Byte).
4.如果中断Handle超过了32Byte也放在向量表,显然后面的向量会被覆盖.如果被覆盖的向量是空的无问题.如果非空出现问题由程序员负责编译工具不检查这点!
5.发生中断后硬件自动保存Upper CSA.如需保存LowerCSA.需由程序员自己写指令来保存与恢复.
6.有4个中断向量留给软件.只能软件触发.方便RTOS设计,如上几篇贴子写的FreeRTOS就是利用了其中一个软件中断来实现延迟中断进行任务调度的效果.
7.中断不一定由CPU来响应对于TC1782,.还可能是由PCP来响应对于多核的器件还可由其它核来响应.某些中断必须由某个特定的中断master(CPU或者PCP)来响

二.如何开启外部中断
在这里插入图片描述
也就是说只能开启4个外部中断,且每组内不能重复。
GPIO外部中断配置:

/* GPIO外部中断   中断服务函数  中断号(cpu0,cpu1,DMA)  优先级*/
IFX_INTERRUPT(PIN_INT0_IRQHandler, PIN_INT0_VECTABNUM, PIN_INT0_PRIORITY);
IFX_INTERRUPT(PIN_INT1_IRQHandler, PIN_INT1_VECTABNUM, PIN_INT1_PRIORITY);
IFX_INTERRUPT(PIN_INT2_IRQHandler, PIN_INT2_VECTABNUM, PIN_INT2_PRIORITY);
IFX_INTERRUPT(PIN_INT3_IRQHandler, PIN_INT3_VECTABNUM, PIN_INT3_PRIORITY);

中断服务函数随便写
中断号里要选择用cpu0,cpu1,DMA的其中一个
优先级也要配置好1-255 数字越大优先级越高

中断服务函数:

void PIN_INT0_IRQHandler(void)
{
}

初始化外部中断函数:

// 	*  参数说明:pin      : 管脚标号    lq_gpio.h中定义
//   mode     : GPIO 模式   lq_gpio.h中的宏定义中选择*	
void PIN_Exti(GPIO_Name_t pin, IfxPort_InputMode mode)
{
}

完成这些就可以开启外部中断了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值