UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
608 Views
Registered: ‎10-12-2018

Debug interrupt on Zynq

Jump to solution

Hi,.

I have a zynq based design, which is planned to use interrupt. The IRQ_F2P pin of the Zynq is active, but my handlers not called.

I want to get a "check list" including the points that I should check to activate the handlers.

Or I want to read the interrupt status register of the Zynq, but I don't know how.

Or I want to break the lowest api level handler function to find my bug, but I don't know where is it. (I think it is somewhere in the xscugic.c)

Tags (2)
0 Kudos
1 Solution

Accepted Solutions
Explorer
Explorer
559 Views
Registered: ‎10-12-2018

Re: Debug interrupt on Zynq

Jump to solution

@sadanan, thank for your reply.

The code is located at ps7_cortexa9_0/libsrc/standalone_v6_5/src/asm_vectors.S in my case. Here is a part of this code:

 

.org 0
.text

.globl _vector_table

.section .vectors
_vector_table:
	B	_boot
	B	Undefined
	B	SVCHandler
	B	PrefetchAbortHandler
	B	DataAbortHandler
	NOP	/* Placeholder for address exception vector*/
	B	IRQHandler
	B	FIQHandler


IRQHandler:					/* IRQ vector handler */

	stmdb	sp!,{r0-r3,r12,lr}		/* state save from compiled code*/
#ifdef __ARM_NEON__
	vpush {d0-d7}
	vpush {d16-d31}
	vmrs r1, FPSCR
	push {r1}
	vmrs r1, FPEXC
	push {r1}
#endif

 I have gone threw an interrupt example lab, and it works, however I cannot break my code at 0x18 neither in IRQHandler. The first point where I can break is the

XScuGic_InterruptHandler in the xscugic_int.c file.

 

0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
569 Views
Registered: ‎10-21-2010

Re: Debug interrupt on Zynq

Jump to solution

Hi @betontalpfa,

You can refer to some of the interrupt examples, that are shipped along with the drivers in SDK. The mss view in SDK should have shortcuts to create applications from these examples.

You can break at address 0x18, which is the exception address for interrupts on ARM v7 cores. This code is in src/arm/cortexa9/gcc/asm_vectors.S, in the standalone BSP

 

Explorer
Explorer
560 Views
Registered: ‎10-12-2018

Re: Debug interrupt on Zynq

Jump to solution

@sadanan, thank for your reply.

The code is located at ps7_cortexa9_0/libsrc/standalone_v6_5/src/asm_vectors.S in my case. Here is a part of this code:

 

.org 0
.text

.globl _vector_table

.section .vectors
_vector_table:
	B	_boot
	B	Undefined
	B	SVCHandler
	B	PrefetchAbortHandler
	B	DataAbortHandler
	NOP	/* Placeholder for address exception vector*/
	B	IRQHandler
	B	FIQHandler


IRQHandler:					/* IRQ vector handler */

	stmdb	sp!,{r0-r3,r12,lr}		/* state save from compiled code*/
#ifdef __ARM_NEON__
	vpush {d0-d7}
	vpush {d16-d31}
	vmrs r1, FPSCR
	push {r1}
	vmrs r1, FPEXC
	push {r1}
#endif

 I have gone threw an interrupt example lab, and it works, however I cannot break my code at 0x18 neither in IRQHandler. The first point where I can break is the

XScuGic_InterruptHandler in the xscugic_int.c file.

 

0 Kudos