最近一直在用BIOS调doorbell中断的响应程序,我是这样子做的:
1.在.cfg文件中用如下方法申明了中断,通过查找datasheet,知道doorbell中断是一级中断,对应的事件号是20:
然后,我在main函数后面定义了中服函数,myIsr:
然后我在对SRIO配置完毕后,进行了SRIO中断触发,将INTDST_16设置为中断事件:
可是按照如上配置,还是无法接受到doorbell中断,请TI工程师帮我看看哪里有问题?是不是还少配置了什么东西?
Andy Yin1:
hwi params enableInt应该修改为true to enable interrupt,在代码中不需要hwi_enableinterrupt. 其他的没看出什么问题,也有可能是SRIO DIO的问题。参考中断配置:http://processors.wiki.ti.com/index.php/Configuring_Interrupts_on_Keystone_Devices#HWI
你试一下简单的IPC register ISR看看你这个配置是否正确,如果使用IPC Reg ISR产生中断正常,有可能是SRIO DIO的问题。
Wilson Wan:
回复 Andy Yin1:
您好:
1.我按照您说的,在.cfg文件里面把hwiParams.enableInt=true 改为ture to enable interrupt,结果就报错了:
2.原来例程里面不是SYS/BIOS的,利用IPC进行中断的配置,我试过, 是可以收到doorbell中断;
3.请问SRIO DIO是什么???
Andy Yin1:
回复 Wilson Wan:
1 我是说修改为hwiParams.enableInt=true;
2 我想知道按照你这种HWI的配置方式如果产生IPC reg的中断是否可行;如果可行则说明你的HWI配置没有问题;
Wilson Wan:
回复 Andy Yin1:
1.我之前是在论坛上TI工程师提供的SRIO例程上进行测试的,是非SYS/BIOS的,我自己通过一个函数给自己发Doorbell中断,然后能够收到。在这个程序中,发出doorbell中断的函数,以及中断映射、配置都是通过IPC寄存器进行的。
2.不知道您说的IPC reg中断是什么意思?是我上面说的意思吗?
3.我在例程的基础上,中断部分把有关IPC的配置都删了,只保留了SRIO中断触发部分,但就是进入不了中断;
4, asm文件还需要吗?