Mercurial > ecos
comparison packages/hal/common/current/src/hal_misc.c @ 105:5a0cc6c243a9 ecos-sw-2000-06-30
Merge from eCos master repository on 2000-06-30-08:18:49-BST
| author | jlarmour |
|---|---|
| date | Fri, 30 Jun 2000 16:27:35 +0000 |
| parents | c37d3a9e1b28 |
| children | 7f461c3a372c |
comparison
equal
deleted
inserted
replaced
| 104:ad66e26a9e7c | 105:5a0cc6c243a9 |
|---|---|
| 118 cyg_uint32 | 118 cyg_uint32 |
| 119 hal_default_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data) | 119 hal_default_isr(CYG_ADDRWORD vector, CYG_ADDRWORD data) |
| 120 { | 120 { |
| 121 cyg_uint32 result; | 121 cyg_uint32 result; |
| 122 | 122 |
| 123 #if (defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT) \ | 123 #if (defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT) \ |
| 124 || defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT)) && \ | 124 || defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT)) && \ |
| 125 defined(CYGHWR_HAL_GDB_PORT_VECTOR) && \ | 125 (defined(CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT) || \ |
| 126 defined(HAL_CTRLC_ISR) | 126 defined(CYGHWR_HAL_GDB_PORT_VECTOR) && \ |
| 127 defined(HAL_CTRLC_ISR)) | |
| 127 | 128 |
| 128 #ifndef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN | 129 #ifndef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN |
| 130 #if CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT | |
| 131 int gdb_vector = -1; | |
| 132 // This check only to avoid crash on older stubs in case of unhandled | |
| 133 // interrupts. It is a bit messy, but required in a transition period. | |
| 134 if (CYGNUM_CALL_IF_TABLE_VERSION == CYGACC_CALL_IF_VERSION()) { | |
| 135 hal_virtual_comm_table_t* comm = CYGACC_CALL_IF_DEBUG_PROCS(); | |
| 136 gdb_vector | |
| 137 = CYGACC_COMM_IF_CONTROL(*comm)(CYGACC_COMM_IF_CH_DATA(*comm), | |
| 138 __COMMCTL_DBG_ISR_VECTOR); | |
| 139 } | |
| 140 if( vector == gdb_vector ) | |
| 141 #else | |
| 142 // Old code using hardwired channels. This should go away eventually. | |
| 129 if( vector == CYGHWR_HAL_GDB_PORT_VECTOR ) | 143 if( vector == CYGHWR_HAL_GDB_PORT_VECTOR ) |
| 144 #endif | |
| 130 #endif | 145 #endif |
| 131 { | 146 { |
| 132 result = HAL_CTRLC_ISR( vector, data ); | 147 result = HAL_CTRLC_ISR( vector, data ); |
| 133 if( 0 != result ) return result; | 148 if( 0 != result ) return result; |
| 134 } | 149 } |
| 135 #endif | 150 #endif |
| 136 | 151 |
| 137 result = hal_arch_default_isr (vector, data); | 152 result = hal_arch_default_isr (vector, data); |
| 138 if( 0 != result) return result; | 153 if( 0 != result) return result; |
| 139 | 154 |
| 140 CYG_TRACE1(true, "Interrupt: %d", vector); | 155 CYG_TRACE2(true, "Interrupt: %d, Data: 0x%08x", vector, data); |
| 141 CYG_FAIL("Spurious Interrupt!!!"); | 156 CYG_FAIL("Spurious Interrupt!!!"); |
| 142 return 0; | 157 return 0; |
| 143 } | 158 } |
| 144 | 159 |
| 145 | 160 |
