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: 
Visitor wangjz@csu
Visitor
158 Views
Registered: ‎09-06-2019

ZYNQ7000 Software Restart

Hello guys,I'm using zynq7000 and transfer data by PSEmac based on lwip1.4.1 .But the app could restart sometimes and irregularly.I add print in my app,it always occured after a Interrupt when restart.I use SCU Timer Intr and EMC Intr.

I confirm that the reboot is not because of the watchdog.And I check the stack ,it is not overflow.

It is so confused.

Do you have any suggsstion?

0 Kudos
4 Replies
148 Views
Registered: ‎07-23-2019

Re: ZYNQ7000 Software Restart

do you clear the interrupt flag in the ISR?

0 Kudos
Visitor wangjz@csu
Visitor
140 Views
Registered: ‎09-06-2019

Re: ZYNQ7000 Software Restart

Thank you for your reply!

The intr flag has been clear.

In scu timer intr handler ,it use  XScuTimer_ClearInterruptStatus(TimerInstance).

And in XEmacPs_IntrHandler it also clear the register 

 

0 Kudos
137 Views
Registered: ‎07-23-2019

Re: ZYNQ7000 Software Restart

Any other interrupt enabled you don't have ISR for?

0 Kudos
Visitor wangjz@csu
Visitor
116 Views
Registered: ‎09-06-2019

Re: ZYNQ7000 Software Restart

I just use SCUTIMER and EMAIntr,both of them connect to ScuGic.

Now ,i figure out that the asm_vectors.S "Undefined" could casue the boot.

 

The vector as follows :

00100000 <_vector_table>:

.globl _vector_table

.section .vectors
_vector_table:
	B	_boot
  100000:	ea000045 	b	10011c <_boot>
	B	Undefined
  100004:	ea000025 	b	1000a0 <Undefined>
	B	SVCHandler
  100008:	ea000028 	b	1000b0 <SVCHandler>
	B	PrefetchAbortHandler
  10000c:	ea000038 	b	1000f4 <PrefetchAbortHandler>
	B	DataAbortHandler
  100010:	ea00002f 	b	1000d4 <DataAbortHandler>
	NOP	/* Placeholder for address exception vector*/
  100014:	e320f000 	nop	{0}
	B	IRQHandler
  100018:	ea000000 	b	100020 <IRQHandler>
	B	FIQHandler
  10001c:	ea00000f 	b	100060 <FIQHandler>

And the Undefined as follows:

Undefined:					/* Undefined handler */
	stmdb	sp!,{r0-r3,r12,lr}		/* state save from compiled code */
  1000a0:	e92d500f 	push	{r0, r1, r2, r3, ip, lr}

	ldmia	sp!,{r0-r3,r12,lr}		/* state restore from compiled code */
  1000a4:	e8bd500f 	pop	{r0, r1, r2, r3, ip, lr}

	b	_prestart
  1000a8:	ea00001b 	b	10011c <_boot>

	movs	pc, lr
  1000ac:	e1b0f00e 	movs	pc, lr

It could "b" to boot,so the app will restart.

But what reasons could cause "Undefined"?

0 Kudos