aboutsummaryrefslogtreecommitdiffstats
path: root/demos
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-12-08 12:05:22 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-12-08 12:05:22 +0000
commit1fb3d146edfcf92426cbf6ae58dcb7c69a0f97bf (patch)
tree81cfb24128744c3a731289e7367f0c1a42cf1664 /demos
parent2a3327fbc686fe8ba0ea7ea4b4960df8221c6e14 (diff)
downloadChibiOS-1fb3d146edfcf92426cbf6ae58dcb7c69a0f97bf.tar.gz
ChibiOS-1fb3d146edfcf92426cbf6ae58dcb7c69a0f97bf.tar.bz2
ChibiOS-1fb3d146edfcf92426cbf6ae58dcb7c69a0f97bf.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@132 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos')
-rw-r--r--demos/ARM7-LPC214x-GCC-minimal/Makefile2
-rw-r--r--demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb2
-rw-r--r--demos/ARM7-LPC214x-GCC/Makefile2
-rw-r--r--demos/ARM7-LPC214x-GCC/Makefile.thumb2
-rw-r--r--demos/ARM7-LPC214x-GCC/chcore2.s20
5 files changed, 13 insertions, 15 deletions
diff --git a/demos/ARM7-LPC214x-GCC-minimal/Makefile b/demos/ARM7-LPC214x-GCC-minimal/Makefile
index f440f799d..e74d2f382 100644
--- a/demos/ARM7-LPC214x-GCC-minimal/Makefile
+++ b/demos/ARM7-LPC214x-GCC-minimal/Makefile
@@ -121,7 +121,7 @@ LIBS = $(DLIBS) $(ULIBS)
MCFLAGS = -mcpu=$(MCU)
ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
-CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-ahlms=$(<:.c=.lst) $(DEFS)
+CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-alms=$(<:.c=.lst) $(DEFS)
LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)
ODFLAGS = -x --syms
diff --git a/demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb b/demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb
index 03f2c7ba9..68f308449 100644
--- a/demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb
+++ b/demos/ARM7-LPC214x-GCC-minimal/Makefile.thumb
@@ -120,7 +120,7 @@ LIBS = $(DLIBS) $(ULIBS)
MCFLAGS = -mcpu=$(MCU)
ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
-CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-ahlms=$(<:.c=.lst) $(DEFS)
+CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-alms=$(<:.c=.lst) $(DEFS)
LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)
ODFLAGS = -x --syms
diff --git a/demos/ARM7-LPC214x-GCC/Makefile b/demos/ARM7-LPC214x-GCC/Makefile
index 3698582e7..60c2df008 100644
--- a/demos/ARM7-LPC214x-GCC/Makefile
+++ b/demos/ARM7-LPC214x-GCC/Makefile
@@ -123,7 +123,7 @@ LIBS = $(DLIBS) $(ULIBS)
MCFLAGS = -mcpu=$(MCU)
ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
-CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-ahlms=$(<:.c=.lst) $(DEFS)
+CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-alms=$(<:.c=.lst) $(DEFS)
LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)
ODFLAGS = -x --syms
diff --git a/demos/ARM7-LPC214x-GCC/Makefile.thumb b/demos/ARM7-LPC214x-GCC/Makefile.thumb
index c08d632f9..111fa8c7b 100644
--- a/demos/ARM7-LPC214x-GCC/Makefile.thumb
+++ b/demos/ARM7-LPC214x-GCC/Makefile.thumb
@@ -122,7 +122,7 @@ LIBS = $(DLIBS) $(ULIBS)
MCFLAGS = -mcpu=$(MCU)
ASFLAGS = $(MCFLAGS) -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
-CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-ahlms=$(<:.c=.lst) $(DEFS)
+CPFLAGS = $(MCFLAGS) $(OPT) $(WARN) -Wa,-alms=$(<:.c=.lst) $(DEFS)
LDFLAGS = $(MCFLAGS) -nostartfiles -T$(LDSCRIPT) -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR)
ODFLAGS = -x --syms
diff --git a/demos/ARM7-LPC214x-GCC/chcore2.s b/demos/ARM7-LPC214x-GCC/chcore2.s
index 3bbffe26f..92d9d6d24 100644
--- a/demos/ARM7-LPC214x-GCC/chcore2.s
+++ b/demos/ARM7-LPC214x-GCC/chcore2.s
@@ -115,10 +115,11 @@ chSysSwitchI:
* interrupt handler:
*
* High +------------+
- * | R12 | -+
+ * | LR_USR | -+
+ * | R12 | |
* | R3 | |
- * | R2 | |
- * | R1 | | External context: IRQ handler frame
+ * | R2 | | External context: IRQ handler frame
+ * | R1 | |
* | R0 | |
* | LR_IRQ | | (user code return address)
* | SPSR | -+ (user code status)
@@ -136,7 +137,6 @@ chSysSwitchI:
*/
.globl IrqHandler
IrqHandler:
- sub lr, lr, #4
stmfd sp!, {r0-r3, r12, lr}
#ifdef THUMB_NO_INTERWORKING
add r0, pc, #1
@@ -152,7 +152,6 @@ IrqHandler:
.globl T0IrqHandler
T0IrqHandler:
- sub lr, lr, #4
stmfd sp!, {r0-r3, r12, lr}
#ifdef THUMB_NO_INTERWORKING
add r0, pc, #1
@@ -168,7 +167,6 @@ T0IrqHandler:
.globl UART0IrqHandler
UART0IrqHandler:
- sub lr, lr, #4
stmfd sp!, {r0-r3, r12, lr}
#ifdef THUMB_NO_INTERWORKING
add r0, pc, #1
@@ -184,7 +182,6 @@ UART0IrqHandler:
.globl UART1IrqHandler
UART1IrqHandler:
- sub lr, lr, #4
stmfd sp!, {r0-r3, r12, lr}
#ifdef THUMB_NO_INTERWORKING
add r0, pc, #1
@@ -216,12 +213,13 @@ IrqCommon:
bl chSchRescRequiredI
#endif
cmp r0, #0 // Simply returns if a
- ldmeqfd sp!, {r0-r3, r12, pc}^ // reschedule is not required.
+ ldmeqfd sp!, {r0-r3, r12, lr} // reschedule is not
+ subeqs pc, lr, #4 // required.
// Saves the IRQ mode registers in the system stack.
ldmfd sp!, {r0-r3, r12, lr} // IRQ stack now empty.
msr CPSR_c, #MODE_SYS | I_BIT
- stmfd sp!, {r0-r3, r12} // Registers on System Stack.
+ stmfd sp!, {r0-r3, r12, lr} // Registers on System Stack.
msr CPSR_c, #MODE_IRQ | I_BIT
mrs r0, SPSR
mov r1, lr
@@ -247,6 +245,6 @@ IrqCommon:
msr SPSR_fsxc, r0
mov lr, r1
msr CPSR_c, #MODE_SYS | I_BIT
- ldmfd sp!, {r0-r3, r12}
+ ldmfd sp!, {r0-r3, r12, lr}
msr CPSR_c, #MODE_IRQ | I_BIT
- subs pc, lr, #0
+ subs pc, lr, #4