URL
https://opencores.org/ocsvn/lxp32/lxp32/trunk
Subversion Repositories lxp32
[/] [lxp32/] [trunk/] [verify/] [lxp32/] [src/] [firmware/] [test010.asm] - Rev 9
Compare with Previous | Blame | View Log
/** This test verifies interrupt handling using a simple timer model*/lc r100, 0x10000000 // test result output pointerlc r101, haltlc r102, failurelc r103, 0x20000000 // timer: number of pulses (0xFFFFFFFF - infinite)lc r104, 0x20000004 // timer: delay between pulses (in cycles)lc iv0, timer_handler0lc iv1, timer_handler1mov cr, 3 // enable interrupts 0 and 1lc r32, 2000 // cycle counterlc r33, cnt_loopmov r34, 0 // interrupt 0 call countermov r35, 0 // interrupt 1 call countersw r104, 100sw r103, 10cnt_loop:sub r32, r32, 1cjmpug r33, r32, 0 // cnt_loopcjmpne r102, r34, 10 // failurecjmpne r102, r35, 4 // failuresw r100, 1jmp r101 // haltfailure:sw r100, 2halt:hltjmp r101 // halttimer_handler0:add r34, r34, 1lc r0, 0x10000004sw r0, r34cjmpne irp, r34, 5 // exit interrupt handler if r34!=5mov cr, 1 // disable interrupt 1irettimer_handler1:add r35, r35, 1// Interrupt 1 has lower priority than interrupt 0 and will be called latercjmpne r102, r34, r35lc r0, 0x10000008sw r0, r35iret
