因为工作需要,最近在调试KEA128的芯片。
在做PIT定时器任务的时候发现,在绑定PIT回调的时候出故障,通过仿真发现每一次调用PIT_SetCallback为PIT通道绑定定时回调函数时,系统跳入default_isr故障。
/*为两组定时通道设置回调函数,划分基本时间片,完成初始化*/
PIT_Init(PIT_CHANNEL0, pPIT_Config0);
PIT_Init(PIT_CHANNEL1, pPIT_Config1);
PIT_SetCallback(PIT_CHANNEL0, PIT0_Task);//绑定回调时出现故障
PIT_SetCallback(PIT_CHANNEL1, PIT1_Task);
故障时仿真停留位置是vectors.c文件下的default_isr函数内,如下如,无法return出来
查看官方文档,发现故障原因是中断函数与中断向量没有关联起来。
想到开始移植底层的时候为了让一些外部定义的回调不报错,屏蔽掉了一些中断向量。于是到isr.h文件中发现,确实是自己关闭了