git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@330 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2008-07-03 15:18:59 +00:00
parent d7443aaab6
commit 558007d1cf
1 changed files with 16 additions and 15 deletions

View File

@ -21,6 +21,15 @@
#include "test.h"
static msg_t thread1(void *p) {
msg_t msg;
do {
chMsgRelease(msg = chMsgWait());
} while (msg);
return 0;
}
__attribute__((noinline))
static unsigned int msg_loop_test(Thread *tp) {
@ -28,12 +37,13 @@ static unsigned int msg_loop_test(Thread *tp) {
test_wait_tick();
test_start_timer(1000);
do {
(void)chMsgSend(tp, 0);
(void)chMsgSend(tp, 1);
n++;
#if defined(WIN32)
ChkIntSources();
#endif
} while (!test_timer_done);
(void)chMsgSend(tp, 0);
return n;
}
@ -48,13 +58,6 @@ static void bmk1_setup(void) {
static void bmk1_teardown(void) {
}
static msg_t thread1(void *p) {
while (!chThdShouldTerminate())
chMsgRelease(chMsgWait());
return 0;
}
static void bmk1_execute(void) {
uint32_t n;
@ -93,7 +96,6 @@ static void bmk2_execute(void) {
threads[0] = chThdCreate(chThdGetPriority()+1, 0, wa[0], STKSIZE, thread1, 0);
n = msg_loop_test(threads[0]);
chThdTerminate(threads[0]);
chMsgSend(threads[0], 0);
test_wait_threads();
test_print("--- Score : ");
test_printn(n);
@ -109,6 +111,11 @@ const struct testcase testbmk2 = {
bmk2_execute
};
static msg_t thread2(void *p) {
return (msg_t)p;
}
static char *bmk3_gettest(void) {
return "Benchmark, context switch #3, 4 threads in ready list";
@ -120,11 +127,6 @@ static void bmk3_setup(void) {
static void bmk3_teardown(void) {
}
static msg_t thread2(void *p) {
return (msg_t)p;
}
static void bmk3_execute(void) {
uint32_t n;
@ -135,7 +137,6 @@ static void bmk3_execute(void) {
threads[4] = chThdCreate(chThdGetPriority()-5, 0, wa[4], STKSIZE, thread2, 0);
n = msg_loop_test(threads[0]);
chThdTerminate(threads[0]);
chMsgSend(threads[0], 0);
test_wait_threads();
test_print("--- Score : ");
test_printn(n);