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

Subversion Repositories lxp32

[/] [lxp32/] [trunk/] [verify/] [lxp32/] [src/] [firmware/] [test016.asm] - Blame information for rev 9

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 ring0_mipt
/*
2
 * Test for temporarily blocked interrupts
3
 */
4
 
5
        lc r100, 0x10000000 // test result output pointer
6
        lc r101, halt
7
        lc r102, failure
8
        lc r103, 0x20000000 // timer: number of pulses (0xFFFFFFFF - infinite)
9
        lc r104, 0x20000004 // timer: delay between pulses (in cycles)
10
 
11
        lc iv0, timer_handler
12
        lc cr, 0x101 // enable interrupt 0 in temporarily blocked state
13
 
14
        lc r32, 0 // interrupt handler call counter
15
        lc r33, 1000 // loop counter
16
        lc r34, loop1
17
        lc r35, loop2
18
 
19
        sw r104, 100
20
        sw r103, 1
21
 
22
loop1:
23
        sub r33, r33, 1
24
        cjmpug r34, r33, 0 // loop1
25
 
26
        lc r33, 1000
27
        mov cr, 1 // unblock interrupt 0
28
 
29
loop2:
30
        sub r33, r33, 1
31
        cjmpug r35, r33, 0 // loop2
32
 
33
// r32 should be 1 by this point
34
        cjmpne r102, r32, 1 // failure
35
        sw r100, 1
36
        jmp r101 // halt
37
 
38
failure:
39
        sw r100, 2
40
 
41
halt:
42
        hlt
43
        jmp r101 // halt
44
 
45
timer_handler:
46
        add r32, r32, 1
47
        iret

powered by: WebSVN 2.1.0

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