TI中文支持网
TI专业的中文技术问题搜集分享网站

利用硬中断直接实现核间通信IPC的问题请教,,,,,,(发了N多个帖子都没人搭理我,希望这次能有人帮我解决下这个问题)

Ti论坛的工作人员你们好:

在Sys/bios下面我打算直接操作寄存器来实现核间通信,从下面的数据手册中我们可以看到每个核都对应两个寄存器

下面是我每个核初始化Hwi的地方

查看数据手册我们得知,核间通信对应的时间号是91,现在我打算把它映射到中断13上,上面就是我初始化Hwi的地方。

我程序的大致流程就是核0接收到以太网数据就往核1产生一个中断

那么核1收到中断就在中断函数里面进行清中断操作

那么现在的问题来了,我的从核能进入中断服务函数,但是有两个问题:

1:我查看寄存器(ISR),发现总是INT4被置位,而不是我设想的INT13被置位,这个很重要,因为我的程序要求我必须能够对核间中断进行配置

2:核1执行完中断服务函数后立马报错,,

希望Ti论坛的大神能帮我看看到底是哪里出错了,谢谢

striker Qian:

song xu,

你应该看的是IFR寄存器,

根据手册,ISR 定义:The interrupt set register (ISR) allows you to manually set the maskable interrupts (INT15-INT4) in the interrupt flag register (IFR).

IFR 定义:The interrupt flag register (IFR) contains the status of INT4-INT15 and NMI interrupt.

另外硬中断里不要出现printf和用sysStd配置 的 System_printf ,也不能出现Memory_alloc(on a HeapMem instance) 。

striker

 

song xu2:

回复 striker Qian:

非常感谢你的回答,我把printf屏蔽之后就不会出错了。

但是还有一个问题就是我从核清中断中断那一步屏蔽之后,即:从核不清除中断。

但是我的主核依然能触发从核的中断,这是怎么回事呢?

song xu2:

回复 striker Qian:

现在观察IFR,发现相应的位也没有被置位

Allen35065:

回复 song xu2:

附件是例子,供你参考

song xu2:

回复 Allen35065:

工作人员你好,最后一个问题:

在bios下面我已经实现了核间中断,现在我把断点断到中断服务程序,按照常理这时候我观察相应的中断标志寄存器IFR,相应的位INTn应该会被置位,但是我不知道是不是核间中断这个中断比较特殊?我并不能观察不到,您的理解呢?

赞(0)
未经允许不得转载:TI中文支持网 » 利用硬中断直接实现核间通信IPC的问题请教,,,,,,(发了N多个帖子都没人搭理我,希望这次能有人帮我解决下这个问题)
分享到: 更多 (0)