aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-10-16 18:55:09 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-10-16 18:55:09 +0000
commit73a96c620a805c16d22a0e4a16def5498a3337f5 (patch)
tree263e8a960c781a4acf989d02df17b3ef9b1e738d
parent8a0ff15114ba3715ac24bf7e81dde790bc725c41 (diff)
downloadChibiOS-73a96c620a805c16d22a0e4a16def5498a3337f5.tar.gz
ChibiOS-73a96c620a805c16d22a0e4a16def5498a3337f5.tar.bz2
ChibiOS-73a96c620a805c16d22a0e4a16def5498a3337f5.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7406 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--doc/reports/LPC2148-48-ARM.txt28
-rw-r--r--os/rt/ports/ARM/compilers/GCC/chcoreasm.s21
2 files changed, 21 insertions, 28 deletions
diff --git a/doc/reports/LPC2148-48-ARM.txt b/doc/reports/LPC2148-48-ARM.txt
index 44b066f62..75861a228 100644
--- a/doc/reports/LPC2148-48-ARM.txt
+++ b/doc/reports/LPC2148-48-ARM.txt
@@ -6,8 +6,8 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
*** ChibiOS/RT test suite
***
*** Kernel: 3.0.0dev
-*** Compiled: Oct 14 2014 - 19:58:28
-*** Compiler: GCC 4.7.4 20140401 (release) [ARM/embedded-4_7-branch revision 209195]
+*** Compiled: Oct 16 2014 - 18:28:29
+*** Compiler: GCC 4.7.4 20140401 (release) [ARM/embedded-4_7-branch revision 209195]
*** Architecture: ARMv4T
*** Core Variant: ARM7
*** Port Info: Pure ARM mode
@@ -100,51 +100,51 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.1 (Benchmark, messages #1)
---- Score : 149904 msgs/S, 299808 ctxswc/S
+--- Score : 149917 msgs/S, 299834 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
---- Score : 115226 msgs/S, 230452 ctxswc/S
+--- Score : 115237 msgs/S, 230474 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.3 (Benchmark, messages #3)
---- Score : 115226 msgs/S, 230452 ctxswc/S
+--- Score : 115237 msgs/S, 230474 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.4 (Benchmark, context switch)
---- Score : 506696 ctxswc/S
+--- Score : 506736 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.5 (Benchmark, threads, full cycle)
---- Score : 87582 threads/S
+--- Score : 87589 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.6 (Benchmark, threads, create only)
---- Score : 123245 threads/S
+--- Score : 123256 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
---- Score : 35795 reschedules/S, 214770 ctxswc/S
+--- Score : 35798 reschedules/S, 214788 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.8 (Benchmark, round robin context switching)
---- Score : 269780 ctxswc/S
+--- Score : 269800 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
---- Score : 368200 bytes/S
+--- Score : 368232 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
---- Score : 313730 timers/S
+--- Score : 313756 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
---- Score : 577876 wait+signal/S
+--- Score : 577928 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)
---- Score : 365748 lock+unlock/S
+--- Score : 365776 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.13 (Benchmark, RAM footprint)
diff --git a/os/rt/ports/ARM/compilers/GCC/chcoreasm.s b/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
index d73f877ed..751598084 100644
--- a/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
+++ b/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
@@ -63,7 +63,6 @@ _port_get_cpsr:
.code 32
mrs r0, CPSR
bx lr
- .endfunc
.balign 16
.code 16
@@ -79,7 +78,6 @@ _port_disable_thumb:
orr r3, #F_BIT
msr CPSR_c, r3
bx lr
- .endfunc
.balign 16
.code 16
@@ -96,7 +94,6 @@ _port_lock_thumb:
.code 32
msr CPSR_c, #MODE_SYS | I_BIT
bx lr
- .endfunc
.balign 16
.code 16
@@ -113,7 +110,6 @@ _port_unlock_thumb:
.code 32
msr CPSR_c, #MODE_SYS
bx lr
- .endfunc
#endif /* defined(THUMB_PRESENT) */
.balign 16
@@ -128,7 +124,6 @@ _port_switch_thumb:
#endif /* defined(THUMB_PRESENT) */
.code 32
- .func
.global _port_switch_arm
_port_switch_arm:
stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
@@ -140,7 +135,6 @@ _port_switch_arm:
#else /* !defined(THUMB_PRESENT)T */
ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc}
#endif /* !defined(THUMB_PRESENT) */
- .endfunc
/*
* Common IRQ code. It expects a macro ARM_IRQ_VECTOR_REG with the address
@@ -173,7 +167,6 @@ _port_switch_arm:
*/
.balign 16
.code 32
- .func
.global Irq_Handler
Irq_Handler:
stmfd sp!, {r0-r3, r12, lr}
@@ -184,18 +177,20 @@ Irq_Handler:
bx r0 // Calling the ISR.
_irq_ret_arm:
#else /* defined(THUMB_NO_INTERWORKING) */
- add r0, pc, #1
- bx r0
+ add r1, pc, #1
+ bx r1
.code 16
- ldr lr, =_irq_ret_thumb // ISR return point.
+ ldr r1, =(_irq_ret_thumb+1) // ISR return point.
+ mov lr,r1
bx r0 // Calling the ISR.
+ .balign 4
_irq_ret_thumb:
mov lr, pc
bx lr
.code 32
#endif /* defined(THUMB_NO_INTERWORKING) */
cmp r0, #0
- ldmeq sp!, {r0-r3, r12, lr}
+ ldmfd sp!, {r0-r3, r12, lr}
subeqs pc, lr, #4 // No reschedule, returns.
// Now the frame is created in the system stack, the IRQ
@@ -242,7 +237,6 @@ _irq_ret_thumb:
ldmfd sp!, {r0-r3, r12, lr}
msr CPSR_c, #MODE_IRQ | I_BIT
subs pc, lr, #4
- .endfunc
/*
* Threads trampoline code.
@@ -251,7 +245,6 @@ _irq_ret_thumb:
*/
.balign 16
.code 32
- .func
.globl _port_thread_start
_port_thread_start:
#if defined(THUMB_NO_INTERWORKING)
@@ -272,7 +265,7 @@ _port_thread_start:
mov lr, pc
bx r4
bl chThdExit
- .endfunc
+_zombies: b _zombies
#endif /* !defined(__DOXYGEN__) */