annotate packages/hal/mn10300/arch/current/include/hal_intr.h @ 0:3111d98ba7b3 ecos-v1_1-release

Initial commit of eCos version 1.1
author jlarmour
date Tue, 11 May 1999 11:16:07 +0000
parents
children 443894e2e912
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 #ifndef CYGONCE_HAL_HAL_INTR_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
2 #define CYGONCE_HAL_HAL_INTR_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
3
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 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
6 // hal_intr.h
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
7 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
8 // HAL Interrupt and clock support
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
9 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
10 //=============================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
11 //####COPYRIGHTBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
12 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
13 // -------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
14 // The contents of this file are subject to the Cygnus eCos Public License
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
15 // Version 1.0 (the "License"); you may not use this file except in
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
16 // compliance with the License. You may obtain a copy of the License at
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
17 // http://sourceware.cygnus.com/ecos
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
18 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
19 // Software distributed under the License is distributed on an "AS IS"
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
20 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
21 // License for the specific language governing rights and limitations under
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
22 // the License.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
23 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
24 // The Original Code is eCos - Embedded Cygnus Operating System, released
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
25 // September 30, 1998.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
26 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
27 // The Initial Developer of the Original Code is Cygnus. Portions created
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
28 // by Cygnus are Copyright (C) 1998 Cygnus Solutions. All Rights Reserved.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
29 // -------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
30 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
31 //####COPYRIGHTEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
32 //=============================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
33 //#####DESCRIPTIONBEGIN####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
34 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
35 // Author(s): nickg
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
36 // Contributors: nickg
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
37 // Date: 1998-02-17
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
38 // Purpose: Define Interrupt support
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
39 // Description: The macros defined here provide the HAL APIs for handling
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
40 // interrupts and the clock.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
41 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
42 // Usage:
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
43 // #include <cyg/hal/hal_intr.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
44 // ...
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
45 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
46 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
47 //####DESCRIPTIONEND####
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
48 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
49 //=============================================================================
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
50
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
51 #include <cyg/infra/cyg_type.h>
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
52
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
53 #include <pkgconf/hal.h>
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
57 // The MN10300 has a somewhat complex interrupt structure. Besides the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
58 // reset and NMI vectors there are seven maskable interrupt vectors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
59 // which must point to code in the 64k starting at 0x40000000. There
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
60 // are also 25 Interrupt control groups, each of which can have 4
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
61 // interrupt lines attached, for a theoretical total of 100 interrupts
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
62 // (!). Some of these are dedicated to specific devices, other to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
63 // external pins, and others are not connected to anything, resulting
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
64 // in only 45 that can actually be delivered. Each control group may
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
65 // be assigned one of seven interrupt levels, and is delivered to the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
66 // corresponding vector. Software can then use a register to determine
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
67 // the delivering group and detect from there which interrupt has been
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
68 // delivered.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
69 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
70 // The approach we will adopt at present is for the code attached to
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
71 // each vector to save state and jump via a table to a VSR. The
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
72 // default VSR will fully decode the delivered interrupt into a table
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
73 // of isr/data/object entries. VSR replacement will operate on the
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
74 // first level indirection table rather than the hardware
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
75 // vectors. This is the fastest mechanism, however it needs 100*3*4 +
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
76 // 7*4 = 1228 bytes for the tables.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
77 //
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
78
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
79 //-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
80 // Interrupt vectors.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
81
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
82 // The level-specific hardware vectors
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
83 #define CYG_VECTOR_0 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
84 #define CYG_VECTOR_1 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
85 #define CYG_VECTOR_2 2
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
86 #define CYG_VECTOR_3 3
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
87 #define CYG_VECTOR_4 4
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
88 #define CYG_VECTOR_5 5
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
89 #define CYG_VECTOR_6 6
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
90 #define CYG_VECTOR_NMI 7
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
91 #define CYG_VECTOR_TRAP 8
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
92
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
93 #define CYG_VSR_MIN 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
94 #define CYG_VSR_MAX 8
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
95 #define CYG_VSR_COUNT 9
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
96
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
97 #define CYG_EXCEPTION_MIN 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
98 #define CYG_EXCEPTION_MAX 3
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
99 #define CYG_EXCEPTION_COUNT 4
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
100
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
101
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
102 #if defined(CYG_HAL_MN10300_MN103000)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
103
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
104 // The decoded interrupts
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
105
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
106 #define CYG_VECTOR_NMIRQ 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
107 #define CYG_VECTOR_WATCHDOG 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
108 #define CYG_VECTOR_SYSTEM_ERROR 2
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
109 #define CYG_VECTOR_RESERVED_3 3
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
110
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
111 #define CYG_VECTOR_RESERVED_4 4
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
112 #define CYG_VECTOR_RESERVED_5 5
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
113 #define CYG_VECTOR_RESERVED_6 6
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
114 #define CYG_VECTOR_RESERVED_7 7
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
115
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
116 #define CYG_VECTOR_TIMER_0 8
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
117 #define CYG_VECTOR_TIMER_1 9
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
118 #define CYG_VECTOR_TIMER_2 10
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
119 #define CYG_VECTOR_TIMER_3 11
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
120
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
121 #define CYG_VECTOR_TIMER_4 12
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
122 #define CYG_VECTOR_TIMER_5 13
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
123 #define CYG_VECTOR_TIMER_6 14
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
124 #define CYG_VECTOR_TIMER_7 15
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
125
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
126 #define CYG_VECTOR_TIMER_8 16
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
127 #define CYG_VECTOR_TIMER_8_COMPARE_A 17
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
128 #define CYG_VECTOR_TIMER_8_COMPARE_B 18
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
129 #define CYG_VECTOR_RESERVED_19 19
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
130
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
131 #define CYG_VECTOR_TIMER_9 20
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
132 #define CYG_VECTOR_TIMER_9_COMPARE_A 21
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
133 #define CYG_VECTOR_TIMER_9_COMPARE_B 22
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
134 #define CYG_VECTOR_RESERVED_23 23
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
135
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
136 #define CYG_VECTOR_TIMER_10 24
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
137 #define CYG_VECTOR_TIMER_10_COMPARE_A 25
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
138 #define CYG_VECTOR_TIMER_10_COMPARE_B 26
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
139 #define CYG_VECTOR_TIMER_10_COMPARE_C 27
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
140
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
141 #define CYG_VECTOR_TIMER_11 28
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
142 #define CYG_VECTOR_TIMER_11_COMPARE_A 29
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
143 #define CYG_VECTOR_TIMER_11_COMPARE_B 30
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
144 #define CYG_VECTOR_TIMER_11_COMPARE_C 31
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
145
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
146 #define CYG_VECTOR_TIMER_12 32
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
147 #define CYG_VECTOR_TIMER_12_COMPARE_A 33
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
148 #define CYG_VECTOR_TIMER_12_COMPARE_B 34
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
149 #define CYG_VECTOR_TIMER_12_COMPARE_C 35
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
150
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
151 #define CYG_VECTOR_TIMER_11_COMPARE_D 36
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
152 #define CYG_VECTOR_TIMER_12_COMPARE_D 37
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
153 #define CYG_VECTOR_RESERVED_38 38
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
154 #define CYG_VECTOR_RESERVED_39 39
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
155
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
156 #define CYG_VECTOR_DMA0 40
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
157 #define CYG_VECTOR_RESERVED_41 41
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
158 #define CYG_VECTOR_RESERVED_42 42
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
159 #define CYG_VECTOR_RESERVED_43 43
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
160
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
161 #define CYG_VECTOR_DMA1 44
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
162 #define CYG_VECTOR_RESERVED_45 45
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
163 #define CYG_VECTOR_RESERVED_46 46
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
164 #define CYG_VECTOR_RESERVED_47 47
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
165
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
166 #define CYG_VECTOR_DMA2 48
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
167 #define CYG_VECTOR_RESERVED_49 49
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
168 #define CYG_VECTOR_RESERVED_50 50
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
169 #define CYG_VECTOR_RESERVED_51 51
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
170
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
171 #define CYG_VECTOR_DMA3 52
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
172 #define CYG_VECTOR_RESERVED_53 53
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
173 #define CYG_VECTOR_RESERVED_54 54
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
174 #define CYG_VECTOR_RESERVED_55 55
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
175
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
176 #define CYG_VECTOR_SERIAL_0_RX 56
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
177 #define CYG_VECTOR_SERIAL_0_TX 57
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
178 #define CYG_VECTOR_RESERVED_58 58
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
179 #define CYG_VECTOR_RESERVED_59 59
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
180
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
181 #define CYG_VECTOR_SERIAL_1_RX 60
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
182 #define CYG_VECTOR_SERIAL_1_TX 61
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
183 #define CYG_VECTOR_RESERVED_62 62
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
184 #define CYG_VECTOR_RESERVED_63 63
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
185
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
186 #define CYG_VECTOR_EXTERNAL_0 64
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
187 #define CYG_VECTOR_RESERVED_65 65
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
188 #define CYG_VECTOR_RESERVED_66 66
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
189 #define CYG_VECTOR_RESERVED_67 67
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
190
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
191 #define CYG_VECTOR_EXTERNAL_1 68
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
192 #define CYG_VECTOR_RESERVED_69 69
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
193 #define CYG_VECTOR_RESERVED_70 70
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
194 #define CYG_VECTOR_RESERVED_71 71
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
195
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
196 #define CYG_VECTOR_EXTERNAL_2 72
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
197 #define CYG_VECTOR_RESERVED_73 73
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
198 #define CYG_VECTOR_RESERVED_74 74
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
199 #define CYG_VECTOR_RESERVED_75 75
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
200
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
201 #define CYG_VECTOR_EXTERNAL_3 76
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
202 #define CYG_VECTOR_RESERVED_77 77
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
203 #define CYG_VECTOR_RESERVED_78 78
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
204 #define CYG_VECTOR_RESERVED_79 79
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
205
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
206 #define CYG_VECTOR_EXTERNAL_4 80
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
207 #define CYG_VECTOR_RESERVED_81 81
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
208 #define CYG_VECTOR_RESERVED_82 82
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
209 #define CYG_VECTOR_RESERVED_83 83
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 #define CYG_VECTOR_EXTERNAL_5 84
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
212 #define CYG_VECTOR_RESERVED_85 85
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
213 #define CYG_VECTOR_RESERVED_86 86
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
214 #define CYG_VECTOR_RESERVED_87 87
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
215
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
216 #define CYG_VECTOR_EXTERNAL_6 88
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
217 #define CYG_VECTOR_RESERVED_89 89
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
218 #define CYG_VECTOR_RESERVED_90 90
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
219 #define CYG_VECTOR_RESERVED_91 91
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
220
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
221 #define CYG_VECTOR_EXTERNAL_7 92
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
222 #define CYG_VECTOR_RESERVED_93 93
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
223 #define CYG_VECTOR_RESERVED_94 94
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
224 #define CYG_VECTOR_RESERVED_95 95
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
225
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
226 #define CYG_VECTOR_AD_CONVERSION 96
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
227 #define CYG_VECTOR_RESERVED_97 97
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
228 #define CYG_VECTOR_RESERVED_98 98
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
229 #define CYG_VECTOR_RESERVED_99 99
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
230
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
231 #define CYG_ISR_MIN 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
232 #define CYG_ISR_MAX 99
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
233
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
234 #define CYG_ISR_COUNT 100
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
235
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
236 #elif defined(CYG_HAL_MN10300_MN103002)
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 // The decoded interrupts
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 #define CYG_VECTOR_NMIRQ 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
241 #define CYG_VECTOR_WATCHDOG 1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
242 #define CYG_VECTOR_SYSTEM_ERROR 2
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
243 #define CYG_VECTOR_RESERVED_3 3
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
244
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
245 #define CYG_VECTOR_RESERVED_4 4
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
246 #define CYG_VECTOR_RESERVED_5 5
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
247 #define CYG_VECTOR_RESERVED_6 6
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
248 #define CYG_VECTOR_RESERVED_7 7
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
249
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
250 #define CYG_VECTOR_TIMER_0 8
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
251 #define CYG_VECTOR_RESERVED_9 9
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
252 #define CYG_VECTOR_RESERVED_10 10
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
253 #define CYG_VECTOR_RESERVED_11 11
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
254
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
255 #define CYG_VECTOR_TIMER_1 12
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
256 #define CYG_VECTOR_RESERVED_13 13
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
257 #define CYG_VECTOR_RESERVED_14 14
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
258 #define CYG_VECTOR_RESERVED_15 15
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
259
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
260 #define CYG_VECTOR_TIMER_2 16
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
261 #define CYG_VECTOR_RESERVED_17 17
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
262 #define CYG_VECTOR_RESERVED_18 18
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
263 #define CYG_VECTOR_RESERVED_19 19
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
264
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
265 #define CYG_VECTOR_TIMER_3 20
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
266 #define CYG_VECTOR_RESERVED_21 21
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
267 #define CYG_VECTOR_RESERVED_22 22
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
268 #define CYG_VECTOR_RESERVED_23 23
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 #define CYG_VECTOR_TIMER_4 24
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
271 #define CYG_VECTOR_RESERVED_25 25
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
272 #define CYG_VECTOR_RESERVED_26 26
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
273 #define CYG_VECTOR_RESERVED_27 27
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
274
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
275 #define CYG_VECTOR_TIMER_5 28
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
276 #define CYG_VECTOR_RESERVED_29 29
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
277 #define CYG_VECTOR_RESERVED_30 30
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
278 #define CYG_VECTOR_RESERVED_31 31
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
279
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
280 #define CYG_VECTOR_TIMER_6 32
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
281 #define CYG_VECTOR_RESERVED_33 33
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
282 #define CYG_VECTOR_RESERVED_34 34
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
283 #define CYG_VECTOR_RESERVED_35 35
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
284
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
285 #define CYG_VECTOR_TIMER_6_COMPARE_A 36
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
286 #define CYG_VECTOR_RESERVED_37 37
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
287 #define CYG_VECTOR_RESERVED_38 38
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
288 #define CYG_VECTOR_RESERVED_39 39
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
289
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
290 #define CYG_VECTOR_TIMER_6_COMPARE_B 40
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
291 #define CYG_VECTOR_RESERVED_41 41
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
292 #define CYG_VECTOR_RESERVED_42 42
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
293 #define CYG_VECTOR_RESERVED_43 43
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
294
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
295 #define CYG_VECTOR_RESERVED_44 44
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
296 #define CYG_VECTOR_RESERVED_45 45
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
297 #define CYG_VECTOR_RESERVED_46 46
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
298 #define CYG_VECTOR_RESERVED_47 47
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 #define CYG_VECTOR_DMA0 48
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
301 #define CYG_VECTOR_RESERVED_49 49
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
302 #define CYG_VECTOR_RESERVED_50 50
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
303 #define CYG_VECTOR_RESERVED_51 51
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
304
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
305 #define CYG_VECTOR_DMA1 52
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
306 #define CYG_VECTOR_RESERVED_53 53
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
307 #define CYG_VECTOR_RESERVED_54 54
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
308 #define CYG_VECTOR_RESERVED_55 55
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
309
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
310 #define CYG_VECTOR_DMA2 56
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
311 #define CYG_VECTOR_RESERVED_57 57
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
312 #define CYG_VECTOR_RESERVED_58 58
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
313 #define CYG_VECTOR_RESERVED_59 59
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 #define CYG_VECTOR_DMA3 60
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
316 #define CYG_VECTOR_RESERVED_61 61
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
317 #define CYG_VECTOR_RESERVED_62 62
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
318 #define CYG_VECTOR_RESERVED_63 63
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
319
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
320 #define CYG_VECTOR_SERIAL_0_RX 64
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
321 #define CYG_VECTOR_RESERVED_65 65
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
322 #define CYG_VECTOR_RESERVED_66 66
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
323 #define CYG_VECTOR_RESERVED_67 67
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
324
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
325 #define CYG_VECTOR_SERIAL_0_TX 68
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
326 #define CYG_VECTOR_RESERVED_69 69
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
327 #define CYG_VECTOR_RESERVED_70 70
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
328 #define CYG_VECTOR_RESERVED_71 71
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
329
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
330 #define CYG_VECTOR_SERIAL_1_RX 72
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
331 #define CYG_VECTOR_RESERVED_73 73
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
332 #define CYG_VECTOR_RESERVED_74 74
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
333 #define CYG_VECTOR_RESERVED_75 75
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
334
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
335 #define CYG_VECTOR_SERIAL_1_TX 76
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
336 #define CYG_VECTOR_RESERVED_77 77
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
337 #define CYG_VECTOR_RESERVED_78 78
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
338 #define CYG_VECTOR_RESERVED_79 79
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 #define CYG_VECTOR_SERIAL_2_RX 80
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
341 #define CYG_VECTOR_RESERVED_81 81
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
342 #define CYG_VECTOR_RESERVED_82 82
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
343 #define CYG_VECTOR_RESERVED_83 83
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
344
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
345 #define CYG_VECTOR_SERIAL_2_TX 84
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
346 #define CYG_VECTOR_RESERVED_85 85
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
347 #define CYG_VECTOR_RESERVED_86 86
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
348 #define CYG_VECTOR_RESERVED_87 87
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
349
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
350 #define CYG_VECTOR_RESERVED_88 88
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
351 #define CYG_VECTOR_RESERVED_89 89
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
352 #define CYG_VECTOR_RESERVED_90 90
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
353 #define CYG_VECTOR_RESERVED_91 91
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
354
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
355 #define CYG_VECTOR_EXTERNAL_0 92
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
356 #define CYG_VECTOR_RESERVED_93 93
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
357 #define CYG_VECTOR_RESERVED_94 94
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
358 #define CYG_VECTOR_RESERVED_95 95
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
359
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
360 #define CYG_VECTOR_EXTERNAL_1 96
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
361 #define CYG_VECTOR_RESERVED_97 97
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
362 #define CYG_VECTOR_RESERVED_98 98
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
363 #define CYG_VECTOR_RESERVED_99 99
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 #define CYG_VECTOR_EXTERNAL_2 100
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
366 #define CYG_VECTOR_RESERVED_101 101
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
367 #define CYG_VECTOR_RESERVED_102 102
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
368 #define CYG_VECTOR_RESERVED_103 103
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
369
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
370 #define CYG_VECTOR_EXTERNAL_3 104
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
371 #define CYG_VECTOR_RESERVED_105 105
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
372 #define CYG_VECTOR_RESERVED_106 106
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
373 #define CYG_VECTOR_RESERVED_107 107
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 #define CYG_VECTOR_EXTERNAL_4 108
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
376 #define CYG_VECTOR_RESERVED_109 109
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
377 #define CYG_VECTOR_RESERVED_110 110
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
378 #define CYG_VECTOR_RESERVED_111 111
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
379
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
380 #define CYG_VECTOR_EXTERNAL_5 112
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
381 #define CYG_VECTOR_RESERVED_113 113
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
382 #define CYG_VECTOR_RESERVED_114 114
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
383 #define CYG_VECTOR_RESERVED_115 115
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
384
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
385 #define CYG_VECTOR_EXTERNAL_6 116
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
386 #define CYG_VECTOR_RESERVED_117 117
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
387 #define CYG_VECTOR_RESERVED_118 118
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
388 #define CYG_VECTOR_RESERVED_119 119
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
389
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
390 #define CYG_VECTOR_EXTERNAL_7 120
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
391 #define CYG_VECTOR_RESERVED_121 121
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
392 #define CYG_VECTOR_RESERVED_122 122
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
393 #define CYG_VECTOR_RESERVED_123 123
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 #define CYG_ISR_MIN 0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
396 #define CYG_ISR_MAX 123
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
397
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
398 #define CYG_ISR_COUNT (3+((CYG_ISR_MAX+1)/4))
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
399
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
400 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
401
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
402 // The vector used by the Real time clock
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
403
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
404 #ifdef CYG_HAL_MN10300_SIM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
405 # define CYG_VECTOR_RTC CYG_VECTOR_TIMER_5
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
406 //# define CYG_VECTOR_RTC CYG_VECTOR_EXTERNAL_1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
407 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
408 # ifdef CYG_HAL_MN10300_MN103000
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
409 # define CYG_VECTOR_RTC CYG_VECTOR_TIMER_8
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
410 # endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
411 # ifdef CYG_HAL_MN10300_MN103002
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
412 # define CYG_VECTOR_RTC CYG_VECTOR_TIMER_5
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
413 # endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
414 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
415
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
416 //-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
417 // Timer control registers.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
418
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
419 // On simulator we use simulated external interrupt
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
420
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
421 #if defined(CYG_HAL_MN10300_MN103002)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
422
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
423 // On the mn103002 we use timers 4 and 5
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
424
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
425 #define TIMER4_CR 0x340010a0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
426 #define TIMER4_BR 0x34001090
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
427 #define TIMER4_MD 0x34001080
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
428
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
429 #define TIMER5_CR 0x340010a2
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
430 #define TIMER5_BR 0x34001092
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
431 #define TIMER5_MD 0x34001082
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 #define TIMER_CR TIMER5_CR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
434 #define TIMER_BR TIMER5_BR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
435 #define TIMER_MD TIMER5_MD
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
436
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
437 #define TIMER0_MD 0x34001000
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
438 #define TIMER0_BR 0x34001010
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
439 #define TIMER0_CR 0x34001020
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
440
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
441 #elif defined(CYG_HAL_MN10300_MN103000)
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 // on the mn103000 we use timers 4 and 5
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
444 #define TIMER4_CR 0x340010a0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
445 #define TIMER4_BR 0x34001090
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
446 #define TIMER4_MD 0x34001080
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
447
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
448 #define TIMER5_CR 0x340010a2
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
449 #define TIMER5_BR 0x34001092
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
450 #define TIMER5_MD 0x34001082
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
451
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
452 #define TIMER_CR TIMER5_CR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
453 #define TIMER_BR TIMER5_BR
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
454 #define TIMER_MD TIMER5_MD
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
455
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
456 #define TIMER0_MD 0x34001000
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
457 #define TIMER0_BR 0x34001010
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
458 #define TIMER0_CR 0x34001020
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
459
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
460 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
461
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
462 //-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
463 // Static data used by HAL
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
464
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
465 // ISR tables
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
466 externC volatile CYG_ADDRESS hal_interrupt_handlers[CYG_ISR_COUNT];
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
467 externC volatile CYG_ADDRWORD hal_interrupt_data[CYG_ISR_COUNT];
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
468 externC volatile CYG_ADDRESS hal_interrupt_objects[CYG_ISR_COUNT];
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
469
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
470 // VSR table
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
471 externC volatile CYG_ADDRESS hal_vsr_table[CYG_VSR_COUNT];
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
472
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
473 // MN10300 interrupt control registers, mapped by linker script.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
474 externC volatile cyg_uint16 mn10300_interrupt_control[0x300/2];
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
475
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
476 //-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
477 // Interrupt state storage
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
478
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
479 typedef cyg_uint32 CYG_INTERRUPT_STATE;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
480
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
481 //-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
482 // Interrupt control macros
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
483
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
484 #define HAL_DISABLE_INTERRUPTS(_old_) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
485 asm volatile ( \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
486 "mov psw,%0;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
487 "mov 0xF7FF,d0;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
488 "and %0,d0;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
489 "mov d0,psw;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
490 "and 0x0800,%0;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
491 : "=d"(_old_) \
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 : "d0" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
494 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
495
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
496 #define HAL_ENABLE_INTERRUPTS() \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
497 asm volatile ( \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
498 "mov psw,d0;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
499 "or 0x0800,d0;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
500 "mov d0,psw;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
501 : \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
502 : \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
503 : "d0" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
504 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
505
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
506 #define HAL_RESTORE_INTERRUPTS(_old_) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
507 asm volatile ( \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
508 "mov psw,d1;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
509 "or %0,d1;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
510 "mov d1,psw;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
511 : \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
512 : "d"(_old_) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
513 : "d1" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
514 );
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
515
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
516 #define HAL_QUERY_INTERRUPTS(_old_) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
517 asm volatile ( \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
518 "mov psw,%0;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
519 "and 0x0800,%0;" \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
520 : "=d"(_old_) \
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
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 // Translate a vector number into an ISR table index.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
525 // If we have chained interrupts we have just a single ISR per priority
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
526 // level. On the MN103000 there are several interrupts per controller,
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
527 // so we have to decode to one of 100 vectors. On the MN103002 there is
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
528 // only one interrupt per controller, so we can have just one ISR per
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
529 // controller, except for the NMI vectors which occupy the first 3 slots.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
530
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
531 #ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
532
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
533 #define HAL_TRANSLATE_VECTOR(_vector_,_index_) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
534 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
535 /* ICRs are 16 bit regs at 32 bit spacing */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
536 cyg_ucount16 _ix_ = ((_vector_)>>2)<<1; \
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 /* read the appropriate interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
539 cyg_uint16 _icr_ = mn10300_interrupt_control[_ix_]; \
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 /* extract interrupt priority level */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
542 _index_ = (_icr_ >> 12) & 0x7; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
543 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
544
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
545 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
546
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
547 #if defined(CYG_HAL_MN10300_MN103000)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
548
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
549 #define HAL_TRANSLATE_VECTOR(_vector_,_index_) _index_ = (_vector_)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
550
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
551 #elif defined(CYG_HAL_MN10300_MN103002)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
552
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
553 //#define HAL_TRANSLATE_VECTOR(_vector_,_index_) _index_ = ((_vector_)>>2)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
554
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
555 #define HAL_TRANSLATE_VECTOR(_vector_,_index_) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
556 _index_ = (((_vector_)<=CYG_VECTOR_SYSTEM_ERROR) ? \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
557 (_vector_) : \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
558 (((_vector_)>>2)+CYG_VECTOR_RESERVED_3))
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
559
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
560 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
561
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
562 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
563
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
564
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
565 //-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
566 // Interrupt and VSR attachment macros
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
567
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
568 #define HAL_INTERRUPT_ATTACH( _vector_, _isr_, _data_, _object_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
569 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
570 cyg_uint32 _index_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
571 HAL_TRANSLATE_VECTOR(_vector_,_index_); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
572 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
573 if( hal_interrupt_handlers[_index_] == (CYG_ADDRESS)NULL ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
574 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
575 hal_interrupt_handlers[_index_] = (CYG_ADDRESS)_isr_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
576 hal_interrupt_data[_index_] = (CYG_ADDRWORD)_data_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
577 hal_interrupt_objects[_index_] = (CYG_ADDRESS)_object_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
578 } \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
579 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
580
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
581 #define HAL_INTERRUPT_DETACH( _vector_, _isr_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
582 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
583 cyg_uint32 _index_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
584 HAL_TRANSLATE_VECTOR(_vector_,_index_); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
585 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
586 if( hal_interrupt_handlers[_index_] == (CYG_ADDRESS)_isr_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
587 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
588 hal_interrupt_handlers[_index_] = (CYG_ADDRESS)NULL; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
589 hal_interrupt_data[_index_] = 0; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
590 hal_interrupt_objects[_index_] = 0; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
591 } \
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
594 #define HAL_VSR_GET( _vector_, _pvsr_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
595 *((CYG_ADDRESS *)_pvsr_) = hal_vsr_table[_vector_];
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
596
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
597
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
598 #define HAL_VSR_SET( _vector_, _vsr_, _poldvsr_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
599 if( _poldvsr_ != NULL ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
600 *(CYG_ADDRESS *)_poldvsr_ = hal_vsr_table[_vector_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
601 hal_vsr_table[_vector_] = (CYG_ADDRESS)_vsr_;
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
602
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
603
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
604 //-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
605 // Interrupt controller access
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
606 // Read interrupt control registers back after writing to them. This
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
607 // ensures that the written value is not sitting in the store buffers
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
608 // when interrupts are re-enabled.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
609 #define HAL_INTERRUPT_MASK( _vector_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
610 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
611 /* ICRs are 16 bit regs at 32 bit spacing */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
612 cyg_ucount16 _index_ = ((_vector_)>>2)<<1; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
613 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
614 /* read the appropriate interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
615 cyg_uint16 _icr_ = mn10300_interrupt_control[_index_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
616 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
617 /* clear interrupt enable bit for this vector */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
618 _icr_ &= ~(0x0100<<((_vector_)&3)); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
619 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
620 /* restore the interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
621 mn10300_interrupt_control[_index_] = _icr_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
622 _icr_ = mn10300_interrupt_control[_index_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
623 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
624
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
625 #define HAL_INTERRUPT_UNMASK( _vector_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
626 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
627 /* ICRs are 16 bit regs at 32 bit spacing */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
628 cyg_ucount16 _index_ = (_vector_>>2)<<1; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
629 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
630 /* read the appropriate interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
631 cyg_uint16 _icr_ = mn10300_interrupt_control[_index_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
632 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
633 /* set interrupt enable bit for this vector */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
634 _icr_ |= (0x0100<<(_vector_&3)); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
635 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
636 /* restore the interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
637 mn10300_interrupt_control[_index_] = _icr_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
638 _icr_ = mn10300_interrupt_control[_index_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
639 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
640
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
641 #define HAL_INTERRUPT_ACKNOWLEDGE( _vector_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
642 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
643 /* ICRs are 16 bit regs at 32 bit spacing */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
644 cyg_ucount16 _index_ = ((_vector_)>>2)<<1; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
645 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
646 /* read the appropriate interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
647 cyg_uint16 _icr_ = mn10300_interrupt_control[_index_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
648 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
649 /* clear interrupt request bit for this vector */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
650 _icr_ &= ~(0x0010<<((_vector_)&3)); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
651 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
652 /* set interrupt detect bit for this vector */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
653 _icr_ |= (0x0001<<((_vector_)&3)); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
654 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
655 /* restore the interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
656 mn10300_interrupt_control[_index_] = _icr_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
657 _icr_ = mn10300_interrupt_control[_index_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
658 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
659
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
660 #define HAL_INTERRUPT_CONFIGURE( _vector_, _level_, _up_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
661 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
662 cyg_vector _v_ = _vector_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
663 /* adjust vector to bit offset in EXTMD */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
664 _v_ -= CYG_VECTOR_EXTERNAL_0; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
665 _v_ >>= 1; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
666 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
667 cyg_uint16 _val_ = 0; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
668 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
669 /* set bits according to requirements */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
670 if( _up_ ) _val_ |= 1; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
671 if( !(_level_) ) _val_ |= 2; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
672 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
673 /* get EXTMD */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
674 cyg_uint16 _reg_ = mn10300_interrupt_control[0x180>>1]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
675 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
676 /* clear old value and set new */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
677 _reg_ &= ~(3<<_v_); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
678 _reg_ |= _val_<<_v_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
679 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
680 /* restore EXTMD */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
681 mn10300_interrupt_control[0x180>>1] = _reg_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
682 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
683
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
684 #define HAL_INTERRUPT_SET_LEVEL( _vector_, _level_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
685 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
686 /* ICRs are 16 bit regs at 32 bit spacing */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
687 cyg_ucount16 _index_ = (_vector_>>2)<<1; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
688 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
689 /* read the appropriate interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
690 cyg_uint16 _icr_ = mn10300_interrupt_control[_index_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
691 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
692 /* set interrupt level for this group of vectors */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
693 _icr_ &= 0x0FFF; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
694 _icr_ |= (_level_)<<12; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
695 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
696 /* restore the interrupt control register */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
697 mn10300_interrupt_control[_index_] = _icr_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
698 _icr_ = mn10300_interrupt_control[_index_]; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
699 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
700
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 // Clock control
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
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
705 #if 0 // defined(CYG_HAL_MN10300_SIM)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
706
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
707 #define OEA_DEV 0x31000000
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
708
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
709 #define HAL_SWAP(x) ((((x)&0xff)<<24)|(((x)&0xff00)<<8)| \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
710 (((x)&0xff0000)>>8)|(((x)&0xff000000)>>24))
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
711
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
712 #define PAL_COUNTDOWN_TIMER 0x20 // one shot on IR0
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
713 #define PAL_COUNTDOWN_VALUE 0x24
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
714 #define PAL_PERIODIC_TIMER 0x28 // repeating on IR1
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
715 #define PAL_PERIODIC_VALUE 0x2c
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
716
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
717
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
718 // IRQ1 set to receive clock intrs
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
719 #define HAL_CLOCK_INITIALIZE( _period_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
720 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
721 volatile cyg_uint32 *timer = (cyg_uint32 *) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
722 (OEA_DEV + PAL_PERIODIC_TIMER); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
723 cyg_uint32 p = _period_; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
724 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
725 *timer = HAL_SWAP(p); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
726 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
727
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
728 #elif defined(CYG_HAL_MN10300_MN103000)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
729
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
730 #define HAL_CLOCK_INITIALIZE( _period_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
731 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
732 volatile cyg_uint16 *timer_ctr = (cyg_uint16 *)TIMER_BR; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
733 volatile cyg_uint16 *timer_mode = (cyg_uint16 *)TIMER_MD; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
734 volatile cyg_uint8 *timer_a_mode = (cyg_uint8 *)0x34001084; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
735 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
736 *timer_a_mode = 0x04; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
737 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
738 *timer_ctr = 0xf000; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
739 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
740 *timer_mode = 0x0013; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
741 *timer_mode = 0x4013; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
742 *timer_mode = 0x0013; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
743 *timer_mode = 0x8013; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
744 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
745
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
746 #elif defined(CYG_HAL_MN10300_MN103002)
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
747
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
748 #define HAL_CLOCK_INITIALIZE( _period_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
749 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
750 volatile cyg_uint16 *timer4_br = (cyg_uint16 *)TIMER4_BR; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
751 volatile cyg_uint8 *timer4_md = (cyg_uint8 *)TIMER4_MD; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
752 volatile cyg_uint16 *timer5_br = (cyg_uint16 *)TIMER5_BR; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
753 volatile cyg_uint8 *timer5_md = (cyg_uint8 *)TIMER5_MD; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
754 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
755 /* Set timers 4 and 5 into cascade mode */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
756 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
757 *timer5_br = (_period_)>>16; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
758 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
759 *timer5_md = 0x40; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
760 *timer5_md = 0x83; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
761 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
762 *timer4_br = (_period_)&0x0000FFFF; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
763 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
764 *timer4_md = 0x40; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
765 *timer4_md = 0x80; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
766 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
767
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
768 #else
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
769
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
770 #error Undefined MN10300 model
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
771
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
772 #endif
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
773
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
774 #define HAL_CLOCK_RESET( _vector_, _period_ )
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
775
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
776 #if 0 //def CYG_HAL_MN10300_SIM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
777
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
778 // This timer counts down, so subtract from set value.
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
779 #define HAL_CLOCK_READ( _pvalue_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
780 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
781 volatile cyg_uint32 *timer = (cyg_uint32 *) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
782 (OEA_DEV + PAL_PERIODIC_TIMER); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
783 volatile cyg_uint32 *value = (cyg_uint32 *) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
784 (OEA_DEV + PAL_PERIODIC_VALUE); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
785 cyg_uint32 t,v; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
786 t = *timer; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
787 v = *value; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
788 *(_pvalue_) = HAL_SWAP(t) - HAL_SWAP(v); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
789 }
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 #else // CYG_HAL_MN10300_SIM not
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
792 #define HAL_CLOCK_READ( _pvalue_ ) \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
793 { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
794 volatile cyg_uint16 *timer4_cr = (cyg_uint16 *)TIMER4_CR; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
795 volatile cyg_uint16 *timer5_cr = (cyg_uint16 *)TIMER5_CR; \
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 cyg_uint16 t5; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
798 cyg_uint16 t4; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
799 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
800 /* Loop reading the two timers until we can read t5 twice */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
801 /* with the same value. This avoids getting silly times if */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
802 /* the timers carry between reading the two regs. */ \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
803 do { \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
804 t5 = *timer5_cr; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
805 t4 = *timer4_cr; \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
806 } while( t5 != *timer5_cr ); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
807 \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
808 *(_pvalue_) = CYGNUM_KERNEL_COUNTERS_RTC_PERIOD - ((t5<<16) + t4); \
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
809 }
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
810 #endif // CYG_HAL_MN10300_SIM
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
811 //-----------------------------------------------------------------------------
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
812 #endif // ifndef CYGONCE_HAL_HAL_INTR_H
3111d98ba7b3 Initial commit of eCos version 1.1
jlarmour
parents:
diff changeset
813 // End of hal_intr.h