核间中断示例

sylixos下核间中断例子

核0:

	int core_int_id = 8;
	while1{
		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即可注册核间中断
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值