OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [sim/] [testsuite/] [d30v-elf/] [tick.s] - Rev 1765

Compare with Previous | Blame | View Log

	.globl _start
	#
	# NOTE:	Registers r10-r11 are reserved for the interrupt handler
	#	while the others can be used by the main loop/start code.
 
_start:		
	# patch the external interrupt handlers entry
	add r1, r0, handler
	ldw r2, @(r1, 0)
	ldw r3, @(r1, 4)
	add r1, r0, 0xfffff138
	stw r2, @(r1, 0)
	stw r3, @(r1, 4)
 
	# enable external interrupts - cr0 == PSW
	mvfsys r2, cr0
	or r2, r0, 0x04000000
	mvtsys cr0, r2
 
 
	# wait for flag to be set
loop:	
	add r2, r0, flag
	ldw r3, @(r2, 0)
	bratzr r3, loop
 
	# clear the flag
	stw r0, @(r2, 0)
 
	add r2, r0, tick
	# putstr
	.long 0x0e000001, 0x00f00000
 
	bra loop
 
	# finished
	add r2, r0, r0 || nop
	.long 0x0e000004, 0x00f00000
 
 
handler:
	jmp real_handler
real_handler:
	add r10, r0, 1
	add r11, r0, flag
	stb r10, @(r11,0)
	reit
 
 
flag:	.long 0
tick:	.ascii "Tick\r\n"
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.