aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-11-23 13:12:43 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-11-23 13:12:43 +0000
commitb3cde3102597b28a9e2b9ba1132ffe8c6c176ff1 (patch)
treef340d2ff359c6fbeb9a881aedd6061b11ee6feb4
parentce5b8d63f626f1d97e60973aff42607a4979a45a (diff)
downloadChibiOS-b3cde3102597b28a9e2b9ba1132ffe8c6c176ff1.tar.gz
ChibiOS-b3cde3102597b28a9e2b9ba1132ffe8c6c176ff1.tar.bz2
ChibiOS-b3cde3102597b28a9e2b9ba1132ffe8c6c176ff1.zip
e200 CW port working, report added.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8521 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcpbin61993 -> 61993 bytes
-rw-r--r--doc/rt/reports/SPC560D-48-CW.txt164
-rw-r--r--os/common/ports/e200/compilers/CW/unhandled.s23
-rw-r--r--os/common/ports/e200/devices/SPC560Dxx/boot_cw.s26
4 files changed, 191 insertions, 22 deletions
diff --git a/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp b/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp
index d5a9378a2..406eade39 100644
--- a/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp
+++ b/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp
Binary files differ
diff --git a/doc/rt/reports/SPC560D-48-CW.txt b/doc/rt/reports/SPC560D-48-CW.txt
new file mode 100644
index 000000000..cfe1e98dd
--- /dev/null
+++ b/doc/rt/reports/SPC560D-48-CW.txt
@@ -0,0 +1,164 @@
+
+*** ChibiOS/RT test suite
+***
+*** Kernel: 3.1.0
+*** Compiled: Nov 23 2015 - 14:08:46
+*** Compiler: CW
+*** Architecture: Power Architecture
+*** Core Variant: e200z0
+*** Port Info: VLE mode
+*** Platform: SPC560Dxx Car Body and Convenience
+*** Test Board: EVB with SPC560Dxx Mini Module
+
+----------------------------------------------------------------------------
+--- Test Case 1.1 (System, critical zones)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (System, interrupts handling)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.3 (System, integrity)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.1 (Threads, enqueuing test #1)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.4 (Threads, delays)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.1 (Semaphores, enqueuing)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.2 (Semaphores, timeout)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.3 (Semaphores, atomic signal-wait)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Binary Semaphores, functionality)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Mutexes, priority enqueuing test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.2 (Mutexes, priority return)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.3 (Mutexes, status)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.4 (CondVar, signal test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.5 (CondVar, broadcast test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.6 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 5.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Mailboxes, queuing and timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.2 (Events, wait and broadcast)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Heap, allocation and fragmentation test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 9.1 (Memory Pools, queue/dequeue)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Dynamic APIs, threads creation from heap)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Dynamic APIs, threads creation from memory pool)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.3 (Dynamic APIs, registry and references)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.1 (Queues, input queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.2 (Queues, output queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 137795 msgs/S, 275590 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 121356 msgs/S, 242712 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 121356 msgs/S, 242712 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 431744 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 97184 threads/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 131718 threads/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
+--- Score : 39290 reschedules/S, 235740 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, round robin context switching)
+--- Score : 255000 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, I/O Queues throughput)
+--- Score : 377420 bytes/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, virtual timers set/reset)
+--- Score : 540416 timers/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, semaphores wait/signal)
+--- Score : 535768 wait+signal/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
+--- Score : 433696 lock+unlock/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.13 (Benchmark, RAM footprint)
+--- System: 640 bytes
+--- Thread: 68 bytes
+--- Timer : 20 bytes
+--- Semaph: 12 bytes
+--- EventS: 4 bytes
+--- EventL: 20 bytes
+--- Mutex : 16 bytes
+--- CondV.: 8 bytes
+--- Queue : 36 bytes
+--- MailB.: 40 bytes
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+
+Final result: SUCCESS
+
diff --git a/os/common/ports/e200/compilers/CW/unhandled.s b/os/common/ports/e200/compilers/CW/unhandled.s
index b1cf4d48d..8efb51dac 100644
--- a/os/common/ports/e200/compilers/CW/unhandled.s
+++ b/os/common/ports/e200/compilers/CW/unhandled.s
@@ -37,6 +37,29 @@
.section .text_vle
.align 4
+ .weak _IVOR0, _IVOR1, _IVOR2, _IVOR3, _IVOR4, _IVOR5
+ .weak _IVOR6, _IVOR7, _IVOR8, _IVOR9, _IVOR10, _IVOR11
+ .weak _IVOR12, _IVOR13, _IVOR14, _IVOR15
+_IVOR0:
+_IVOR1:
+_IVOR2:
+_IVOR3:
+_IVOR4:
+_IVOR5:
+_IVOR6:
+_IVOR7:
+_IVOR8:
+_IVOR9:
+_IVOR10:
+_IVOR11:
+_IVOR12:
+_IVOR13:
+_IVOR14:
+_IVOR15:
+ .global _unhandled_irq
+_unhandled_exception:
+ se_b _unhandled_exception
+
.weak vector0, vector1, vector2, vector3
#if PPC_NUM_VECTORS > 4
.weak vector4, vector5, vector6, vector7
diff --git a/os/common/ports/e200/devices/SPC560Dxx/boot_cw.s b/os/common/ports/e200/devices/SPC560Dxx/boot_cw.s
index 6f2e0fee4..362257abb 100644
--- a/os/common/ports/e200/devices/SPC560Dxx/boot_cw.s
+++ b/os/common/ports/e200/devices/SPC560Dxx/boot_cw.s
@@ -34,6 +34,10 @@
.extern __ram_end__
.extern __ivpr_base__
+ .extern _IVOR0, _IVOR1, _IVOR2, _IVOR3, _IVOR4, _IVOR5
+ .extern _IVOR6, _IVOR7, _IVOR8, _IVOR9, _IVOR10, _IVOR11
+ .extern _IVOR12, _IVOR13, _IVOR14, _IVOR15
+
/* BAM record.*/
.section .boot, 16
@@ -193,28 +197,6 @@ IVORS:
.section .handlers, text_vle
.align 16
- .weak _IVOR0, _IVOR1, _IVOR2, _IVOR3, _IVOR4, _IVOR5
- .weak _IVOR6, _IVOR7, _IVOR8, _IVOR9, _IVOR10, _IVOR11
- .weak _IVOR12, _IVOR13, _IVOR14, _IVOR15
- .weak _unhandled_exception
-_IVOR0:
-_IVOR1:
-_IVOR2:
-_IVOR3:
-_IVOR4:
-_IVOR5:
-_IVOR6:
-_IVOR7:
-_IVOR8:
-_IVOR9:
-_IVOR10:
-_IVOR11:
-_IVOR12:
-_IVOR13:
-_IVOR14:
-_IVOR15:
-_unhandled_exception:
- se_b _unhandled_exception
#endif /* !defined(__DOXYGEN__) */