PYNQ PL 中断61# IRQ_F2P nFIQ直接接btn测试

在这里插入图片描述
在这里插入图片描述
constrain

##Buttons

set_property -dict { PACKAGE_PIN D19   IOSTANDARD LVCMOS33 } [get_ports { btn }]; #IO_L4P_T0_35 Sch=btn[0]#set_property -dict { PACKAGE_PIN D20   IOSTANDARD LVCMOS33 } [get_ports { btn[1] }]; #IO_L4N_T0_35 Sch=btn[1]
set_property -dict { PACKAGE_PIN D20   IOSTANDARD LVCMOS33 } [get_ports { btn1 }]; #IO_L9N_T1_DQS_AD3N_35 Sch=btn[2]
 

sdk


#include <stdio.h>
#include "xscugic.h"
#include "xil_exception.h"
#include "xgpiops.h"
#include "xil_printf.h"
XGpioPs Gpio;

#define KEY_INT_ID 61
#define CPU_BASEADDR		XPAR_SCUGIC_CPU_BASEADDR

XScuGic ScuGic;
void irq_handler(void * data) {
	u32 id;
	id = XScuGic_ReadReg(CPU_BASEADDR, XSCUGIC_INT_ACK_OFFSET);
	id = id & XSCUGIC_ACK_INTID_MASK;
	xil_printf("irq ocurr,id:%d\n", id);
	XScuGic_WriteReg(CPU_BASEADDR, XSCUGIC_EOI_OFFSET, id);

}

void fiq_request(void) {
	Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_FIQ_INT,
			(Xil_ExceptionHandler) irq_handler, (void *) 3);

	Xil_ExceptionEnableMask(XIL_EXCEPTION_ALL);
}

void normal_irq_request() {

	XScuGic_Config* pScuGicCfg;
	pScuGicCfg = XScuGic_LookupConfig(XPAR_SCUGIC_SINGLE_DEVICE_ID);
	XScuGic_CfgInitialize(&ScuGic, pScuGicCfg, pScuGicCfg->CpuBaseAddress);
	XScuGic_Connect(&ScuGic, KEY_INT_ID, (Xil_ExceptionHandler) irq_handler, 0);
	XScuGic_SetPriorityTriggerType(&ScuGic, KEY_INT_ID, 0xA0, 1);
	XScuGic_Enable(&ScuGic, KEY_INT_ID);

	Xil_ExceptionInit();
	Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,
			(Xil_ExceptionHandler) irq_handler, &ScuGic);

	Xil_ExceptionEnable();


}

int main(void) {
	xil_printf("PL int test\n\r");
	normal_irq_request();
	fiq_request();
	while (1);
	return 0;
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值