annotate packages/hal/mn10300/arch/current/src/vectors.S @ 1777:c16341b1bac6 default tip

* Added execute permissions to files missed in conversion from CVS
author alexs
date Mon, 12 Oct 2009 02:26:09 +0100
parents d2c90368aeef
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
1 ##=============================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
2 ##
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
3 ## vectors.S
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
4 ##
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
5 ## MN10300 exception vectors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
6 ##
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
7 ##=============================================================================
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
8 #####ECOSGPLCOPYRIGHTBEGIN####
210
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
9 ## -------------------------------------------
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
10 ## This file is part of eCos, the Embedded Configurable Operating System.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
11 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
12 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
13 ## eCos is free software; you can redistribute it and/or modify it under
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
14 ## the terms of the GNU General Public License as published by the Free
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
15 ## Software Foundation; either version 2 or (at your option) any later version.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
16 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
17 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
18 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
19 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
20 ## for more details.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
21 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
22 ## You should have received a copy of the GNU General Public License along
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
23 ## with eCos; if not, write to the Free Software Foundation, Inc.,
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
24 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
25 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
26 ## As a special exception, if other files instantiate templates or use macros
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
27 ## or inline functions from this file, or you compile this file and link it
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
28 ## with other works to produce a work based on this file, this file does not
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
29 ## by itself cause the resulting work to be covered by the GNU General Public
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
30 ## License. However the source code for this file must still be made available
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
31 ## in accordance with section (3) of the GNU General Public License.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
32 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
33 ## This exception does not invalidate any other reasons why a work based on
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
34 ## this file might be covered by the GNU General Public License.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
35 ##
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
36 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
37 ## at http://sources.redhat.com/ecos/ecos-license/
d2c90368aeef Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents: 208
diff changeset
38 ## -------------------------------------------
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
39 #####ECOSGPLCOPYRIGHTEND####
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
40 ##=============================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 #######DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 ##
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43 ## Author(s): nickg
174
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
44 ## Contributors: nickg, dmoseley, dhowells
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
45 ## Date: 1997-10-16
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
46 ## Purpose: MN10300 exception vectors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
47 ## Description: This file defines the code placed into the exception
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
48 ## vectors. It also contains the first level default VSRs
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49 ## that save and restore state for both exceptions and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
50 ## interrupts.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
51 ##
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
52 ######DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53 ##
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
54 ##=============================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
55
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
56 #include <pkgconf/hal.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
57
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
58 #ifdef CYGPKG_REDBOOT
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
59 #include <pkgconf/redboot.h>
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
60 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
61
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62 #ifdef CYGPKG_KERNEL
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64 #include <pkgconf/kernel.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
68 #include <cyg/hal/arch.inc>
174
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
69 #include <cyg/hal/basetype.h>
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
70
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents: 191
diff changeset
74 // .file "vectors.S"
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
76 #ifdef CYGPKG_CYGMON
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
77 ##-----------------------------------------------------------------------------
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
78 ## Macros for Stack handling when running Cygmon
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
79
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
80 .macro hal_cygmon_switch_app_stack
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
81 #
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
82 # Switch to interrupt stack to handle exception
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
83 #
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
84
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
85 # First, save some scratch registers
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
86 mov a2(a2_save)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
87 mov a3,(a3_save)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
88
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
89 # Copy the exception frame
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
90 mov __cygmon_interrupt_stack-8,a2
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
91 mov (sp),a3 // Copy over the saved EPSW
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
92 mov a3,(a2)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
93 mov (4,sp),a3 // Copy over the saved PC
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
94 mov a3,(4,a2)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
95
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
96 # Save the pre-exception sp in the register image
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
97 add -4,a2 # space for SP
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
98 mov sp,a3
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
99 add 8,a3 # adjust for exception frame
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
100 mov a3,(a2)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
101
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
102 # Actually switch the stack
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
103 mov a2,sp
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
104
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
105 # Now, restore the scratch registers
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
106 mov (a2_save),a2
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
107 mov (a3_save),a3
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
108 .endm
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
109
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
110 .macro hal_cygmon_restore_app_stack
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
111 // For cygmon we are switching stacks immediately on exception.
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
112 // We must wait until the very end before restoring the original stack.
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
113
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
114 # Save some scratch registers
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
115 mov a2,(a2_save)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
116 mov a3,(a3_save)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
117
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
118 # We need to restore the application stack pointer, but we also
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
119 # need to restore the exception frame.
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
120 mov (sp),a2
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
121 add 4,sp // remove saved sp
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
122 add -8,a2 // adjust for exception frame
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
123
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
124 mov (sp),a3 // Copy the saved EPSW
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
125 mov a3,(a2)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
126 mov (4,sp),a3 // Copy the saved PC
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
127 mov a3,(4,a2)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
128 mov a2,sp // Restore the frame-adjusted SP
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
129
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
130 # Restore the scratch registers
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
131 mov (a2_save),a2
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
132 mov (a3_save),a3
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
133 .endm
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
134
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
135 #endif // CYGPKG_CYGMON
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
136
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137 ##-----------------------------------------------------------------------------
174
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
138 #define EXCEPTION_HANDLER(VECTOR,NAME,HANDLER) .org VECTOR; \
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
139 NAME##_vector: \
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
140 jmp HANDLER
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142 .section ".vectors","ax"
174
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
143
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144 .globl reset_vector
174
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
145
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
146 .org 0x000
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
147 reset_vector:
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148 # Reset vector
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149 jmp _start
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
150
174
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
151 EXCEPTION_HANDLER(0x008, nmi ,__nmi)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
152 EXCEPTION_HANDLER(0x010, trap ,__trap)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
153 EXCEPTION_HANDLER(0x100, ins_tlb_miss_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
154 EXCEPTION_HANDLER(0x108, data_tlb_miss_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
155 EXCEPTION_HANDLER(0x110, ins_access_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
156 EXCEPTION_HANDLER(0x118, data_access_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
157 EXCEPTION_HANDLER(0x160, priv_ins_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
158 EXCEPTION_HANDLER(0x168, unimpl_ins_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
159 EXCEPTION_HANDLER(0x170, unimpl_ext_ins_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
160 EXCEPTION_HANDLER(0x180, misalignment_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
161 EXCEPTION_HANDLER(0x188, bus_error ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
162 EXCEPTION_HANDLER(0x190, illegal_ins_access_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
163 EXCEPTION_HANDLER(0x198, illegal_data_access_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
164 EXCEPTION_HANDLER(0x1a0, iospace_ins_access_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
165 EXCEPTION_HANDLER(0x1a8, priv_space_ins_access_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
166 EXCEPTION_HANDLER(0x1b0, priv_space_data_access_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
167 EXCEPTION_HANDLER(0x1b8, data_space_ins_access_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
168 EXCEPTION_HANDLER(0x1c0, fpu_disabled_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
169 EXCEPTION_HANDLER(0x1c8, fpu_unimplemented_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
170 EXCEPTION_HANDLER(0x1d0, fpu_operation_exception ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
171 EXCEPTION_HANDLER(0x200, double_fault ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
172 EXCEPTION_HANDLER(0x240, wdt_overflow ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
173 EXCEPTION_HANDLER(0x248, nmi_pin ,__nmi)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
174 EXCEPTION_HANDLER(0x280, maskable_int0 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
175 EXCEPTION_HANDLER(0x288, maskable_int1 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
176 EXCEPTION_HANDLER(0x290, maskable_int2 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
177 EXCEPTION_HANDLER(0x298, maskable_int3 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
178 EXCEPTION_HANDLER(0x2a0, maskable_int4 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
179 EXCEPTION_HANDLER(0x2a8, maskable_int5 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
180 EXCEPTION_HANDLER(0x2b0, maskable_int6 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
181
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
182 // We need to put the syscall handler at 0x300
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
183 // For cygmon, we will use the am33 "syscall 0" as the syscall trap.
174
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
184 EXCEPTION_HANDLER(0x300, syscall0 ,__nmi)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
185 EXCEPTION_HANDLER(0x308, syscall1 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
186 EXCEPTION_HANDLER(0x310, syscall2 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
187 EXCEPTION_HANDLER(0x318, syscall3 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
188 EXCEPTION_HANDLER(0x320, syscall4 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
189 EXCEPTION_HANDLER(0x328, syscall5 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
190 EXCEPTION_HANDLER(0x330, syscall6 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
191 EXCEPTION_HANDLER(0x338, syscall7 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
192 EXCEPTION_HANDLER(0x340, syscall8 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
193 EXCEPTION_HANDLER(0x348, syscall9 ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
194 EXCEPTION_HANDLER(0x350, syscalla ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
195 EXCEPTION_HANDLER(0x358, syscallb ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
196 EXCEPTION_HANDLER(0x360, syscallc ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
197 EXCEPTION_HANDLER(0x368, syscalld ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
198 EXCEPTION_HANDLER(0x370, syscalle ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
199 EXCEPTION_HANDLER(0x378, syscallf ,__unknown)
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
200
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
201 ##-----------------------------------------------------------------------------
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
202 ## unknown interrupt or exception vector
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
203 __unknown:
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
204 #ifdef CYG_HAL_HANDLE_UNKNOWN_INT_DEFINED
38892b97b685 Merge from eCos master repository on 2001-07-28-00:17:32-BST
jlarmour
parents: 149
diff changeset
205 hal_handle_unknown_int
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
206 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
207
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209 ## NMI vector
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
210
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
211 .globl __nmi
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212 __nmi:
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
213 #ifdef CYGPKG_CYGMON
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
214 hal_cygmon_switch_app_stack
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
215 #else
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 add -4,sp # space for SP
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
217 #endif
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
218 hal_cpu_save_all # push all registers
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
219 mov (_hal_vsr_table+28),a0
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220 jmp (a0)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 ## Trap vector
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225 .globl __trap
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 __trap:
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
227 #ifdef CYGPKG_CYGMON
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
228 add -4,sp # space for PSW
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
229 hal_cygmon_switch_app_stack
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
230 #else
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231 add -8,sp # space for SP and PSW
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
232 #endif
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
233 hal_cpu_save_all # push all registers
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 mov (_hal_vsr_table+32),a0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235 jmp (a0)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
237 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
238 ## Macro to define a hardware VSR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
239
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
240 .macro hardware_vector name
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
241 .globl __hardware_vector_\name
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242 __hardware_vector_\name:
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
243 #ifdef CYGPKG_CYGMON
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
244 hal_cygmon_switch_app_stack
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
245 #else
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
246 add -4,sp # space for SP
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
247 #endif
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
248 hal_cpu_save_all
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249 mov \name,d0 # d0 = vector id
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
250 mov d0,(0,sp) # save in dummy stack loc
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 mov _hal_vsr_table,a0 # a0 = vsr table
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 add \name<<2,a0 # a0 = &required vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 mov (a0),a0 # a0 = required vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
254 jmp (a0) # go there
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
255 .endm
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 ## Hardware Vectors. These are pointed to by the registers in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259 ## mn10300_interrupt_vectors and must be in the range 0x4000XXXX.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261 hardware_vector 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
262 hardware_vector 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
263 hardware_vector 2
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264 hardware_vector 3
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265 hardware_vector 4
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
266 hardware_vector 5
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267 hardware_vector 6
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
268
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
269 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
270 ## Startup code
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272 .text
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
273
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
274 .globl _start
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
275 _start:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
276
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
277 #ifdef HAL_EARLY_INIT
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
278 HAL_EARLY_INIT
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
279 #endif
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
280 # set up stack
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
281
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
282 mov __interrupt_stack,a0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
283 sub 8,a0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
284 mov a0,sp
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
285
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
286 # Initialize hardware
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
287 hal_cpu_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
288 hal_mmu_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
289 hal_memc_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
290 hal_diag_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
291 hal_intc_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
292 hal_cache_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
293 hal_timer_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
294 hal_mon_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
295
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
296 #ifdef CYG_HAL_STARTUP_ROM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
297
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
298 # Copy data from ROM to RAM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
299
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
300 mov __rom_data_start,a0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
301 mov __ram_data_end,a1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
302 mov __ram_data_start,a2
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
303
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
304 cmp a2,a1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
305 beq 8f
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
306 1:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
307 movbu (a0),d0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
308 movbu d0,(a2)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
309 inc a0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
310 inc a2
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
311 cmp a2,a1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
312 bne 1b
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
313 8:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
314
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
315 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
316
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
317 # Clear BSS
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
318 mov __bss_start,a0
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
319 mov __bss_end,a1
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
320
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
321 cmp a0,a1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
322 beq 8f
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
323 clr d0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
324 1:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
325 movbu d0,(a0)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
326 inc a0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
327 cmp a0,a1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
328 bne 1b
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
329 8:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
330
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
331 # Call variant and platform HAL
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
332 # initialization routines.
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
333
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
334 .extern _hal_variant_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
335 call _hal_variant_init,[],0
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
336
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
337 .extern _hal_platform_init
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
338 call _hal_platform_init,[],0
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
339
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
340 # Call constructors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
341
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
342 .extern _cyg_hal_invoke_constructors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
343 call _cyg_hal_invoke_constructors,[],0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
344
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
345 #ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
346 .extern _initialize_stub
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
347 call _initialize_stub,[],0
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
348 #endif
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
349
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
350 #ifdef CYGDBG_HAL_MIPS_DEBUG_GDB_CTRLC_SUPPORT
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
351 .extern hal_ctrlc_isr_init
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
352 call hal_ctrlc_isr_init,[],0
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
353 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
354
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
355 # Call cyg_start
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
356 clr d0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
357 mov d0,(4,sp)
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
358
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
359 .extern _cyg_start
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
360 call _cyg_start,[],0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
361
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
362 9:
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
363 bra 9b # Loop if we return
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
364
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
365 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
366 ## The following macros are defined depending on whether the HAL is configured
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
367 ## to support the kernel or not.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
368
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
369 #ifdef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
370
149
52c99470ec11 Merge from eCos master repository on 2001-01-19-06:43:03-GMT
jlarmour
parents: 143
diff changeset
371 .extern _cyg_scheduler_sched_lock
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
372
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
373 # Increment the scheduler lock
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
374
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
375 .macro increment_sched_lock reg=d0
149
52c99470ec11 Merge from eCos master repository on 2001-01-19-06:43:03-GMT
jlarmour
parents: 143
diff changeset
376 mov (_cyg_scheduler_sched_lock),\reg
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
377 inc \reg
149
52c99470ec11 Merge from eCos master repository on 2001-01-19-06:43:03-GMT
jlarmour
parents: 143
diff changeset
378 mov \reg,(_cyg_scheduler_sched_lock)
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
379 .endm
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
380
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
381 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
382
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
383 .macro increment_sched_lock reg=d0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
384 .endm
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
385
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
386 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
387
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
388 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
389 ## Default interrupt VSR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
390
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
391 .text
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
392 .globl __default_interrupt_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
393 __default_interrupt_vsr:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
394
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
395 # We come here with all the registers pushed
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
396 # onto the stack.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
397
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
398 hal_diag_intr_start
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
399
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
400 increment_sched_lock
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
401
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
402 #if defined(CYGPKG_CYGMON)
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
403 // For Cygmon, we saved this back when we originally switched stacks.
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
404 mov (sp),a2 # A2 = saved thread state
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
405 #elif defined(CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK)
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
406 # Increment interrupt nesting counter
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
407 mov __interrupt_stack,a0 # A0 = interrupt stack top
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
408 mov sp,a2 # A2 = SP
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
409 cmp __interrupt_stack_base,a2 # compare with base of stack
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
410 blt 1f # if lt switch to int stack
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
411 cmp a0,a2 # compare sp with stack top
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
412 ble 8f # if le already on istack
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
413 1:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
414 mov a0,sp # switch to new SP
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
415 8:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
416 movm [a2],(sp) # save old SP
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
417
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
418 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
419 mov sp,a2 # A2 = saved thread state
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
420 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
421
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
422 # Here A2 -> saved thread state on the threads own
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
423 # stack. We will be executing either on the same stack
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
424 # or on the interrupt stack, depending on config options.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
425
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
426 hal_intc_decode d3,a3,d0
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
427
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
428 # Here D3 contains the table byte offset of the vector to
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
429 # call.
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
430
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
431 #if defined(CYGPKG_KERNEL_INSTRUMENT) && defined(CYGDBG_KERNEL_INSTRUMENT_INTR)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
432
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
433 # Call cyg_instrument to record that this interrupt is being raised.
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
434
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
435 .extern _cyg_instrument
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
436 add -16,sp # make space for return link + args
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
437 mov 0x0301,d0 # d0 = type = INTR,RAISE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
438 mov (0,a2),d1 # d1 = arg1 = vector
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
439 mov d3,(12,sp) # (12,sp) = arg2 = table offset
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
440 calls _cyg_instrument # call instrumentation
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
441 add 16,sp # pop space
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
442
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
443 #endif
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
444
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
445 #ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
446 .extern _cyg_hal_gdb_isr
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
447 add -16,sp # make space for return link + args
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
448 mov (0,a2),d0 # d0 = vector
76
435cced73e2f eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents: 66
diff changeset
449 mov (SAVED_CONTEXT_PC_OFFSET,a2),d1 # d1 = pc
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
450 calls _cyg_hal_gdb_isr # call GDB isr function
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
451 cmp 0x00,d0 # Call ISR proper?
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
452 beq 2f # (d0 is 0 when skipping
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
453 # to avoid DSR call)
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
454 add 16,sp # pop space
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
455 #endif
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
456
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
457 #ifdef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
458
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
459 # To allow nested interrupts, we set the IE bit. We do
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
460 # not touch the IPL bits, so only higher priority interrupts
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
461 # will be nested on top of us. Also, new interrupts will not
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
462 # be delivered until the ISR calls
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
463 # Cyg_Interrupt::acknowledge_interrupt(). At some future point
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
464 # we may want to do the ack stuff here to allow immediate nesting.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
465
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
466 or 0x0800,psw
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
467
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
468 #endif
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
469 #if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT)
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
470
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
471 # If we have Ctrl-C support enabled, save a pointer to the
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
472 # saved CPU state here so we can plant a breakpoint there if
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
473 # this is a ^C.
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
474
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
475 .extern _hal_saved_interrupt_state
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
476 mov a2,(_hal_saved_interrupt_state)
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
477
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
478 #endif
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
479
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
480 mov _hal_interrupt_handlers,a0 # a0 = isr table
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
481 mov (d3,a0),a0 # a0 = isr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
482
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
483 mov _hal_interrupt_data,a1 # a1 = data table
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
484 mov (d3,a1),d1 # d1 = isr data
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
485
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
486 mov (0,a2),d0 # d0 = vector. (d3 is...
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
487 # ...adjusted for table reads)
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
488
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
489 add -16,sp # make space for return link
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
490
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
491 calls (a0) # call isr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
492
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
493 # on return d0 bit 1 will indicate whether a DSR is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
494 # to be posted. Pass this together with a pointer to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
495 # the interrupt object we have just used to the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
496 # interrupt tidy up routine.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
497
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
498 # D3 is defined to be saved across procedure calls, and
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
499 # should still contain the vector byte index. Similarly,
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
500 # A2 should still point to the saved machine state.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
501
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
502 #ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
503 # If interrupt was caused by GDB, the ISR call above
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
504 # is skipped by jumping here.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
505 2:
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
506 #endif
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
507
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
508 #if defined(CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK) && !defined(CYGPKG_CYGMON)
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
509
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
510 # If we are returning from the last nested interrupt, move back
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
511 # to the thread stack. interrupt_end() must be called on the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
512 # thread stack since it potentially causes a context switch.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
513
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
514 add 16,sp # pop call frame from int stack
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
515 movm (sp),[a3] # pop old sp
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
516 mov a3,sp # put in SP
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
517
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
518 add -16,sp # make call frame for call
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
519
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
520 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
521
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
522 #ifdef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
523
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
524 # We only need to call _interrupt_end() when there is a kernel
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
525 # present to do any tidying up.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
526
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
527 # Using the vector offset in D3, get the interrupt object pointer
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
528 # into D1.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
529 mov _hal_interrupt_objects,a0 # a0 = object table
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
530 mov (d3,a0),d1 # d1 = object
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
531
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
532 # Even when this is not the last nested interrupt, we must call
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
533 # _interrupt_end() to post the DSR and decrement the scheduler
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
534 # lock.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
535
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
536 mov a2,(12,sp) # arg3 = saved state.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
537
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
538 calls _interrupt_end # call interrupt end fn
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
539 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
540
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
541 add 16,sp # pop return link
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
542
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
543 # show_interrupts
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
544
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
545 hal_diag_restore
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
546
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
547 hal_cpu_load_all
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
548 #ifdef CYGPKG_CYGMON
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
549 hal_cygmon_restore_app_stack
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
550 #else
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
551 add 4,sp
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
552 #endif
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
553 rti # and return
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
554
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
555 ##-----------------------------------------------------------------------------
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
556 ## Execute pending DSRs on the interrupt stack with interrupts enabled.
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
557 ## Note: this can only be called from code running on a thread stack
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
558
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
559 #ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
560 .extern _cyg_interrupt_call_pending_DSRs
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
561 .global _hal_interrupt_stack_call_pending_DSRs
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
562
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
563 _hal_interrupt_stack_call_pending_DSRs:
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
564 movm [d2,a2],(sp) # save some work regs
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
565 mov __interrupt_stack,a0 # interrupt stack pointer
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
566 mov sp,a2 # save current SP
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
567 mov a0,sp # set SP to interrupt stack
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
568 hal_cpu_get_psw d2 # save PSW
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
569 hal_cpu_int_enable # enable interrupts
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
570
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
571 # Call kernel code to invoke DSRs.
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
572 calls _cyg_interrupt_call_pending_DSRs
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
573
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
574 # On return the old SP in a2 and the old PSW in d2 will
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
575 # have been preserved by the calling conventions.
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
576
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
577 hal_cpu_int_merge d2 # Restore previous PSW
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
578 mov a2,sp # restore old SP
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
579 movm (sp),[d2,a2] # Retrieve old work regs
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
580 ret [],0 # and return
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
581
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
582 #endif
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
583
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
584 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
585 ## Default NMI VSR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
586
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
587 .globl _cyg_hal_exception_handler
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
588
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
589 .text
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
590 .globl __default_nmi_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
591 __default_nmi_vsr:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
592
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
593 # We come here with all the registers saved
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
594 # on the stack.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
595
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
596 #ifdef CYG_HAL_DIAG_EXCPT_END
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
597 hal_diag_excpt_start
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
598 #endif
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
599
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
600 # Decode the cause of the NMI and cancel all the bits in all
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
601 # the registers. We need to clear any bits set in the ISR and
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
602 # then clear any bits set in the NMICR. Note that we can only
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
603 # access the ISR if the DCR:DE bit is set.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
604
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
605 movhu (NMICR),d0 # D0 = NMI Control register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
606
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
607 movhu (DCR),d1 # D1 = Debug Control Register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
608 mov d1,d2 # D2 = copy of DCR
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
609 movhu (ISR),d3 # D3 = Interrupt Status Register
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
610
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
611 or DCR_DE,d1 # Set DE bit
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
612 movhu d1,(DCR)
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
613
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
614 movhu d3,(ISR) # clear ISR bits
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
615
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
616 movhu d2,(DCR) # restore DCR to original value
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
617
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
618 movhu d0,(NMICR) # clear NMI bits
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
619 and 0x7,d0 # LS 3 bits only
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
620
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
621 mov hal_lsbit_table,a0
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
622 movbu (d0,a0),d1 # D1 = NMI code
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
623 ## 0 = NMI
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
624 ## 1 = Watchdog
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
625 ## 2 = System Error
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
626
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
627 add 9,d1 # offset into exception number space
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
628
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
629 #if defined(CYGPKG_CYGMON) || defined(CYGSEM_REDBOOT_BSP_SYSCALLS)
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
630 # Check to see if this was a syscall.
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
631 # If so, set d1 appropriately
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
632 #define TBR 0xC0000024
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
633 mov (TBR), d0
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
634 and 0x00FFFFFF, d0
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
635 cmp 0x300, d0
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
636 bne 0f
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
637
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
638 # This was apparently a syscall.
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
639 mov SIGSYSCALL, d1
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
640
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
641 0:
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
642 #endif
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
643 hal_cpu_clear_nmid
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
644
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
645 mov d1,(sp) # save initial vector in spare save slot
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
646
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
647 mov sp,a1 # a1 = saved state
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
648
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
649 mov a1,d0 # d0 = arg1 = saved state
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
650
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
651 add -16,sp # return link + args
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
652 mov d3,d1 # d1 = arg2 = ISR value
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
653
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
654 calls _cyg_hal_exception_handler # call C code
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
655
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
656 add 16,sp # pop args
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
657
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
658 #ifdef CYG_HAL_DIAG_EXCPT_END
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
659 hal_diag_excpt_end
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
660 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
661
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
662 hal_cpu_load_all
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
663
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
664 #ifdef CYGPKG_CYGMON
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
665 hal_cygmon_restore_app_stack
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
666 #else
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
667 add 4,sp
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
668 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
669
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
670 rti
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
671
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
672 .globl hal_lsbit_table
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
673 hal_lsbit_table:
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
674 .byte 0, 0, 1, 0
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
675 .byte 2, 0, 1, 0
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
676 .byte 3, 0, 1, 0
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
677 .byte 2, 0, 1, 0
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
678
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
679 #ifdef CYGPKG_CYGMON
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
680 .section ".bss"
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
681 d0_save:
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
682 .long 0
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
683 d1_save:
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
684 .long 0
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
685 d2_save:
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
686 .long 0
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
687 d3_save:
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
688 .long 0
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
689 a0_save:
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
690 .long 0
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
691 a1_save:
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
692 .long 0
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
693 a2_save:
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
694 .long 0
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
695 a3_save:
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
696 .long 0
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
697 sp_save:
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
698 .long 0
115
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
699 #endif
6ed91473a1cd Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents: 76
diff changeset
700
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
701 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
702 ## Default TRAP VSR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
703
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
704 .text
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
705 .globl __default_trap_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
706 __default_trap_vsr:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
707
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
708 #ifdef CYG_HAL_DIAG_EXCPT_END
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
709 hal_diag_excpt_start
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
710 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
711
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
712 # We come here with all the registers saved
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
713 # on the stack.
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
714 mov 8,d1
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
715 mov d1,(sp) # set the VSR vector number
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
716 mov sp,a1 # a1 = saved state
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
717 mov a1,d0 # d0 = arg1 = saved state
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
718
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
719 add -16,sp # return link + arg
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
720 mov 3,d1 # d1 = arg2 = ISR value (3 == TRAP trap)
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents: 0
diff changeset
721 calls _cyg_hal_exception_handler # call C code
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
722 add 16,sp # pop args
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
723
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
724 #ifdef CYG_HAL_DIAG_EXCPT_END
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
725 hal_diag_excpt_end
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
726 #endif
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
727 hal_cpu_load_all
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
728 #ifdef CYGPKG_CYGMON
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
729 hal_cygmon_restore_app_stack
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
730 add 4,sp
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
731 #else
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 174
diff changeset
732 add 8,sp
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
733 #endif
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
734 rets
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
735
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
736 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
737 ## VSR table. The VSRs pointed to by this table are called from the stubs
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
738 ## connected to the hardware.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
739
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
740 #ifndef CYG_HAL_MN10300_VSR_TABLE_DEFINED
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
741
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
742 .data
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
743
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
744 .globl _hal_vsr_table
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
745 _hal_vsr_table:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
746 .long __default_interrupt_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
747 .long __default_interrupt_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
748 .long __default_interrupt_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
749 .long __default_interrupt_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
750 .long __default_interrupt_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
751 .long __default_interrupt_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
752 .long __default_interrupt_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
753 .long __default_nmi_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
754 .long __default_trap_vsr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
755
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
756 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
757 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
758 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
759
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
760 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
761 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
762 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
763 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
764 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
765 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
766 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
767 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
768 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
769 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
770 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
771 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
772 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
773 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
774 .long __default_nmi_vsr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
775 .long __default_nmi_vsr
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
776 #endif
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
777
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
778 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
779 ## Interrupt tables
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
780
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
781 .data
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
782
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
783 .extern _hal_default_isr
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
784
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
785 .globl _hal_interrupt_handlers
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
786 _hal_interrupt_handlers:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
787 .rept CYG_ISR_TABLE_SIZE
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
788 .long _hal_default_isr
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
789 .endr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
790
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
791 .globl _hal_interrupt_data
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
792 _hal_interrupt_data:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
793 .rept CYG_ISR_TABLE_SIZE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
794 .long 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
795 .endr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
796
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
797 .globl _hal_interrupt_objects
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
798 _hal_interrupt_objects:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
799 .rept CYG_ISR_TABLE_SIZE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
800 .long 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
801 .endr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
802
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
803
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
804 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
805 ## Temporary interrupt stack
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
806
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
807 .section ".bss"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
808
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
809 .balign 16
8
ece80412419a Merge from eCos master repository on 1999-05-21-22:05:54-BST
jlarmour
parents: 2
diff changeset
810 .global _cyg_interrupt_stack_base
ece80412419a Merge from eCos master repository on 1999-05-21-22:05:54-BST
jlarmour
parents: 2
diff changeset
811 _cyg_interrupt_stack_base:
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
812 __interrupt_stack_base:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
813 .rept CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
814 .byte 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
815 .endr
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
816 .balign 16
8
ece80412419a Merge from eCos master repository on 1999-05-21-22:05:54-BST
jlarmour
parents: 2
diff changeset
817 .global _cyg_interrupt_stack
ece80412419a Merge from eCos master repository on 1999-05-21-22:05:54-BST
jlarmour
parents: 2
diff changeset
818 _cyg_interrupt_stack:
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
819 __interrupt_stack:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
820
143
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
821 #ifdef CYGPKG_CYGMON
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
822 .balign 16
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
823 .global __cygmon_interrupt_stack_base
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
824 __cygmon_interrupt_stack_base:
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
825 .rept CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
826 .byte 0
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
827 .endr
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
828 .balign 16
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
829 .global __cygmon_interrupt_stack
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
830 __cygmon_interrupt_stack:
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
831 #endif
6b5f480c6929 Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents: 119
diff changeset
832
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
833 .long 0,0,0,0,0,0,0,0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
834
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
835 ##-----------------------------------------------------------------------------
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
836
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
837 .data
30
641b639be825 Merge from eCos master repository on 1999-08-16-22:01:37-BST
jlarmour
parents: 8
diff changeset
838 hal_diag_data
0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
839
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
840 ##-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
841 ## end of vectors.S
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
842