From ae97c97b114c0e56d9881d54fbc97a052976b25a Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 15 Nov 2008 10:19:57 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@510 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/ARM7-LPC214x-GCC/main.c | 32 +++++++++--------- demos/ARMCM3-STM32F103-GCC/main.c | 6 ++-- docs/reports/AT91SAM7X-48-ARM.txt | 53 ++++++++++++++++++----------- docs/reports/LPC2148-48-ARM.txt | 51 +++++++++++++++++----------- docs/reports/LPC2148-48-THUMB.txt | 55 +++++++++++++++++++------------ docs/reports/STM32F103-48.txt | 51 ++++++++++++++++++---------- docs/reports/STM32F103-72.txt | 53 +++++++++++++++++++---------- ports/ARMCM3/chcore.c | 2 +- readme.txt | 1 + 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 (Heap, allocation and fragmentation test) ---- Size : 17324 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 : 17252 bytes, not fragmented --- Result: SUCCESS --------------------------------------------------------------------------- ---- Test Case 13 (Benchmark, context switch #1, optimal) +--- Test Case 13 (Memory Pools, allocation and enqueuing test) +--- Result: SUCCESS +--------------------------------------------------------------------------- +--- Test Case 14 (Dynamic APIs, threads creation from heap) +--- Result: SUCCESS +--------------------------------------------------------------------------- +--- 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 (Heap, allocation and fragmentation test) ---- Size : 17324 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 : 17252 bytes, not fragmented --- Result: SUCCESS --------------------------------------------------------------------------- ---- Test Case 13 (Benchmark, context switch #1, optimal) +--- Test Case 13 (Memory Pools, allocation and enqueuing test) +--- Result: SUCCESS +--------------------------------------------------------------------------- +--- Test Case 14 (Dynamic APIs, threads creation from heap) +--- Result: SUCCESS +--------------------------------------------------------------------------- +--- 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.