各位TI工程师,各位大神好。我在项目中采用IPC中断通知的方式达到核间通信,目前已实现主核core0与其它7个核之间的IPC中断触发响应,我有个问题是:如果我7个从核同时处理完数据向主核core0发送IPC中断,主核core0会不会存在掉中断的现象?还是说会一一响应7个从核发来的中断?,能进中断7次?望解答!
user3604554:
一天过去了,零回复啊!求助啊!!!!!!
Andy Yin1:
取决于你是用哪种方式实现的核间中断,也取决于你的软件实现,如果用写IPCRG寄存器的方式,可以通过其中的scs bit来区分中断源,进入中断没,查询每个比特源置位一一处理;如果用QMSS方式,则也是进入中断后循环处理。
user3604554:
回复 Andy Yin1:
我使用的是IPCRG寄存器的方式,也使用了scs bit 位来区分中断源。我担心的是,7个从核同时操作IPCRG0寄存器的时候,主核会只收到一次中断,因为触发中断是该寄存器的bit0位,7个从核同时操作该位,是触发7次中断还是1次了?望解答。scs bit 位可以区分中断源,与产生中断是无关的吧?也就是说,我收到中断后,如果不清除相应的scs bit 位,也不会再次产生中断吧?是这样的吗?还是scs bit 必须清除,不然一直产生中断?如果scs bit 位产生中断,那7个核同时发中断,使用不同scs bit 来区分中断源,我可以再中断里每次清除一个中断源,而达到响应7次的中断。不知道是不是这样的。
sworder cool:
回复 user3604554:
我也怀疑这样会出错
所以加semaphore吧
用semaphore+ipc万无一失
user3604554:
回复 sworder cool:
semaphore在单核内任务线程通讯我有使用,你说的semaphore+ipc在从核同时向主核发中断时该怎么使用来避免掉中断了,请不吝赐教,说说你的通信流程,谢谢!