在OMAP138开发中,用PRU控制SPI发送DSP处理好的数据,同时,PRU接收SPI数据后触发ARM中断;ARM处理完后,通知PRU控制SPI把数据发出。现在,碰到一个问题:在CCS5下仿真,通过ARM加载DSP和PRU程序,三个核各自运行程序,可以实现DSP的数据通过PRU自动上报,PRU接收的数据可以中断ARM,处理后,ARM触发PRU发送出去;但是,把DSP/ARM程序下载到NOR FLASH片内,由FLASH启动运行,DSP的数据可通过PRU自动上报,PRU接收到数据并通过GPO输出通知ARM,但是ARM不响应GPIO中断???
试了2种方法:1.通过PRU 中断控制器,即SYS34->channel2->host2中断ARM(写R31寄存器);2.通过GPO(写R30寄存器)输出,由外部FPGA环回到GPIO7[15],ARM置GPIObank7中断。
目前,可以确定的是,PRU接收了数据,并触发了中断(给ARM),但ARM没响应。不知道为什么,在CCS仿真可以?
请诸位大侠帮忙分析分析,谢谢
jing li1:
补充说明:
OMAP138的BANK7中断只给PRU使用;
CPU速率200MHz,SPI速率2MHz;
jing li1:
可以确定的是ARM中断不响应。
奇怪的是,在CCS5下,ARM中断正常,下载到芯片就不行?是否与gel有关?
哪位大侠能给个成功的ARM中断例程,谢谢。
jing li1:
回复 jing li1:
中断用的是StarterWare 01_10_04例程。
jing li1:
哎,怎么没人理呢?
感觉跟137 timer问题的那哥们有点类似,都是从NOR FLASH启动,二次搬移,仿真没问题,从NOR FLASH启动中断不响应。
本人也试过TIMER0中断,仿真正常,从NOR FLASH启动后,影响主程序while循环。
jing li1:
自己做的板子,legacy NOR boo,UBL小于16kB,UBL中pll0/pll1/ddr与gel设置一样,ckockout输出测试一样。实在不明白为什么在仿真下可以中断,下载到ARM后无法进中断???
Jack Wu3:
可以去找广州创龙的OMAPL138 PRU例程看看,他们的板子资料很丰富,有视频教程。
jing li1:
回复 Jack Wu3:
现在不是PRU的问题,而是Arm中断问题:仿真正常,下载到片内norflash启动,中断不响应
Tony Tang:
回复 jing li1:
是不是GPIO模块没有使能?
你可以在板子boot后,不加gel文件连上仿真器查看寄存器看问题出在哪?
Tony Tang:
回复 jing li1:
jing li1legacy NOR boo
好奇问一下为什么用legacy boot? 虽然与这个问题无关。
jing li1:
回复 Tony Tang:
GPIObank已经使能,上、下沿触发都试过,就是不行。
您说的不加gel看寄存器,主要看哪些寄存器?gpio、中断,还有哪些?