你好,我们采用asm里绑定srio中断的时候没有问题,但是用int32_t RegisterInterrupt(uint32_t event , uint32_t vector , CSL_IntcEventHandler isr)这个函数绑定的时候,老不对,经常进几次就程序不对了,但是用int32_t RegisterInterrupt(uint32_t event , uint32_t vector , CSL_IntcEventHandler isr)这个绑定GPIO和定时器的时候(此时没有用asm文件)是好的
Shine:
能进中断说明绑定应该没问题,几次程序不对具体是指什么?是跑飞了?SRIO中断发生了吗?检查一下是不是堆栈溢出了?
Ryan BL:
asm绑定的中断,会跳转到你所绑定的isr,要求isr是使用interrupt修饰的;
RegisterInterrupt貌似是CSL的中断管理方式,默认的是所有的asm里面绑定的CSL统一的中断管理服务程序(以isr修饰的),那么挂接的用户isr就不应该再以interrupt修饰了。好像是这样的,我记得同时提供了一个plugin的接口,支持更新asm里面的代码,可以把默认的统一CSL中断管理程序替换为用户自己的直接的interrupt修饰的isr;
对照检查之吧。