This is the mail archive of the
ecos-patches@sources.redhat.com
mailing list for the eCos project.
Make ARM HAL work without CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
- From: Ian Campbell <icampbell at arcom dot com>
- To: eCos Patches <ecos-patches at sources dot redhat dot com>
- Date: Fri, 21 May 2004 13:23:44 +0100
- Subject: Make ARM HAL work without CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
- Organization: Arcom Control Systems
The attached was needed to build Red Boot without
CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS.
Ian.
--
Ian Campbell, Senior Design Engineer
Web: http://www.arcom.com
Arcom, Clifton Road, Direct: +44 (0)1223 403 465
Cambridge CB1 7EA, United Kingdom Phone: +44 (0)1223 411 200
_____________________________________________________________________
The message in this transmission is sent in confidence for the attention of the addressee only and should not be disclosed to any other party. Unauthorised recipients are requested to preserve this confidentiality. Please advise the sender if the addressee is not resident at the receiving end. Email to and from Arcom is automatically monitored for operational and lawful business reasons.
This message has been virus scanned by MessageLabs.
--- a/hal/arm/arch/current/src/hal_misc.c 29 Aug 2003 10:09:41 -0000 1.1.1.2
+++ b/hal/arm/arch/current/src/hal_misc.c 21 May 2004 11:10:44 -0000
@@ -76,10 +76,8 @@ externC void __handle_exception (void);
externC HAL_SavedRegisters *_hal_registers;
#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-// Historical - this datum is defined by the GDB stubs if present
-externC
+externC void* volatile __mem_fault_handler;
#endif
- void* volatile __mem_fault_handler;
#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
/* Force exception handling into the GDB stubs. This is done by taking over
@@ -126,11 +124,13 @@ exception_handler(HAL_SavedRegisters *re
// This is common in discovery code, e.g. checking for a particular
// device which may generate an exception when probing if the
// device is not present
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
if (__mem_fault_handler &&
regs->vector == CYGNUM_HAL_EXCEPTION_DATA_ACCESS) {
regs->pc = (unsigned long)__mem_fault_handler;
return; // Caught an exception inside stubs
}
+#endif
#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS) && !defined(CYGPKG_CYGMON)
if (++exception_level == 1) __take_over_debug_traps();