zyqn-arm软中断设置

所有SGI都是边缘触发的,sgi的灵敏度类型是固定的,不能改变。

软中断初始化流程

1、初始化异常处理

2、初始化中断控制器

3、注册异常处理回调函数到CPU

4、连接软中断信号与注册软中断回调函数

5、使能中断控制器中的软中断中断

6、使能异常处理

复制代码
int initSwIntr(){
	int status;
	Xil_ExceptionInit();
	GicPtr=XScuGic_LookupConfig(GIC_VEC_ID);

	status=XScuGic_CfgInitialize(&ScuGic,GicPtr,GicPtr->CpuBaseAddress);
	if(status!=XST_SUCCESS){
		return XST_FAILURE;
	}

	Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,(void *)&ScuGic);

	status=XScuGic_Connect(&ScuGic,CPU0_SW_INTR,(Xil_ExceptionHandler)cpu0IntrHandler,(void *)&ScuGic);
	if(status!=XST_SUCCESS){
		return XST_FAILURE;
	}

	Xil_ExceptionEnable();

	return XST_SUCCESS;

}

使用时:

例,中断cpu1

复制代码
XScuGic_SoftwareIntr(&ScuGic,CPU1_SW_INTR,XSCUGIC_SPI_CPU1_MASK);

XScuGic_SoftwareIntr(XScuGic *InstancePtr, u32 Int_Id, u32 Cpu_Id)

u32 Int_Id:中断目标的cpu的中断ID。

u32 Cpu_Id:(目的cpu号)Cpu_Id is the list of CPUs to send the interrupt.例如cpu1 XSCUGIC_SPI_CPU1_MASK

cpu0 XSCUGIC_SPI_CPU0_MASK

相关推荐
zjnlswd7 分钟前
C#学习笔记2 刘铁锰
笔记·学习
凯尔萨厮25 分钟前
Git(学习笔记)
笔记·git·学习
芯路行者32 分钟前
4.2 HDLBits —— 时序逻辑电路之计数器
fpga开发·verilog·fpga·hdlbits
蒸蒸yyyyzwd40 分钟前
cpp选手备注秋招 MySQL学习笔记 day8
笔记·学习·求职招聘
Aision_2 小时前
代码安全学习手记(二):SCA 软件成分分析原理与 OWASP Dependency-Check 集成实战
运维·人工智能·学习·安全·web安全·网络安全
是隼人2 小时前
buuctf-pwn bjdctf_2020_babystack2题解 整数溢出(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
孤存5222 小时前
c语言动态内存管理
c语言·开发语言·算法
祖力552 小时前
快速学会数据结构中的链式队列与循环队列
linux·c语言·数据结构·算法
电子云与长程纠缠3 小时前
UE5 Lyra PocketWorld进行3D内容UI预览 - 上
开发语言·学习·3d·ue5·游戏引擎
210Brian3 小时前
STM32学习笔记(六)EXTI外部中断(下)
笔记·stm32·学习