sylixos下核间中断例子
核0:
int core_int_id = 8;
while (1) {
bspMpInt(1, core_int_id); //向核1发送中断号为8的核间中断
sleep(1);
}
核1:
#define __SYLIXOS_KERNEL //一定要加
#include "SylixOS.h"
/*
* arm中核间中断的编号: 0-15自由使用
*/
int core_int_id = 8;
/*
* 核1收到中断号为4的核间中断执行以下函数
*/
void core_int_fun(VOID *pa) {
UINT8 *ptmp = (VOID *)pa;
_PrintFormat("value : %d\r\n", *ptmp);
}
void fun(){
PVOID pa = 0x7f000000;
API_InterVectorConnect(core_int_id,
(PINT_SVR_ROUTINE)core_int_fun,
(PVOID)pa,
"soft_isr_4");
API_InterVectorSetPriority(core_int_id, 1);
API_InterVectorEnable(core_int_id);
}
在main中调用fun即可注册核间中断