git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@118 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
6f0569444d
commit
f20b97abe7
|
@ -27,8 +27,8 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process,
|
|||
MinGW version.
|
||||
Win32-MSVS - ChibiOS/RT simulator and demo into a WIN32 process,
|
||||
Visual Studio 7 or any later version should work.
|
||||
ARM7-LPC214x-GCC - ChibiOS/RT port for ARM7 LPC2148, the demo targets the
|
||||
Olimex LPC-P2148 board. This port can be easily
|
||||
ARM7-LPC214x-GCC - ChibiOS/RT port for ARM7 LPC2148, the demo targets
|
||||
the Olimex LPC-P2148 board. This port can be easily
|
||||
modified for any processor into the LPC2000 family or
|
||||
other boards. The demo can be compiled using YAGARTO
|
||||
or any other GCC-based ARM toolchain. Full demo.
|
||||
|
@ -44,6 +44,10 @@ AVR-AT90CANx-GCC - Port on AVR AT90CAN128, not complete yet.
|
|||
chEvtWaitTimeout() code if it is enabled.
|
||||
- Size optimization in the semaphores code, now the chSemWaitTimeout() just
|
||||
invokes the chSemWaitTimeoutS() inside its system mutex zone.
|
||||
- Added a threads create/exit/wait benchmark to the test suite, the system
|
||||
is capable of 81712 threads started/terminated per second on the reference
|
||||
LPC2148 board. The figure is inclusive of two context switch operations
|
||||
for each thread.
|
||||
- Minor improvement in the LPC214x serial driver, unneeded events were
|
||||
generated in some rare cases.
|
||||
- Fixed a chSysInit() documentation error.
|
||||
|
|
31
test/test.c
31
test/test.c
|
@ -19,7 +19,9 @@
|
|||
|
||||
#include <ch.h>
|
||||
|
||||
#if defined(WIN32)
|
||||
void ChkIntSources(void);
|
||||
#endif
|
||||
|
||||
#if defined(WIN32) && defined(_DEBUG)
|
||||
static WorkingArea(wsT1, 512);
|
||||
|
@ -122,6 +124,11 @@ t_msg Thread6(void *p) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
t_msg Thread7(void *p) {
|
||||
|
||||
return (unsigned int)p + 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tester thread, this thread must be created with priority \p NORMALPRIO.
|
||||
*/
|
||||
|
@ -254,9 +261,29 @@ t_msg TestThread(void *p) {
|
|||
chThdWait(t1);
|
||||
print("Messages throughput = ");
|
||||
printn(i);
|
||||
print(" msg/S, ");
|
||||
print(" msgs/S, ");
|
||||
printn(i << 1);
|
||||
println(" ctxsw/S");
|
||||
println(" ctxsws/S");
|
||||
|
||||
println("*** Kernel Benchmark, threads creation/termination:");
|
||||
time = chSysGetTime() + 1;
|
||||
while (chSysGetTime() < time) {
|
||||
#if defined(WIN32)
|
||||
ChkIntSources();
|
||||
#endif
|
||||
}
|
||||
time += 1000;
|
||||
i = 0;
|
||||
while (chSysGetTime() < time) {
|
||||
t1 = chThdCreate(chThdGetPriority()-1, 0, wsT1, sizeof(wsT1), Thread7, (void *)i);
|
||||
i = chThdWait(t1);
|
||||
#if defined(WIN32)
|
||||
ChkIntSources();
|
||||
#endif
|
||||
}
|
||||
print("Threads throughput = ");
|
||||
printn(i);
|
||||
print(" threads/S");
|
||||
|
||||
println("\r\nTest complete");
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue