Mercurial > ecos
annotate packages/kernel/current/tests/kcache1.c @ 3250:283b2c38b413
Fix compiler warnings. [ Bugzilla 1001865 ]
| author | vae |
|---|---|
| date | Sat, 15 Jun 2013 20:25:20 +0000 |
| parents | 74dbf4c3f2e1 |
| children |
| rev | line source |
|---|---|
| 0 | 1 /*================================================================= |
| 2 // | |
| 3 // kcache1.c | |
| 4 // | |
| 5 // Cache timing test | |
| 6 // | |
| 7 //========================================================================== | |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
8 // ####ECOSGPLCOPYRIGHTBEGIN#### |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
9 // ------------------------------------------- |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
10 // This file is part of eCos, the Embedded Configurable Operating System. |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
12 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
13 // eCos is free software; you can redistribute it and/or modify it under |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
14 // the terms of the GNU General Public License as published by the Free |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
15 // Software Foundation; either version 2 or (at your option) any later |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
16 // version. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
17 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
18 // eCos is distributed in the hope that it will be useful, but WITHOUT |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
19 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
20 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
21 // for more details. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
22 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
23 // You should have received a copy of the GNU General Public License |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
24 // along with eCos; if not, write to the Free Software Foundation, Inc., |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
25 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
26 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
27 // As a special exception, if other files instantiate templates or use |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
28 // macros or inline functions from this file, or you compile this file |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
29 // and link it with other works to produce a work based on this file, |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
30 // this file does not by itself cause the resulting work to be covered by |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
31 // the GNU General Public License. However the source code for this file |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
32 // must still be made available in accordance with section (3) of the GNU |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
33 // General Public License v2. |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
34 // |
|
2729
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
35 // This exception does not invalidate any other reasons why a work based |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
36 // on this file might be covered by the GNU General Public License. |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
37 // ------------------------------------------- |
|
74dbf4c3f2e1
Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents:
210
diff
changeset
|
38 // ####ECOSGPLCOPYRIGHTEND#### |
| 0 | 39 //========================================================================== |
| 40 //#####DESCRIPTIONBEGIN#### | |
| 41 // | |
| 42 // Author(s): dsm | |
|
44
41bd4f3a90de
Merge from eCos master repository on 1999-10-08-07:47:04-BST
jlarmour
parents:
34
diff
changeset
|
43 // Contributors: dsm, nickg |
| 0 | 44 // Date: 1998-06-18 |
| 45 //####DESCRIPTIONEND#### | |
| 46 */ | |
| 47 | |
| 2 | 48 #include <cyg/hal/hal_arch.h> // CYGNUM_HAL_STACK_SIZE_TYPICAL |
| 49 | |
| 0 | 50 #include <cyg/kernel/kapi.h> |
| 51 | |
| 52 #include <cyg/infra/testcase.h> | |
| 53 | |
|
84
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
54 #include <cyg/hal/hal_cache.h> |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
55 |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
56 #if defined(HAL_DCACHE_SIZE) || defined(HAL_UCACHE_SIZE) |
| 0 | 57 #ifdef CYGVAR_KERNEL_COUNTERS_CLOCK |
| 58 #ifdef CYGFUN_KERNEL_API_C | |
| 59 | |
| 60 #include <cyg/infra/diag.h> | |
| 2 | 61 #include <cyg/hal/hal_intr.h> |
| 0 | 62 |
| 63 // ------------------------------------------------------------------------- | |
| 64 // If the HAL does not supply this, we supply our own version | |
| 65 | |
|
44
41bd4f3a90de
Merge from eCos master repository on 1999-10-08-07:47:04-BST
jlarmour
parents:
34
diff
changeset
|
66 #ifndef HAL_DCACHE_PURGE_ALL |
|
41bd4f3a90de
Merge from eCos master repository on 1999-10-08-07:47:04-BST
jlarmour
parents:
34
diff
changeset
|
67 # ifdef HAL_DCACHE_SYNC |
|
10
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
68 |
|
44
41bd4f3a90de
Merge from eCos master repository on 1999-10-08-07:47:04-BST
jlarmour
parents:
34
diff
changeset
|
69 #define HAL_DCACHE_PURGE_ALL() HAL_DCACHE_SYNC() |
|
10
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
70 |
|
44
41bd4f3a90de
Merge from eCos master repository on 1999-10-08-07:47:04-BST
jlarmour
parents:
34
diff
changeset
|
71 # else |
| 0 | 72 |
| 73 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2]; | |
| 74 | |
| 75 #define HAL_DCACHE_PURGE_ALL() \ | |
| 76 CYG_MACRO_START \ | |
| 77 volatile cyg_uint8 *addr = &dca[HAL_DCACHE_LINE_SIZE]; \ | |
| 78 volatile cyg_uint8 tmp = 0; \ | |
| 79 int i; \ | |
| 80 for( i = 0; i < HAL_DCACHE_SIZE; i += HAL_DCACHE_LINE_SIZE ) \ | |
| 81 { \ | |
| 82 tmp = addr[i]; \ | |
| 83 } \ | |
| 84 CYG_MACRO_END | |
| 85 | |
|
44
41bd4f3a90de
Merge from eCos master repository on 1999-10-08-07:47:04-BST
jlarmour
parents:
34
diff
changeset
|
86 # endif |
| 0 | 87 #endif |
| 88 | |
| 89 // ------------------------------------------------------------------------- | |
| 90 | |
| 91 #define NTHREADS 1 | |
| 2 | 92 #define STACKSIZE CYGNUM_HAL_STACK_SIZE_TYPICAL |
| 0 | 93 |
| 94 static cyg_handle_t thread[NTHREADS]; | |
| 95 | |
| 96 static cyg_thread thread_obj[NTHREADS]; | |
| 97 static char stack[NTHREADS][STACKSIZE]; | |
| 98 | |
| 2 | 99 #ifndef MAX_STRIDE |
| 100 #define MAX_STRIDE 64 | |
| 101 #endif | |
| 102 | |
|
46
797268ecc331
Merge from eCos master repository on 1999-10-19-18:55:31-BST
jlarmour
parents:
44
diff
changeset
|
103 volatile char m[(HAL_DCACHE_SIZE/HAL_DCACHE_LINE_SIZE)*MAX_STRIDE]; |
|
44
41bd4f3a90de
Merge from eCos master repository on 1999-10-08-07:47:04-BST
jlarmour
parents:
34
diff
changeset
|
104 |
| 0 | 105 // ------------------------------------------------------------------------- |
| 106 | |
| 107 static void time0(register cyg_uint32 stride) | |
| 108 { | |
| 109 register cyg_uint32 j,k; | |
| 110 cyg_tick_count_t count0, count1; | |
| 111 cyg_ucount32 t; | |
| 3250 | 112 register char c CYGBLD_ATTRIB_UNUSED; |
| 0 | 113 |
| 114 count0 = cyg_current_time(); | |
| 115 | |
| 2 | 116 k = 0; |
| 117 if ( cyg_test_is_simulator ) | |
| 118 k = 3960; | |
| 119 | |
| 120 for(; k<4000;k++) { | |
| 0 | 121 for(j=0; j<(HAL_DCACHE_SIZE/HAL_DCACHE_LINE_SIZE); j++) { |
| 122 c=m[stride*j]; | |
| 123 } | |
| 124 } | |
| 125 | |
| 126 count1 = cyg_current_time(); | |
| 127 t = count1 - count0; | |
| 128 diag_printf("stride=%d, time=%d\n", stride, t); | |
| 129 } | |
| 130 | |
| 131 // ------------------------------------------------------------------------- | |
| 132 | |
| 133 void time1(void) | |
| 134 { | |
| 135 cyg_uint32 i; | |
| 136 | |
| 2 | 137 for(i=1; i<=MAX_STRIDE; i+=i) { |
| 0 | 138 time0(i); |
| 139 } | |
| 140 } | |
| 141 | |
| 142 // ------------------------------------------------------------------------- | |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
143 // With an ICache invalidate in the middle: |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
144 #ifdef HAL_ICACHE_INVALIDATE_ALL |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
145 static void time0II(register cyg_uint32 stride) |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
146 { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
147 register cyg_uint32 j,k; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
148 cyg_tick_count_t count0, count1; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
149 cyg_ucount32 t; |
| 3250 | 150 register char c CYGBLD_ATTRIB_UNUSED; |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
151 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
152 count0 = cyg_current_time(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
153 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
154 k = 0; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
155 if ( cyg_test_is_simulator ) |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
156 k = 3960; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
157 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
158 for(; k<4000;k++) { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
159 for(j=0; j<(HAL_DCACHE_SIZE/HAL_DCACHE_LINE_SIZE); j++) { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
160 HAL_ICACHE_INVALIDATE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
161 c=m[stride*j]; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
162 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
163 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
164 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
165 count1 = cyg_current_time(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
166 t = count1 - count0; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
167 diag_printf("stride=%d, time=%d\n", stride, t); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
168 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
169 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
170 // ------------------------------------------------------------------------- |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
171 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
172 void time1II(void) |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
173 { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
174 cyg_uint32 i; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
175 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
176 for(i=1; i<=MAX_STRIDE; i+=i) { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
177 time0II(i); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
178 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
179 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
180 #endif |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
181 // ------------------------------------------------------------------------- |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
182 // With a DCache invalidate in the middle: |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
183 // This is guaranteed to produce bogus timing results since interrupts |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
184 // have to be disabled to prevent accidental loss of state. |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
185 #ifdef HAL_DCACHE_INVALIDATE_ALL |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
186 static void time0DI(register cyg_uint32 stride) |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
187 { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
188 register cyg_uint32 j,k; |
|
84
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
189 volatile cyg_tick_count_t count0; |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
190 cyg_tick_count_t count1; |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
191 cyg_ucount32 t; |
| 3250 | 192 register char c CYGBLD_ATTRIB_UNUSED; |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
193 register CYG_INTERRUPT_STATE oldints; |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
194 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
195 count0 = cyg_current_time(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
196 |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
197 HAL_DISABLE_INTERRUPTS(oldints); |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
198 HAL_DCACHE_SYNC(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
199 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
200 k = 0; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
201 if ( cyg_test_is_simulator ) |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
202 k = 3960; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
203 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
204 for(; k<4000;k++) { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
205 for(j=0; j<(HAL_DCACHE_SIZE/HAL_DCACHE_LINE_SIZE); j++) { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
206 HAL_DCACHE_INVALIDATE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
207 c=m[stride*j]; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
208 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
209 } |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
210 HAL_RESTORE_INTERRUPTS(oldints); |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
211 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
212 count1 = cyg_current_time(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
213 t = count1 - count0; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
214 diag_printf("stride=%d, time=%d\n", stride, t); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
215 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
216 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
217 // ------------------------------------------------------------------------- |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
218 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
219 void time1DI(void) |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
220 { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
221 cyg_uint32 i; |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
222 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
223 for(i=1; i<=MAX_STRIDE; i+=i) { |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
224 time0DI(i); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
225 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
226 } |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
227 #endif |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
228 // ------------------------------------------------------------------------- |
| 0 | 229 // This test could be improved by counting number of passes possible |
| 230 // in a given number of ticks. | |
| 231 | |
| 232 static void entry0( cyg_addrword_t data ) | |
| 233 { | |
| 2 | 234 register CYG_INTERRUPT_STATE oldints; |
|
84
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
235 |
|
10
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
236 #ifdef HAL_CACHE_UNIFIED |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
237 |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
238 HAL_DISABLE_INTERRUPTS(oldints); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
239 HAL_DCACHE_PURGE_ALL(); // rely on above definition |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
240 HAL_UCACHE_INVALIDATE_ALL(); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
241 HAL_UCACHE_DISABLE(); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
242 HAL_RESTORE_INTERRUPTS(oldints); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
243 CYG_TEST_INFO("Cache off"); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
244 time1(); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
245 |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
246 HAL_DISABLE_INTERRUPTS(oldints); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
247 HAL_DCACHE_PURGE_ALL(); // rely on above definition |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
248 HAL_UCACHE_INVALIDATE_ALL(); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
249 HAL_UCACHE_ENABLE(); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
250 HAL_RESTORE_INTERRUPTS(oldints); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
251 CYG_TEST_INFO("Cache on"); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
252 time1(); |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
253 |
|
84
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
254 #ifdef HAL_DCACHE_INVALIDATE_ALL |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
255 HAL_DISABLE_INTERRUPTS(oldints); |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
256 HAL_DCACHE_PURGE_ALL(); |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
257 HAL_UCACHE_INVALIDATE_ALL(); |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
258 HAL_UCACHE_ENABLE(); |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
259 HAL_RESTORE_INTERRUPTS(oldints); |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
151
diff
changeset
|
260 CYG_TEST_INFO("Cache on: invalidate Cache (expect bogus timing)"); |
|
84
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
261 time1DI(); |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
262 #endif |
|
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
263 |
|
10
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
264 #else // HAL_CACHE_UNIFIED |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
265 |
| 2 | 266 HAL_DISABLE_INTERRUPTS(oldints); |
| 0 | 267 HAL_DCACHE_PURGE_ALL(); |
| 268 HAL_ICACHE_INVALIDATE_ALL(); | |
| 269 HAL_DCACHE_INVALIDATE_ALL(); | |
| 270 HAL_ICACHE_DISABLE(); | |
| 271 HAL_DCACHE_DISABLE(); | |
| 2 | 272 HAL_RESTORE_INTERRUPTS(oldints); |
| 0 | 273 CYG_TEST_INFO("Dcache off Icache off"); |
| 274 time1(); | |
| 275 | |
| 2 | 276 HAL_DISABLE_INTERRUPTS(oldints); |
| 0 | 277 HAL_DCACHE_PURGE_ALL(); |
| 278 HAL_ICACHE_INVALIDATE_ALL(); | |
| 279 HAL_DCACHE_INVALIDATE_ALL(); | |
| 280 HAL_ICACHE_DISABLE(); | |
| 281 HAL_DCACHE_ENABLE(); | |
| 2 | 282 HAL_RESTORE_INTERRUPTS(oldints); |
| 0 | 283 CYG_TEST_INFO("Dcache on Icache off"); |
| 284 time1(); | |
| 285 | |
| 2 | 286 HAL_DISABLE_INTERRUPTS(oldints); |
| 0 | 287 HAL_DCACHE_PURGE_ALL(); |
| 288 HAL_ICACHE_INVALIDATE_ALL(); | |
| 289 HAL_DCACHE_INVALIDATE_ALL(); | |
| 290 HAL_ICACHE_ENABLE(); | |
| 291 HAL_DCACHE_DISABLE(); | |
| 2 | 292 HAL_RESTORE_INTERRUPTS(oldints); |
| 0 | 293 CYG_TEST_INFO("Dcache off Icache on"); |
| 294 time1(); | |
| 295 | |
| 2 | 296 HAL_DISABLE_INTERRUPTS(oldints); |
| 0 | 297 HAL_DCACHE_PURGE_ALL(); |
| 298 HAL_ICACHE_INVALIDATE_ALL(); | |
| 299 HAL_DCACHE_INVALIDATE_ALL(); | |
| 300 HAL_ICACHE_ENABLE(); | |
| 301 HAL_DCACHE_ENABLE(); | |
| 2 | 302 HAL_RESTORE_INTERRUPTS(oldints); |
| 0 | 303 CYG_TEST_INFO("Dcache on Icache on"); |
| 304 time1(); | |
| 305 | |
| 306 | |
| 2 | 307 HAL_DISABLE_INTERRUPTS(oldints); |
| 0 | 308 HAL_DCACHE_PURGE_ALL(); |
| 309 HAL_ICACHE_INVALIDATE_ALL(); | |
| 310 HAL_DCACHE_INVALIDATE_ALL(); | |
| 311 HAL_ICACHE_DISABLE(); | |
| 312 HAL_DCACHE_DISABLE(); | |
| 2 | 313 HAL_RESTORE_INTERRUPTS(oldints); |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
314 CYG_TEST_INFO("Dcache off Icache off (again)"); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
315 time1(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
316 |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
317 #if defined(HAL_DCACHE_INVALIDATE_ALL) || defined(HAL_ICACHE_INVALIDATE_ALL) |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
318 HAL_DISABLE_INTERRUPTS(oldints); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
319 HAL_DCACHE_PURGE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
320 HAL_ICACHE_INVALIDATE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
321 HAL_DCACHE_INVALIDATE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
322 HAL_ICACHE_ENABLE(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
323 HAL_DCACHE_ENABLE(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
324 HAL_RESTORE_INTERRUPTS(oldints); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
325 CYG_TEST_INFO("Dcache on Icache on (again)"); |
| 0 | 326 time1(); |
| 327 | |
|
34
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
24
diff
changeset
|
328 #if defined(CYGPKG_HAL_MIPS) |
|
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
24
diff
changeset
|
329 // In some architectures, the time taken for the next two tests is |
|
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
24
diff
changeset
|
330 // very long, partly because HAL_XCACHE_INVALIDATE_ALL() is implemented |
|
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
24
diff
changeset
|
331 // with a loop over the cache. Hence these tests take longer than the |
|
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
24
diff
changeset
|
332 // testing infrastructure is prepared to wait. The simplest way to get |
|
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
24
diff
changeset
|
333 // these tests to run quickly is to make them think they are running |
|
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
24
diff
changeset
|
334 // under a simulator. |
|
76
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
335 // If the target actually is a simulator, skip the below - it's very |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
336 // slow on the simulator, even with reduced loop counts. |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
337 if (cyg_test_is_simulator) |
|
435cced73e2f
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
jlarmour
parents:
66
diff
changeset
|
338 CYG_TEST_PASS_FINISH("End of test"); |
|
99
97d9d85b42c0
Merge from eCos master repository on 2000-06-07-14:25:36-BST
jlarmour
parents:
84
diff
changeset
|
339 |
|
134
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
99
diff
changeset
|
340 #if defined(CYGPKG_HAL_MIPS_TX49) |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
99
diff
changeset
|
341 // The TX49 has a large cache, and even with reduced loop count, |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
99
diff
changeset
|
342 // 90+ seconds elapses between each INFO output. |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
99
diff
changeset
|
343 CYG_TEST_PASS_FINISH("End of test"); |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
99
diff
changeset
|
344 #endif |
|
d2f49caf9e38
Merge from eCos master repository on 2000-11-03-09:00:49-GMT
jlarmour
parents:
99
diff
changeset
|
345 |
|
34
29bc183297e1
Merge from eCos master repository on 1999-09-02-16:26:10-BST
jlarmour
parents:
24
diff
changeset
|
346 cyg_test_is_simulator = 1; |
|
84
489eb5632bc3
Merge from eCos master repository on 2000-04-28-18:44:39-BST
jlarmour
parents:
78
diff
changeset
|
347 #endif |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
134
diff
changeset
|
348 |
|
24
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
349 #ifdef HAL_ICACHE_INVALIDATE_ALL |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
350 HAL_DISABLE_INTERRUPTS(oldints); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
351 HAL_DCACHE_PURGE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
352 HAL_ICACHE_INVALIDATE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
353 HAL_DCACHE_INVALIDATE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
354 HAL_ICACHE_ENABLE(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
355 HAL_DCACHE_ENABLE(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
356 HAL_RESTORE_INTERRUPTS(oldints); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
357 CYG_TEST_INFO("Dcache on Icache on: invalidate ICache each time"); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
358 time1II(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
359 #endif |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
360 #ifdef HAL_DCACHE_INVALIDATE_ALL |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
361 HAL_DISABLE_INTERRUPTS(oldints); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
362 HAL_DCACHE_PURGE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
363 HAL_ICACHE_INVALIDATE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
364 HAL_DCACHE_INVALIDATE_ALL(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
365 HAL_ICACHE_ENABLE(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
366 HAL_DCACHE_ENABLE(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
367 HAL_RESTORE_INTERRUPTS(oldints); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
368 CYG_TEST_INFO("Dcache on Icache on: invalidate DCache (expect bogus times)"); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
369 time1DI(); |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
370 #endif |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
371 #endif // either INVALIDATE_ALL macro |
|
306eee292492
Merge from eCos master repository on 1999-07-16-05:47:06-BST
jlarmour
parents:
10
diff
changeset
|
372 |
|
10
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
373 #endif // HAL_CACHE_UNIFIED |
|
d3fbcdfa1b2f
Merge from eCos master repository on 1999-05-29-00:13:11-BST
jlarmour
parents:
2
diff
changeset
|
374 |
| 0 | 375 CYG_TEST_PASS_FINISH("End of test"); |
| 376 } | |
| 377 | |
| 378 // ------------------------------------------------------------------------- | |
| 379 | |
| 380 void kcache2_main( void ) | |
| 381 { | |
| 382 CYG_TEST_INIT(); | |
| 383 | |
| 384 cyg_thread_create(4, entry0 , (cyg_addrword_t)0, "kcache1", | |
| 2 | 385 (void *)stack[0], STACKSIZE, &thread[0], &thread_obj[0]); |
| 0 | 386 cyg_thread_resume(thread[0]); |
| 387 | |
| 388 cyg_scheduler_start(); | |
| 389 } | |
| 390 | |
| 391 // ------------------------------------------------------------------------- | |
| 392 | |
| 393 externC void | |
| 394 cyg_start( void ) | |
| 395 { | |
| 396 kcache2_main(); | |
| 397 } | |
| 398 | |
| 399 // ------------------------------------------------------------------------- | |
| 400 | |
| 401 #else // def CYGFUN_KERNEL_API_C | |
| 402 #define N_A_MSG "Kernel C API layer disabled" | |
| 403 #endif // def CYGFUN_KERNEL_API_C | |
| 404 #else // def CYGVAR_KERNEL_COUNTERS_CLOCK | |
| 405 #define N_A_MSG "Kernel real-time clock disabled" | |
| 406 #endif // def CYGVAR_KERNEL_COUNTERS_CLOCK | |
|
78
59d97b6ba612
Merge from eCos master repository on 2000-03-28-19:50:47-BST
jlarmour
parents:
76
diff
changeset
|
407 #else // def HAL_DCACHE_SIZE |
|
59d97b6ba612
Merge from eCos master repository on 2000-03-28-19:50:47-BST
jlarmour
parents:
76
diff
changeset
|
408 #define N_A_MSG "No caches defined" |
|
59d97b6ba612
Merge from eCos master repository on 2000-03-28-19:50:47-BST
jlarmour
parents:
76
diff
changeset
|
409 #endif // def HAL_DCACHE_SIZE |
| 0 | 410 |
| 411 #ifdef N_A_MSG | |
| 412 externC void | |
| 413 cyg_start( void ) | |
| 414 { | |
| 415 CYG_TEST_INIT(); | |
| 2 | 416 CYG_TEST_NA( N_A_MSG ); |
| 0 | 417 } |
| 418 #endif // N_A_MSG | |
| 419 | |
| 420 // ------------------------------------------------------------------------- | |
| 421 /* EOF kcache1.c */ |
