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应该会被置位,但是我不知道是不是核间中断这个中断比较特殊?我并不能观察不到,您的理解呢?