aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-11-15 10:19:57 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-11-15 10:19:57 +0000
commitae97c97b114c0e56d9881d54fbc97a052976b25a (patch)
tree149200cc5cef7053572e983212253874faa3e139
parentbc3964df2684cd45fde0802597f4cdf1face4a12 (diff)
downloadChibiOS-ae97c97b114c0e56d9881d54fbc97a052976b25a.tar.gz
ChibiOS-ae97c97b114c0e56d9881d54fbc97a052976b25a.tar.bz2
ChibiOS-ae97c97b114c0e56d9881d54fbc97a052976b25a.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@510 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--demos/ARM7-LPC214x-GCC/main.c32
-rw-r--r--demos/ARMCM3-STM32F103-GCC/main.c6
-rw-r--r--docs/reports/AT91SAM7X-48-ARM.txt53
-rw-r--r--docs/reports/LPC2148-48-ARM.txt51
-rw-r--r--docs/reports/LPC2148-48-THUMB.txt55
-rw-r--r--docs/reports/STM32F103-48.txt51
-rw-r--r--docs/reports/STM32F103-72.txt53
-rw-r--r--ports/ARMCM3/chcore.c2
-rw-r--r--readme.txt1
9 files changed, 189 insertions, 115 deletions
diff --git a/demos/ARM7-LPC214x-GCC/main.c b/demos/ARM7-LPC214x-GCC/main.c
index 9b231408f..90dece112 100644
--- a/demos/ARM7-LPC214x-GCC/main.c
+++ b/demos/ARM7-LPC214x-GCC/main.c
@@ -34,13 +34,13 @@ static msg_t Thread1(void *arg) {
while (TRUE) {
IO0CLR = 0x00000800;
- chThdSleep(200);
+ chThdSleepMilliseconds(200);
IO0SET = 0x00000C00;
- chThdSleep(800);
+ chThdSleepMilliseconds(800);
IO0CLR = 0x00000400;
- chThdSleep(200);
+ chThdSleepMilliseconds(200);
IO0SET = 0x00000C00;
- chThdSleep(800);
+ chThdSleepMilliseconds(800);
}
return 0;
}
@@ -53,9 +53,9 @@ static msg_t Thread2(void *arg) {
while (TRUE) {
IO0CLR = 0x80000000;
- chThdSleep(200);
+ chThdSleepMilliseconds(200);
IO0SET = 0x80000000;
- chThdSleep(300);
+ chThdSleepMilliseconds(300);
}
return 0;
}
@@ -71,14 +71,14 @@ static void TimerHandler(eventid_t id) {
Thread *tp = chThdCreateStatic(waTestThread, sizeof(waTestThread),
NORMALPRIO, TestThread, &COM1);
chThdWait(tp);
- PlaySound(500, 100);
+ PlaySound(500, MS2ST(100));
}
else {
if (!(IO0PIN & 0x00008000)) // Button 1
- PlaySound(1000, 100);
+ PlaySound(1000, MS2ST(100));
if (!(IO0PIN & 0x00010000)) { // Button 2
chFDDWrite(&COM1, (uint8_t *)"Hello World!\r\n", 14);
- PlaySound(2000, 100);
+ PlaySound(2000, MS2ST(100));
}
}
}
@@ -91,8 +91,8 @@ static void InsertHandler(eventid_t id) {
static uint8_t rwbuf[512];
MMCCSD data;
- PlaySoundWait(1000, 100);
- PlaySoundWait(2000, 100);
+ PlaySoundWait(1000, MS2ST(100));
+ PlaySoundWait(2000, MS2ST(100));
if (mmcInit())
return;
/* Card ready, do stuff.*/
@@ -100,7 +100,7 @@ static void InsertHandler(eventid_t id) {
return;
if (mmcRead(rwbuf, 0))
return;
- PlaySound(440, 200);
+ PlaySound(440, MS2ST(200));
}
/*
@@ -108,8 +108,8 @@ static void InsertHandler(eventid_t id) {
*/
static void RemoveHandler(eventid_t id) {
- PlaySoundWait(2000, 100);
- PlaySoundWait(1000, 100);
+ PlaySoundWait(2000, MS2ST(100));
+ PlaySoundWait(1000, MS2ST(100));
}
/*
@@ -138,13 +138,13 @@ int main(int argc, char **argv) {
* Normal main() activity, in this demo it serves events generated by
* various sources.
*/
- evtInit(&evt, 500); /* Initializes an event timer object. */
+ evtInit(&evt, MS2ST(500)); /* Initializes an event timer object. */
evtStart(&evt); /* Starts the event timer. */
chEvtRegister(&evt.et_es, &el0, 0); /* Registers on the timer event source. */
mmcStartPolling(); /* Starts the MMC connector polling. */
chEvtRegister(&MMCInsertEventSource, &el1, 1);
chEvtRegister(&MMCRemoveEventSource, &el2, 2);
while (TRUE) /* Just serve events. */
- chEvtWait(ALL_EVENTS, evhndl);
+ chEvtDispatch(evhndl, chEvtWaitOne(ALL_EVENTS));
return 0;
}
diff --git a/demos/ARMCM3-STM32F103-GCC/main.c b/demos/ARMCM3-STM32F103-GCC/main.c
index 0df4bc03d..055fa3a45 100644
--- a/demos/ARMCM3-STM32F103-GCC/main.c
+++ b/demos/ARMCM3-STM32F103-GCC/main.c
@@ -31,9 +31,9 @@ static msg_t Thread1(void *arg) {
while (TRUE) {
GPIOC->BRR = GPIOC_LED;
- chThdSleep(500);
+ chThdSleepMilliseconds(500);
GPIOC->BSRR = GPIOC_LED;
- chThdSleep(500);
+ chThdSleepMilliseconds(500);
}
return 0;
}
@@ -56,7 +56,7 @@ int main(int argc, char **argv) {
while (TRUE) {
if (GPIOA->IDR & GPIOA_BUTTON)
TestThread(&COM2);
- chThdSleep(500);
+ chThdSleepMilliseconds(500);
}
return 0;
}
diff --git a/docs/reports/AT91SAM7X-48-ARM.txt b/docs/reports/AT91SAM7X-48-ARM.txt
index ce810b41e..6e637f698 100644
--- a/docs/reports/AT91SAM7X-48-ARM.txt
+++ b/docs/reports/AT91SAM7X-48-ARM.txt
@@ -1,5 +1,5 @@
***************************************************************************
-Kernel: ChibiOS/RT 0.7.2
+Kernel: ChibiOS/RT 0.8.0
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)
@@ -27,49 +27,62 @@ Settings: MCK=48.054857, MC_FMR = AT91C_MC_FWS_1FWS (1 wait state)
--- Test Case 7 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 8 (Messages, dispatch test)
+--- Test Case 8 (CondVar, signal test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 9 (Heap, allocation and fragmentation test)
---- Size : 62452 bytes, not fragmented
+--- Test Case 9 (CondVar, broadcast test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 10 (Memory Pools, allocation and enqueuing test)
+--- Test Case 10 (Messages, dispatch test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 11 (Dynamic APIs, threads creation from heap)
+--- Test Case 11 (Events, wait and broadcast)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 12 (Dynamic APIs, threads creation from memory pool)
+--- Test Case 12 (Heap, allocation and fragmentation test)
+--- Size : 42600 bytes, not fragmented
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 13 (Benchmark, context switch #1, optimal)
---- Score : 114945 msgs/S, 229890 ctxswc/S
+--- Test Case 13 (Memory Pools, allocation and enqueuing test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 14 (Benchmark, context switch #2, empty ready list)
---- Score : 90221 msgs/S, 180442 ctxswc/S
+--- Test Case 14 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 15 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 90221 msgs/S, 180442 ctxswc/S
+--- Test Case 15 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 16 (Benchmark, threads creation/termination, worst case)
---- Score : 66878 threads/S
+--- Test Case 16 (Benchmark, context switch #1, optimal)
+--- Score : 114943 msgs/S, 229886 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 17 (Benchmark, threads creation/termination, optimal)
---- Score : 92312 threads/S
+--- Test Case 17 (Benchmark, context switch #2, empty ready list)
+--- Score : 90220 msgs/S, 180440 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 18 (Benchmark, mass reschedulation, 5 threads)
---- Score : 27850 reschedulations/S, 167100 ctxswc/S
+--- Test Case 18 (Benchmark, context switch #3, 4 threads in ready list)
+--- Score : 90220 msgs/S, 180440 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 19 (Benchmark, I/O Queues throughput)
+--- Test Case 19 (Benchmark, threads creation/termination, worst case)
+--- Score : 67064 threads/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 20 (Benchmark, threads creation/termination, optimal)
+--- Score : 92668 threads/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 21 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 27963 reschedulations/S, 167778 ctxswc/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 22 (Benchmark, I/O Queues throughput)
--- Score : 240464 bytes/S
--- Result: SUCCESS
---------------------------------------------------------------------------
+--- Test Case 23 (Benchmark, virtual timers set/reset)
+--- Score : 240308 timers/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/docs/reports/LPC2148-48-ARM.txt b/docs/reports/LPC2148-48-ARM.txt
index c97b82ae3..49950b73e 100644
--- a/docs/reports/LPC2148-48-ARM.txt
+++ b/docs/reports/LPC2148-48-ARM.txt
@@ -1,5 +1,5 @@
***************************************************************************
-Kernel: ChibiOS/RT 0.7.2
+Kernel: ChibiOS/RT 0.8.0
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)
@@ -27,49 +27,62 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
--- Test Case 7 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 8 (Messages, dispatch test)
+--- Test Case 8 (CondVar, signal test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 9 (Heap, allocation and fragmentation test)
---- Size : 28116 bytes, not fragmented
+--- Test Case 9 (CondVar, broadcast test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 10 (Memory Pools, allocation and enqueuing test)
+--- Test Case 10 (Messages, dispatch test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 11 (Dynamic APIs, threads creation from heap)
+--- Test Case 11 (Events, wait and broadcast)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 12 (Dynamic APIs, threads creation from memory pool)
+--- Test Case 12 (Heap, allocation and fragmentation test)
+--- Size : 27788 bytes, not fragmented
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 13 (Benchmark, context switch #1, optimal)
---- Score : 144453 msgs/S, 288906 ctxswc/S
+--- Test Case 13 (Memory Pools, allocation and enqueuing test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 14 (Benchmark, context switch #2, empty ready list)
---- Score : 111980 msgs/S, 223960 ctxswc/S
+--- Test Case 14 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 15 (Benchmark, context switch #3, 4 threads in ready list)
+--- Test Case 15 (Dynamic APIs, threads creation from memory pool)
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 16 (Benchmark, context switch #1, optimal)
+--- Score : 144452 msgs/S, 288904 ctxswc/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 17 (Benchmark, context switch #2, empty ready list)
--- Score : 111979 msgs/S, 223958 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 16 (Benchmark, threads creation/termination, worst case)
---- Score : 86464 threads/S
+--- Test Case 18 (Benchmark, context switch #3, 4 threads in ready list)
+--- Score : 111978 msgs/S, 223956 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 17 (Benchmark, threads creation/termination, optimal)
---- Score : 118939 threads/S
+--- Test Case 19 (Benchmark, threads creation/termination, worst case)
+--- Score : 86776 threads/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 18 (Benchmark, mass reschedulation, 5 threads)
---- Score : 35870 reschedulations/S, 215220 ctxswc/S
+--- Test Case 20 (Benchmark, threads creation/termination, optimal)
+--- Score : 119534 threads/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 19 (Benchmark, I/O Queues throughput)
+--- Test Case 21 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 36005 reschedulations/S, 216030 ctxswc/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 22 (Benchmark, I/O Queues throughput)
--- Score : 341232 bytes/S
--- Result: SUCCESS
---------------------------------------------------------------------------
+--- Test Case 23 (Benchmark, virtual timers set/reset)
+--- Score : 309498 timers/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/docs/reports/LPC2148-48-THUMB.txt b/docs/reports/LPC2148-48-THUMB.txt
index 93dae7113..fe51b97a8 100644
--- a/docs/reports/LPC2148-48-THUMB.txt
+++ b/docs/reports/LPC2148-48-THUMB.txt
@@ -1,5 +1,5 @@
***************************************************************************
-Kernel: ChibiOS/RT 0.7.2
+Kernel: ChibiOS/RT 0.8.0
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)
@@ -27,48 +27,61 @@ Settings: CCLK=48, MAMCR=2, MAMTIM=3 (3 wait states)
--- Test Case 7 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 8 (Messages, dispatch test)
+--- Test Case 8 (CondVar, signal test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 9 (Heap, allocation and fragmentation test)
---- Size : 27988 bytes, not fragmented
+--- Test Case 9 (CondVar, broadcast test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 10 (Memory Pools, allocation and enqueuing test)
+--- Test Case 10 (Messages, dispatch test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 11 (Dynamic APIs, threads creation from heap)
+--- Test Case 11 (Events, wait and broadcast)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 12 (Dynamic APIs, threads creation from memory pool)
+--- Test Case 12 (Heap, allocation and fragmentation test)
+--- Size : 27644 bytes, not fragmented
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 13 (Benchmark, context switch #1, optimal)
---- Score : 98911 msgs/S, 197822 ctxswc/S
+--- Test Case 13 (Memory Pools, allocation and enqueuing test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 14 (Benchmark, context switch #2, empty ready list)
---- Score : 83525 msgs/S, 167050 ctxswc/S
+--- Test Case 14 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 15 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 83526 msgs/S, 167052 ctxswc/S
+--- Test Case 15 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 16 (Benchmark, threads creation/termination, worst case)
---- Score : 70158 threads/S
+--- Test Case 16 (Benchmark, context switch #1, optimal)
+--- Score : 98924 msgs/S, 197848 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 17 (Benchmark, threads creation/termination, optimal)
---- Score : 100582 threads/S
+--- Test Case 17 (Benchmark, context switch #2, empty ready list)
+--- Score : 83531 msgs/S, 167062 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 18 (Benchmark, mass reschedulation, 5 threads)
---- Score : 28222 reschedulations/S, 169332 ctxswc/S
+--- Test Case 18 (Benchmark, context switch #3, 4 threads in ready list)
+--- Score : 83530 msgs/S, 167060 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 19 (Benchmark, I/O Queues throughput)
---- Score : 242376 bytes/S
+--- Test Case 19 (Benchmark, threads creation/termination, worst case)
+--- Score : 70471 threads/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 20 (Benchmark, threads creation/termination, optimal)
+--- Score : 101230 threads/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 21 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 28157 reschedulations/S, 168942 ctxswc/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 22 (Benchmark, I/O Queues throughput)
+--- Score : 242396 bytes/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 23 (Benchmark, virtual timers set/reset)
+--- Score : 272272 timers/S
--- Result: SUCCESS
---------------------------------------------------------------------------
diff --git a/docs/reports/STM32F103-48.txt b/docs/reports/STM32F103-48.txt
index 5e20f0277..bef27a35c 100644
--- a/docs/reports/STM32F103-48.txt
+++ b/docs/reports/STM32F103-48.txt
@@ -1,10 +1,14 @@
***************************************************************************
-Kernel: ChibiOS/RT 0.7.2
+Kernel: ChibiOS/RT 0.8.0
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)
***************************************************************************
+*****************************
+*** ChibiOS/RT test suite ***
+*****************************
+
---------------------------------------------------------------------------
--- Test Case 1 (Ready List, priority enqueuing test #1)
--- Result: SUCCESS
@@ -27,49 +31,62 @@ Settings: SYSCLK=48, ACR=0x11 (1 wait state)
--- Test Case 7 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 8 (Messages, dispatch test)
+--- Test Case 8 (CondVar, signal test)
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 9 (CondVar, broadcast test)
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 10 (Messages, dispatch test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 9 (Heap, allocation and fragmentation test)
---- Size : 17324 bytes, not fragmented
+--- Test Case 11 (Events, wait and broadcast)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 10 (Memory Pools, allocation and enqueuing test)
+--- Test Case 12 (Heap, allocation and fragmentation test)
+--- Size : 17252 bytes, not fragmented
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 11 (Dynamic APIs, threads creation from heap)
+--- Test Case 13 (Memory Pools, allocation and enqueuing test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 12 (Dynamic APIs, threads creation from memory pool)
+--- Test Case 14 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 13 (Benchmark, context switch #1, optimal)
+--- Test Case 15 (Dynamic APIs, threads creation from memory pool)
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 16 (Benchmark, context switch #1, optimal)
--- Score : 160572 msgs/S, 321144 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 14 (Benchmark, context switch #2, empty ready list)
+--- Test Case 17 (Benchmark, context switch #2, empty ready list)
--- Score : 134029 msgs/S, 268058 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 15 (Benchmark, context switch #3, 4 threads in ready list)
+--- Test Case 18 (Benchmark, context switch #3, 4 threads in ready list)
--- Score : 134029 msgs/S, 268058 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 16 (Benchmark, threads creation/termination, worst case)
---- Score : 105399 threads/S
+--- Test Case 19 (Benchmark, threads creation/termination, worst case)
+--- Score : 105867 threads/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 17 (Benchmark, threads creation/termination, optimal)
---- Score : 137112 threads/S
+--- Test Case 20 (Benchmark, threads creation/termination, optimal)
+--- Score : 137919 threads/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 18 (Benchmark, mass reschedulation, 5 threads)
---- Score : 42051 reschedulations/S, 252306 ctxswc/S
+--- Test Case 21 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 42162 reschedulations/S, 252972 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 19 (Benchmark, I/O Queues throughput)
+--- Test Case 22 (Benchmark, I/O Queues throughput)
--- Score : 377572 bytes/S
--- Result: SUCCESS
---------------------------------------------------------------------------
+--- Test Case 23 (Benchmark, virtual timers set/reset)
+--- Score : 525896 timers/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/docs/reports/STM32F103-72.txt b/docs/reports/STM32F103-72.txt
index 6d1918e65..20f82a64b 100644
--- a/docs/reports/STM32F103-72.txt
+++ b/docs/reports/STM32F103-72.txt
@@ -1,10 +1,14 @@
***************************************************************************
-Kernel: ChibiOS/RT 0.7.2
+Kernel: ChibiOS/RT 0.8.0
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)
***************************************************************************
+*****************************
+*** ChibiOS/RT test suite ***
+*****************************
+
---------------------------------------------------------------------------
--- Test Case 1 (Ready List, priority enqueuing test #1)
--- Result: SUCCESS
@@ -27,49 +31,62 @@ Settings: SYSCLK=72, ACR=0x12 (2 wait states)
--- Test Case 7 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 8 (Messages, dispatch test)
+--- Test Case 8 (CondVar, signal test)
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 9 (CondVar, broadcast test)
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 10 (Messages, dispatch test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 9 (Heap, allocation and fragmentation test)
---- Size : 17324 bytes, not fragmented
+--- Test Case 11 (Events, wait and broadcast)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 10 (Memory Pools, allocation and enqueuing test)
+--- Test Case 12 (Heap, allocation and fragmentation test)
+--- Size : 17252 bytes, not fragmented
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 11 (Dynamic APIs, threads creation from heap)
+--- Test Case 13 (Memory Pools, allocation and enqueuing test)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 12 (Dynamic APIs, threads creation from memory pool)
+--- Test Case 14 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 13 (Benchmark, context switch #1, optimal)
+--- Test Case 15 (Dynamic APIs, threads creation from memory pool)
+--- Result: SUCCESS
+---------------------------------------------------------------------------
+--- Test Case 16 (Benchmark, context switch #1, optimal)
--- Score : 216994 msgs/S, 433988 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 14 (Benchmark, context switch #2, empty ready list)
+--- Test Case 17 (Benchmark, context switch #2, empty ready list)
--- Score : 178662 msgs/S, 357324 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 15 (Benchmark, context switch #3, 4 threads in ready list)
---- Score : 178663 msgs/S, 357326 ctxswc/S
+--- Test Case 18 (Benchmark, context switch #3, 4 threads in ready list)
+--- Score : 178662 msgs/S, 357324 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 16 (Benchmark, threads creation/termination, worst case)
---- Score : 141108 threads/S
+--- Test Case 19 (Benchmark, threads creation/termination, worst case)
+--- Score : 141666 threads/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 17 (Benchmark, threads creation/termination, optimal)
---- Score : 187046 threads/S
+--- Test Case 20 (Benchmark, threads creation/termination, optimal)
+--- Score : 188024 threads/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 18 (Benchmark, mass reschedulation, 5 threads)
---- Score : 55768 reschedulations/S, 334608 ctxswc/S
+--- Test Case 21 (Benchmark, mass reschedulation, 5 threads)
+--- Score : 55552 reschedulations/S, 333312 ctxswc/S
--- Result: SUCCESS
---------------------------------------------------------------------------
---- Test Case 19 (Benchmark, I/O Queues throughput)
+--- Test Case 22 (Benchmark, I/O Queues throughput)
--- Score : 489476 bytes/S
--- Result: SUCCESS
---------------------------------------------------------------------------
+--- Test Case 23 (Benchmark, virtual timers set/reset)
+--- Score : 647106 timers/S
+--- Result: SUCCESS
+---------------------------------------------------------------------------
Final result: SUCCESS
diff --git a/ports/ARMCM3/chcore.c b/ports/ARMCM3/chcore.c
index b9c7ce39a..2944c5ae2 100644
--- a/ports/ARMCM3/chcore.c
+++ b/ports/ARMCM3/chcore.c
@@ -169,7 +169,7 @@ void PendSVVector(void) {
PUSH_CONTEXT(sp_thd);
(otp = currp)->p_ctx.r13 = sp_thd;
- (currp = fifo_remove(&rlist.r_queue))->p_state = PRCURR;
+ (currp = fifo_remove((void *)&rlist))->p_state = PRCURR;
chSchReadyI(otp);
#ifdef CH_USE_ROUNDROBIN
/* set the round-robin time quantum */
diff --git a/readme.txt b/readme.txt
index 8c8065762..582fdf719 100644
--- a/readme.txt
+++ b/readme.txt
@@ -98,6 +98,7 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process,
- Renamed the macro fifo_init() to queue_init() because it is used to init
both FIFO queues and priority queues.
- Fixes and improvements to the documentation.
+- Cleaned demo applications of old events code.
*** 0.7.3 ***
- FIX: Fixed a bug in chThdSleepUntil(), this API is no more a macro now.