Mercurial > flash_v2
comparison packages/hal/common/current/tests/cache.c @ 10:d3fbcdfa1b2f ecos-sw-1999-05-29
Merge from eCos master repository on 1999-05-29-00:13:11-BST
| author | jlarmour |
|---|---|
| date | Fri, 28 May 1999 16:43:09 +0000 |
| parents | 443894e2e912 |
| children | 5f5102441818 |
comparison
equal
deleted
inserted
replaced
| 9:95cc44ea0068 | 10:d3fbcdfa1b2f |
|---|---|
| 43 #include <cyg/hal/hal_intr.h> | 43 #include <cyg/hal/hal_intr.h> |
| 44 | 44 |
| 45 // ------------------------------------------------------------------------- | 45 // ------------------------------------------------------------------------- |
| 46 // If the HAL does not supply this, we supply our own version | 46 // If the HAL does not supply this, we supply our own version |
| 47 | 47 |
| 48 #ifndef HAL_DCACHE_PURGE_ALL | 48 #ifdef HAL_DCACHE_SYNC |
| 49 | |
| 50 # define HAL_DCACHE_PURGE_ALL() HAL_DCACHE_SYNC() | |
| 51 | |
| 52 #else | |
| 49 | 53 |
| 50 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2]; | 54 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2]; |
| 51 | 55 |
| 52 #define HAL_DCACHE_PURGE_ALL() \ | 56 #define HAL_DCACHE_PURGE_ALL() \ |
| 53 CYG_MACRO_START \ | 57 CYG_MACRO_START \ |
| 114 | 118 |
| 115 static void entry0( void ) | 119 static void entry0( void ) |
| 116 { | 120 { |
| 117 register CYG_INTERRUPT_STATE oldints; | 121 register CYG_INTERRUPT_STATE oldints; |
| 118 | 122 |
| 123 #ifdef HAL_CACHE_UNIFIED | |
| 124 | |
| 125 HAL_DISABLE_INTERRUPTS(oldints); | |
| 126 HAL_DCACHE_PURGE_ALL(); // rely on above definition | |
| 127 HAL_UCACHE_INVALIDATE_ALL(); | |
| 128 HAL_UCACHE_DISABLE(); | |
| 129 HAL_RESTORE_INTERRUPTS(oldints); | |
| 130 CYG_TEST_INFO("Cache off"); | |
| 131 time1(); | |
| 132 | |
| 133 HAL_DISABLE_INTERRUPTS(oldints); | |
| 134 HAL_DCACHE_PURGE_ALL(); // rely on above definition | |
| 135 HAL_UCACHE_INVALIDATE_ALL(); | |
| 136 HAL_UCACHE_ENABLE(); | |
| 137 HAL_RESTORE_INTERRUPTS(oldints); | |
| 138 CYG_TEST_INFO("Cache on"); | |
| 139 time1(); | |
| 140 | |
| 141 #else // HAL_CACHE_UNIFIED | |
| 142 | |
| 119 HAL_DISABLE_INTERRUPTS(oldints); | 143 HAL_DISABLE_INTERRUPTS(oldints); |
| 120 HAL_DCACHE_PURGE_ALL(); | 144 HAL_DCACHE_PURGE_ALL(); |
| 121 HAL_ICACHE_INVALIDATE_ALL(); | 145 HAL_ICACHE_INVALIDATE_ALL(); |
| 122 HAL_DCACHE_INVALIDATE_ALL(); | 146 HAL_DCACHE_INVALIDATE_ALL(); |
| 123 HAL_ICACHE_DISABLE(); | 147 HAL_ICACHE_DISABLE(); |
| 164 HAL_DCACHE_DISABLE(); | 188 HAL_DCACHE_DISABLE(); |
| 165 HAL_RESTORE_INTERRUPTS(oldints); | 189 HAL_RESTORE_INTERRUPTS(oldints); |
| 166 CYG_TEST_INFO("Dcache off Icache off"); | 190 CYG_TEST_INFO("Dcache off Icache off"); |
| 167 time1(); | 191 time1(); |
| 168 | 192 |
| 193 #endif // HAL_CACHE_UNIFIED | |
| 194 | |
| 169 CYG_TEST_PASS_FINISH("End of test"); | 195 CYG_TEST_PASS_FINISH("End of test"); |
| 170 } | 196 } |
| 171 | 197 |
| 172 // ------------------------------------------------------------------------- | 198 // ------------------------------------------------------------------------- |
| 173 | 199 |
