cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
334 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
Highlighted
324 Views
Registered: ‎07-23-2019

do you clear the interrupt flag in the ISR?

0 Kudos
Highlighted
Visitor
Visitor
316 Views
Registered: ‎09-06-2019

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
Highlighted
313 Views
Registered: ‎07-23-2019

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

0 Kudos
Highlighted
Visitor
Visitor
292 Views
Registered: ‎09-06-2019

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