aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch8
-rw-r--r--os/common/ports/ARM/compilers/GCC/irq.s6
-rw-r--r--os/common/ports/ARM/compilers/GCC/rules.ld2
-rw-r--r--os/common/ports/ARM/compilers/GCC/vectors.s45
4 files changed, 31 insertions, 30 deletions
diff --git a/demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch b/demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch
index 4c60843aa..3caa1e031 100644
--- a/demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch
+++ b/demos/LPC21xx/RT-LPC214x-OLIMEX/debug/RT-LPC214x-OLIMEX (OpenOCD, Flash and Run).launch
@@ -6,15 +6,15 @@
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20&#13;&#10;monitor reset init&#13;&#10;monitor sleep 50&#13;&#10;"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20&#13;&#10;monitor arm7_9 dcc_downloads enable&#13;&#10;monitor arm7_9 fast_memory_access enable&#13;&#10;monitor reset&#13;&#10;monitor sleep 500&#13;&#10;monitor halt 50&#13;&#10;monitor sleep 500&#13;&#10;monitor poll&#13;&#10;monitor flash erase_sector 0 0 8&#13;&#10;"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="Generic TCP/IP"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
-<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value="0"/>
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
-<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="true"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
@@ -39,7 +39,7 @@
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="./build/ch.elf"/>
<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="RT-LPC214x-OLIMEX"/>
<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
-<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="0.114656749"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="0.1382394121"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/RT-LPC214x-OLIMEX"/>
</listAttribute>
diff --git a/os/common/ports/ARM/compilers/GCC/irq.s b/os/common/ports/ARM/compilers/GCC/irq.s
index 87c0b7cc1..9fd117412 100644
--- a/os/common/ports/ARM/compilers/GCC/irq.s
+++ b/os/common/ports/ARM/compilers/GCC/irq.s
@@ -31,7 +31,7 @@
#if !defined(__DOXYGEN__)
- .section irq
+ .section irq, "ax"
.code 32
.balign 4
@@ -39,8 +39,8 @@
* IRQ entry point, note this code is always located at address 0x40, the
* IRQ controller data register offset must be calculated accordingly.
*/
- .global IrqHandler
-IrqHandler:
+ .global Irq_Handler
+Irq_Handler:
stmfd sp!, {r0-r3, r12, lr}
ldr r0, =ARM_IRQ_VECTOR_REG
ldr r0, [r0]
diff --git a/os/common/ports/ARM/compilers/GCC/rules.ld b/os/common/ports/ARM/compilers/GCC/rules.ld
index 8c32a27a3..09755b93a 100644
--- a/os/common/ports/ARM/compilers/GCC/rules.ld
+++ b/os/common/ports/ARM/compilers/GCC/rules.ld
@@ -37,7 +37,7 @@ SECTIONS
. = 0;
_text = .;
- boot : ALIGN(16) SUBALIGN(16)
+ startup : ALIGN(16) SUBALIGN(16)
{
KEEP(*(vectors))
KEEP(*(irq))
diff --git a/os/common/ports/ARM/compilers/GCC/vectors.s b/os/common/ports/ARM/compilers/GCC/vectors.s
index be870e14c..105c583db 100644
--- a/os/common/ports/ARM/compilers/GCC/vectors.s
+++ b/os/common/ports/ARM/compilers/GCC/vectors.s
@@ -41,13 +41,14 @@ void _unhandled_exception(void) {}
#if !defined(__DOXYGEN__)
- .section vectors
+ .section vectors, "ax"
.code 32
.balign 4
/*
* System entry points.
*/
+ .global _start
_start:
ldr pc, _reset
ldr pc, _undefined
@@ -59,39 +60,39 @@ _start:
ldr pc, _fiq
_reset:
- .word ResetHandler
+ .word Reset_Handler
_undefined:
- .word UndHandler
+ .word Und_Handler
_swi:
- .word SwiHandler
+ .word Swi_Handler
_prefetch:
- .word PrefetchHandler
+ .word Prefetch_Handler
_abort:
- .word AbortHandler
+ .word Abort_Handler
_fiq:
- .word FiqHandler
+ .word Fiq_Handler
_irq:
- .word IrqHandler
+ .word Irq_Handler
/*
* Default exceptions handlers. The handlers are declared weak in order to be
* replaced by the real handling code. Everything is defaulted to an infinite
* loop.
*/
- .weak ResetHandler
-ResetHandler:
- .weak UndHandler
-UndHandler:
- .weak SwiHandler
-SwiHandler:
- .weak PrefetchHandler
-PrefetchHandler:
- .weak AbortHandler
-AbortHandler:
- .weak FiqHandler
-FiqHandler:
- .weak IrqHandler
-IrqHandler:
+ .weak Reset_Handler
+Reset_Handler:
+ .weak Und_Handler
+Und_Handler:
+ .weak Swi_Handler
+Swi_Handler:
+ .weak Prefetch_Handler
+Prefetch_Handler:
+ .weak Abort_Handler
+Abort_Handler:
+ .weak Fiq_Handler
+Fiq_Handler:
+ .weak Irq_Handler
+Irq_Handler:
.weak _unhandled_exception
_unhandled_exception:
b _unhandled_exception