aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/ARM7-LPC214x-G++/ch.ld2
-rw-r--r--demos/ARM7-LPC214x-G++/main.cpp24
-rw-r--r--docs/reports/AT91SAM7X-48-ARM.txt163
-rw-r--r--docs/reports/AT91SAM7X-48-THUMB.txt163
-rw-r--r--docs/reports/LPC2148-48-ARM.txt163
-rw-r--r--docs/reports/LPC2148-48-THUMB.txt163
-rw-r--r--docs/reports/STM32F103-48.txt163
-rw-r--r--docs/reports/STM32F103-72.txt163
-rw-r--r--readme.txt6
-rw-r--r--src/lib/ch.cpp2
-rw-r--r--test/testevt.c10
11 files changed, 645 insertions, 377 deletions
diff --git a/demos/ARM7-LPC214x-G++/ch.ld b/demos/ARM7-LPC214x-G++/ch.ld
index 2bbea7477..a79694e7b 100644
--- a/demos/ARM7-LPC214x-G++/ch.ld
+++ b/demos/ARM7-LPC214x-G++/ch.ld
@@ -25,7 +25,7 @@ __abt_stack_size__ = 0x0004;
__fiq_stack_size__ = 0x0010;
__irq_stack_size__ = 0x0080;
__svc_stack_size__ = 0x0004;
-__sys_stack_size__ = 0x0100;
+__sys_stack_size__ = 0x0800;
__stacks_total_size__ = __und_stack_size__ + __abt_stack_size__ + __fiq_stack_size__ + __irq_stack_size__ + __svc_stack_size__ + __sys_stack_size__;
MEMORY
diff --git a/demos/ARM7-LPC214x-G++/main.cpp b/demos/ARM7-LPC214x-G++/main.cpp
index 2f89d5dcf..647dee8a3 100644
--- a/demos/ARM7-LPC214x-G++/main.cpp
+++ b/demos/ARM7-LPC214x-G++/main.cpp
@@ -80,7 +80,7 @@ static const seqop_t LED3_sequence[] =
* Any sequencer is just an instance of this class, all the details are
* totally encapsulated and hidden to the application level.
*/
-class SequencerThread : EnhancedThread<128> {
+class SequencerThread : public EnhancedThread<128> {
private:
const seqop_t *base, *curr; // Thread local variables.
@@ -115,12 +115,30 @@ public:
};
/*
+ * Tester thread class. This thread executes the test suite.
+ */
+class TesterThread : public EnhancedThread<128> {
+
+protected:
+ virtual msg_t Main(void) {
+
+ return TestThread(&COM1);
+ }
+
+public:
+ TesterThread(void) : EnhancedThread<128>("tester") {
+ }
+};
+
+/*
* Executed as an event handler at 500mS intervals.
*/
static void TimerHandler(eventid_t id) {
- if (!(IO0PIN & 0x00018000)) // Both buttons
- TestThread(&COM1);
+ if (!(IO0PIN & 0x00018000)) { // Both buttons
+ TesterThread tester;
+ tester.Wait();
+ };
}
/*
diff --git a/docs/reports/AT91SAM7X-48-ARM.txt b/docs/reports/AT91SAM7X-48-ARM.txt
index 1b2ad97a3..91e820138 100644
--- a/docs/reports/AT91SAM7X-48-ARM.txt
+++ b/docs/reports/AT91SAM7X-48-ARM.txt
@@ -1,102 +1,143 @@
***************************************************************************
-Kernel: ChibiOS/RT 1.2.0 stable
-Compiler: GCC 4.3.2 (YAGARTO 28.09.2008)
Options: -O2 -fomit-frame-pointer -mabi=apcs-gnu
Settings: MCK=48.054857, MC_FMR = AT91C_MC_FWS_1FWS (1 wait state)
***************************************************************************
----------------------------------------------------------------------------
---- Test Case 1.1 (Ready List, priority enqueuing test #1)
+*** ChibiOS/RT test suite
+***
+*** Kernel: 1.3.0unstable
+*** Architecture: ARM7TDMI
+*** GCC Version: 4.3.3
+
+----------------------------------------------------------------------------
+--- Test Case 1.1 (Threads, enqueuing test #1)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Ready List, priority enqueuing test #2)
+----------------------------------------------------------------------------
+--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.1 (Semaphores, enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.2 (Semaphores, timeout test)
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.4 (CondVar, signal test)
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.5 (CondVar, broadcast test)
+----------------------------------------------------------------------------
+--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.6 (CondVar, inheritance boost test)
+----------------------------------------------------------------------------
+--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 4.1 (Messages, dispatch test)
+----------------------------------------------------------------------------
+--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 3.8 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.1 (Events, wait and broadcast)
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 6.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 7.1 (Heap, allocation and fragmentation test)
---- Size : 62260 bytes, not fragmented
+--- Size : 62112 bytes, not fragmented
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 8.1 (Memory Pools, allocation and enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Benchmark, context switch #1, optimal)
---- Score : 115499 msgs/S, 230998 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Queues, input queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Queues, output queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.1 (Serial driver, synchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.2 (Serial driver, asynchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 115476 msgs/S, 230952 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 90202 msgs/S, 180404 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Benchmark, context switch #2, empty ready list)
---- Score : 90222 msgs/S, 180444 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 90202 msgs/S, 180404 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.3 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 90222 msgs/S, 180444 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 394288 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.4 (Benchmark, threads creation/termination, worst case)
---- Score : 79431 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 79015 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.5 (Benchmark, threads creation/termination, optimal)
---- Score : 108923 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 108154 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.6 (Benchmark, mass reschedulation, 5 threads)
---- Score : 28045 reschedulations/S, 168270 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 28038 reschedulations/S, 168228 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.7 (Benchmark, I/O Queues throughput)
---- Score : 240464 bytes/S
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, I/O Queues throughput)
+--- Score : 231100 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.8 (Benchmark, virtual timers set/reset)
---- Score : 264212 timers/S
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, virtual timers set/reset)
+--- Score : 264138 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.9 (Benchmark, semaphores wait/signal)
---- Score : 466552 wait+signal/S
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, semaphores wait/signal)
+--- Score : 466428 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.10 (Benchmark, mutexes lock/unlock)
---- Score : 322036 lock+unlock/S
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, mutexes lock/unlock)
+--- Score : 321944 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/docs/reports/AT91SAM7X-48-THUMB.txt b/docs/reports/AT91SAM7X-48-THUMB.txt
index 9ca95c6e5..986d199b0 100644
--- a/docs/reports/AT91SAM7X-48-THUMB.txt
+++ b/docs/reports/AT91SAM7X-48-THUMB.txt
@@ -1,102 +1,143 @@
***************************************************************************
-Kernel: ChibiOS/RT 1.2.0 stable
-Compiler: GCC 4.3.2 (YAGARTO 28.09.2008)
Options: -Os -fomit-frame-pointer -mabi=apcs-gnu
Settings: MCK=48.054857, MC_FMR = AT91C_MC_FWS_1FWS (1 wait state)
***************************************************************************
----------------------------------------------------------------------------
---- Test Case 1.1 (Ready List, priority enqueuing test #1)
+*** ChibiOS/RT test suite
+***
+*** Kernel: 1.3.0unstable
+*** Architecture: ARM7TDMI
+*** GCC Version: 4.3.3
+
+----------------------------------------------------------------------------
+--- Test Case 1.1 (Threads, enqueuing test #1)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Ready List, priority enqueuing test #2)
+----------------------------------------------------------------------------
+--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.1 (Semaphores, enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.2 (Semaphores, timeout test)
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.4 (CondVar, signal test)
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.5 (CondVar, broadcast test)
+----------------------------------------------------------------------------
+--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.6 (CondVar, inheritance boost test)
+----------------------------------------------------------------------------
+--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 4.1 (Messages, dispatch test)
+----------------------------------------------------------------------------
+--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 3.8 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.1 (Events, wait and broadcast)
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 6.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 7.1 (Heap, allocation and fragmentation test)
---- Size : 62260 bytes, not fragmented
+--- Size : 62112 bytes, not fragmented
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 8.1 (Memory Pools, allocation and enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Benchmark, context switch #1, optimal)
---- Score : 103067 msgs/S, 206134 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Queues, input queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Queues, output queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.1 (Serial driver, synchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.2 (Serial driver, asynchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 103051 msgs/S, 206102 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 85385 msgs/S, 170770 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Benchmark, context switch #2, empty ready list)
---- Score : 85400 msgs/S, 170800 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 85385 msgs/S, 170770 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.3 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 85400 msgs/S, 170800 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 398888 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.4 (Benchmark, threads creation/termination, worst case)
---- Score : 82597 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 82154 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.5 (Benchmark, threads creation/termination, optimal)
---- Score : 113057 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 112237 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.6 (Benchmark, mass reschedulation, 5 threads)
---- Score : 27983 reschedulations/S, 167898 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 27978 reschedulations/S, 167868 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.7 (Benchmark, I/O Queues throughput)
---- Score : 263540 bytes/S
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, I/O Queues throughput)
+--- Score : 262760 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.8 (Benchmark, virtual timers set/reset)
---- Score : 323190 timers/S
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, virtual timers set/reset)
+--- Score : 323120 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.9 (Benchmark, semaphores wait/signal)
---- Score : 367232 wait+signal/S
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, semaphores wait/signal)
+--- Score : 367156 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.10 (Benchmark, mutexes lock/unlock)
---- Score : 263904 lock+unlock/S
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, mutexes lock/unlock)
+--- Score : 263848 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/docs/reports/LPC2148-48-ARM.txt b/docs/reports/LPC2148-48-ARM.txt
index a05e540ad..07613c361 100644
--- a/docs/reports/LPC2148-48-ARM.txt
+++ b/docs/reports/LPC2148-48-ARM.txt
@@ -1,102 +1,143 @@
***************************************************************************
-Kernel: ChibiOS/RT 1.2.0 stable
-Compiler: GCC 4.3.2 (YAGARTO 28.09.2008)
Options: -O2 -fomit-frame-pointer -mabi=apcs-gnu -falign-functions=16
Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
***************************************************************************
----------------------------------------------------------------------------
---- Test Case 1.1 (Ready List, priority enqueuing test #1)
+*** ChibiOS/RT test suite
+***
+*** Kernel: 1.3.0unstable
+*** Architecture: ARM7TDMI
+*** GCC Version: 4.3.3
+
+----------------------------------------------------------------------------
+--- Test Case 1.1 (Threads, enqueuing test #1)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Ready List, priority enqueuing test #2)
+----------------------------------------------------------------------------
+--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.1 (Semaphores, enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.2 (Semaphores, timeout test)
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.4 (CondVar, signal test)
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.5 (CondVar, broadcast test)
+----------------------------------------------------------------------------
+--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.6 (CondVar, inheritance boost test)
+----------------------------------------------------------------------------
+--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 4.1 (Messages, dispatch test)
+----------------------------------------------------------------------------
+--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 3.8 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.1 (Events, wait and broadcast)
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 6.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 7.1 (Heap, allocation and fragmentation test)
---- Size : 27516 bytes, not fragmented
+--- Size : 27360 bytes, not fragmented
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 8.1 (Memory Pools, allocation and enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Benchmark, context switch #1, optimal)
---- Score : 145332 msgs/S, 290664 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Queues, input queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Queues, output queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.1 (Serial driver, synchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.2 (Serial driver, asynchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 145306 msgs/S, 290612 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 112485 msgs/S, 224970 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Benchmark, context switch #2, empty ready list)
---- Score : 112504 msgs/S, 225008 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 112485 msgs/S, 224970 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.3 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 112504 msgs/S, 225008 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 506544 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.4 (Benchmark, threads creation/termination, worst case)
---- Score : 103493 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 103028 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.5 (Benchmark, threads creation/termination, optimal)
---- Score : 142303 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 141434 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.6 (Benchmark, mass reschedulation, 5 threads)
---- Score : 36169 reschedulations/S, 217014 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 36162 reschedulations/S, 216972 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.7 (Benchmark, I/O Queues throughput)
---- Score : 341232 bytes/S
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, I/O Queues throughput)
+--- Score : 334596 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.8 (Benchmark, virtual timers set/reset)
---- Score : 309620 timers/S
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, virtual timers set/reset)
+--- Score : 309448 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.9 (Benchmark, semaphores wait/signal)
---- Score : 622996 wait+signal/S
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, semaphores wait/signal)
+--- Score : 622892 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.10 (Benchmark, mutexes lock/unlock)
---- Score : 386404 lock+unlock/S
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, mutexes lock/unlock)
+--- Score : 386328 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/docs/reports/LPC2148-48-THUMB.txt b/docs/reports/LPC2148-48-THUMB.txt
index 9aa5d6394..6723c7c7e 100644
--- a/docs/reports/LPC2148-48-THUMB.txt
+++ b/docs/reports/LPC2148-48-THUMB.txt
@@ -1,102 +1,143 @@
***************************************************************************
-Kernel: ChibiOS/RT 1.2.0 stable
-Compiler: GCC 4.3.2 (YAGARTO 28.09.2008)
Options: -Os -fomit-frame-pointer -mabi=apcs-gnu -falign-functions=16
Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
***************************************************************************
----------------------------------------------------------------------------
---- Test Case 1.1 (Ready List, priority enqueuing test #1)
+*** ChibiOS/RT test suite
+***
+*** Kernel: 1.3.0unstable
+*** Architecture: ARM7TDMI
+*** GCC Version: 4.3.3
+
+----------------------------------------------------------------------------
+--- Test Case 1.1 (Threads, enqueuing test #1)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Ready List, priority enqueuing test #2)
+----------------------------------------------------------------------------
+--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.1 (Semaphores, enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.2 (Semaphores, timeout test)
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.4 (CondVar, signal test)
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.5 (CondVar, broadcast test)
+----------------------------------------------------------------------------
+--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.6 (CondVar, inheritance boost test)
+----------------------------------------------------------------------------
+--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 4.1 (Messages, dispatch test)
+----------------------------------------------------------------------------
+--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 3.8 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.1 (Events, wait and broadcast)
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 6.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 7.1 (Heap, allocation and fragmentation test)
---- Size : 27516 bytes, not fragmented
+--- Size : 27360 bytes, not fragmented
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 8.1 (Memory Pools, allocation and enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Benchmark, context switch #1, optimal)
---- Score : 103643 msgs/S, 207286 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Queues, input queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Queues, output queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.1 (Serial driver, synchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.2 (Serial driver, asynchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 103620 msgs/S, 207240 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 86227 msgs/S, 172454 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Benchmark, context switch #2, empty ready list)
---- Score : 86249 msgs/S, 172498 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 86227 msgs/S, 172454 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.3 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 86251 msgs/S, 172502 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 406992 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.4 (Benchmark, threads creation/termination, worst case)
---- Score : 83827 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 83513 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.5 (Benchmark, threads creation/termination, optimal)
---- Score : 114584 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 114007 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.6 (Benchmark, mass reschedulation, 5 threads)
---- Score : 28819 reschedulations/S, 172914 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 28812 reschedulations/S, 172872 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.7 (Benchmark, I/O Queues throughput)
---- Score : 262116 bytes/S
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, I/O Queues throughput)
+--- Score : 259552 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.8 (Benchmark, virtual timers set/reset)
---- Score : 302534 timers/S
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, virtual timers set/reset)
+--- Score : 302376 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.9 (Benchmark, semaphores wait/signal)
---- Score : 350728 wait+signal/S
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, semaphores wait/signal)
+--- Score : 350644 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.10 (Benchmark, mutexes lock/unlock)
---- Score : 249212 lock+unlock/S
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, mutexes lock/unlock)
+--- Score : 249148 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/docs/reports/STM32F103-48.txt b/docs/reports/STM32F103-48.txt
index 7e7169fd3..8a829998e 100644
--- a/docs/reports/STM32F103-48.txt
+++ b/docs/reports/STM32F103-48.txt
@@ -1,102 +1,143 @@
***************************************************************************
-Kernel: ChibiOS/RT 1.2.0 stable
-Compiler: GCC 4.3.2 (YAGARTO 28.09.2008)
Options: -O2 -fomit-frame-pointer -mabi=apcs-gnu -falign-functions=16
Settings: SYSCLK=48, ACR=0x11 (1 wait state)
***************************************************************************
----------------------------------------------------------------------------
---- Test Case 1.1 (Ready List, priority enqueuing test #1)
+*** ChibiOS/RT test suite
+***
+*** Kernel: 1.3.0unstable
+*** Architecture: ARM Cortex-M3
+*** GCC Version: 4.3.3
+
+----------------------------------------------------------------------------
+--- Test Case 1.1 (Threads, enqueuing test #1)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Ready List, priority enqueuing test #2)
+----------------------------------------------------------------------------
+--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.1 (Semaphores, enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.2 (Semaphores, timeout test)
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.4 (CondVar, signal test)
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.5 (CondVar, broadcast test)
+----------------------------------------------------------------------------
+--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.6 (CondVar, inheritance boost test)
+----------------------------------------------------------------------------
+--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 4.1 (Messages, dispatch test)
+----------------------------------------------------------------------------
+--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 3.8 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.1 (Events, wait and broadcast)
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 6.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 7.1 (Heap, allocation and fragmentation test)
---- Size : 17236 bytes, not fragmented
+--- Size : 17092 bytes, not fragmented
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 8.1 (Memory Pools, allocation and enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Benchmark, context switch #1, optimal)
---- Score : 161114 msgs/S, 322228 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Queues, input queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Queues, output queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.1 (Serial driver, synchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.2 (Serial driver, asynchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 161093 msgs/S, 322186 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 132900 msgs/S, 265800 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Benchmark, context switch #2, empty ready list)
---- Score : 132929 msgs/S, 265858 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 132900 msgs/S, 265800 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.3 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 132929 msgs/S, 265858 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 493248 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.4 (Benchmark, threads creation/termination, worst case)
---- Score : 123333 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 123311 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.5 (Benchmark, threads creation/termination, optimal)
---- Score : 158976 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 159485 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.6 (Benchmark, mass reschedulation, 5 threads)
---- Score : 41867 reschedulations/S, 251202 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 41861 reschedulations/S, 251166 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.7 (Benchmark, I/O Queues throughput)
---- Score : 377568 bytes/S
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, I/O Queues throughput)
+--- Score : 365960 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.8 (Benchmark, virtual timers set/reset)
---- Score : 525902 timers/S
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, virtual timers set/reset)
+--- Score : 525822 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.9 (Benchmark, semaphores wait/signal)
---- Score : 676444 wait+signal/S
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, semaphores wait/signal)
+--- Score : 676360 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.10 (Benchmark, mutexes lock/unlock)
---- Score : 489620 lock+unlock/S
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, mutexes lock/unlock)
+--- Score : 489544 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/docs/reports/STM32F103-72.txt b/docs/reports/STM32F103-72.txt
index 631a841b7..73e5cd0d8 100644
--- a/docs/reports/STM32F103-72.txt
+++ b/docs/reports/STM32F103-72.txt
@@ -1,102 +1,143 @@
***************************************************************************
-Kernel: ChibiOS/RT 1.2.0 stable
-Compiler: GCC 4.3.2 (YAGARTO 28.09.2008)
Options: -O2 -fomit-frame-pointer -mabi=apcs-gnu -falign-functions=16
Settings: SYSCLK=72, ACR=0x12 (2 wait states)
***************************************************************************
----------------------------------------------------------------------------
---- Test Case 1.1 (Ready List, priority enqueuing test #1)
+*** ChibiOS/RT test suite
+***
+*** Kernel: 1.3.0unstable
+*** Architecture: ARM Cortex-M3
+*** GCC Version: 4.3.3
+
+----------------------------------------------------------------------------
+--- Test Case 1.1 (Threads, enqueuing test #1)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Ready List, priority enqueuing test #2)
+----------------------------------------------------------------------------
+--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.1 (Semaphores, enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.2 (Semaphores, timeout test)
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.4 (CondVar, signal test)
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.5 (CondVar, broadcast test)
+----------------------------------------------------------------------------
+--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.6 (CondVar, inheritance boost test)
+----------------------------------------------------------------------------
+--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 4.1 (Messages, dispatch test)
+----------------------------------------------------------------------------
+--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 3.8 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.1 (Events, wait and broadcast)
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
+--- Test Case 6.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
--- Test Case 7.1 (Heap, allocation and fragmentation test)
---- Size : 17236 bytes, not fragmented
+--- Size : 17092 bytes, not fragmented
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 8.1 (Memory Pools, allocation and enqueuing test)
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
--- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Benchmark, context switch #1, optimal)
---- Score : 215042 msgs/S, 430084 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Queues, input queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Queues, output queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.1 (Serial driver, synchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.2 (Serial driver, asynchronous)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 215037 msgs/S, 430074 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 174745 msgs/S, 349490 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Benchmark, context switch #2, empty ready list)
---- Score : 174751 msgs/S, 349502 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 174745 msgs/S, 349490 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.3 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 174751 msgs/S, 349502 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 676760 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.4 (Benchmark, threads creation/termination, worst case)
---- Score : 165113 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 164727 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.5 (Benchmark, threads creation/termination, optimal)
---- Score : 215044 threads/S
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 215680 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.6 (Benchmark, mass reschedulation, 5 threads)
---- Score : 54747 reschedulations/S, 328482 ctxswc/S
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 54745 reschedulations/S, 328470 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.7 (Benchmark, I/O Queues throughput)
---- Score : 489472 bytes/S
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, I/O Queues throughput)
+--- Score : 474888 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.8 (Benchmark, virtual timers set/reset)
---- Score : 647110 timers/S
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, virtual timers set/reset)
+--- Score : 647072 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.9 (Benchmark, semaphores wait/signal)
---- Score : 823324 wait+signal/S
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, semaphores wait/signal)
+--- Score : 823264 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.10 (Benchmark, mutexes lock/unlock)
---- Score : 601124 lock+unlock/S
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, mutexes lock/unlock)
+--- Score : 601084 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
+----------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/readme.txt b/readme.txt
index 533782d47..72e5b56e9 100644
--- a/readme.txt
+++ b/readme.txt
@@ -85,6 +85,12 @@ GNU-Linux-GCC - ChibiOS/RT simulator for x86 Linux systems, it is
(bug 2789501)(backported in stable branch).
- FIX: Fixed C99-style variable declarations (bug 2792919)(backported in
stable branch).
+- FIX: Fixed instance of obsolete CH_USE_TERMINATE option in the C++ wrapper
+ (bug 2796065)(backported in stable branch).
+- FIX: Insufficient stack allocated to the C++ LPC2148 demo (bug 2796069)
+ (backported in stable branch).
+- FIX: Fixed errors in events test case (bug 2796081)(backported in stable
+ branch).
- NEW: Abstract I/O Channels mechanism introduced. This mechanism allows to
access I/O resources through a standard interface and hides implementation
details. The existing serial drivers were modified to offer a standard
diff --git a/src/lib/ch.cpp b/src/lib/ch.cpp
index eaca06358..6e338630e 100644
--- a/src/lib/ch.cpp
+++ b/src/lib/ch.cpp
@@ -103,12 +103,10 @@ namespace chibios_rt {
chThdResume(thread_ref);
}
-#if CH_USE_TERMINATE
void BaseThread::Terminate(void) {
chThdTerminate(thread_ref);
}
-#endif /* CH_USE_TERMINATE */
void BaseThread::Sleep(systime_t n) {
diff --git a/test/testevt.c b/test/testevt.c
index e053737a5..3eb3d71b3 100644
--- a/test/testevt.c
+++ b/test/testevt.c
@@ -171,7 +171,7 @@ static void evt2_execute(void) {
test_assert(1, m == 1, "single event error");
m = chEvtWaitOne(ALL_EVENTS);
test_assert(2, m == 4, "single event error");
- m = chEvtClear(0);
+ m = chEvtClear(ALL_EVENTS);
test_assert(3, m == 0, "stuck event");
/*
@@ -184,7 +184,7 @@ static void evt2_execute(void) {
m = chEvtWaitOne(ALL_EVENTS);
test_assert_time_window(4, target_time, target_time + ALLOWED_DELAY);
test_assert(5, m == 1, "single event error");
- m = chEvtClear(0);
+ m = chEvtClear(ALL_EVENTS);
test_assert(6, m == 0, "stuck event");
test_wait_threads();
@@ -194,7 +194,7 @@ static void evt2_execute(void) {
chEvtPend(5);
m = chEvtWaitAny(ALL_EVENTS);
test_assert(7, m == 5, "unexpected pending bit");
- m = chEvtClear(0);
+ m = chEvtClear(ALL_EVENTS);
test_assert(8, m == 0, "stuck event");
/*
@@ -207,7 +207,7 @@ static void evt2_execute(void) {
m = chEvtWaitAny(ALL_EVENTS);
test_assert_time_window(9, target_time, target_time + ALLOWED_DELAY);
test_assert(10, m == 1, "single event error");
- m = chEvtClear(0);
+ m = chEvtClear(ALL_EVENTS);
test_assert(11, m == 0, "stuck event");
test_wait_threads();
@@ -224,7 +224,7 @@ static void evt2_execute(void) {
thread2, "A");
m = chEvtWaitAll(5);
test_assert_time_window(12, target_time, target_time + ALLOWED_DELAY);
- m = chEvtClear(0);
+ m = chEvtClear(ALL_EVENTS);
test_assert(13, m == 0, "stuck event");
test_wait_threads();
chEvtUnregister(&es1, &el1);