git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@328 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
8a02a67d83
commit
5f4dbf9ca9
1724
docs/Doxyfile
1724
docs/Doxyfile
File diff suppressed because it is too large
Load Diff
10
docs/ch.txt
10
docs/ch.txt
|
@ -507,3 +507,13 @@
|
|||
* @file chserial.c Serial Drivers code.
|
||||
*/
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* @defgroup CPlusPlusLibrary C++ Wrapper
|
||||
* @{
|
||||
* C++ wrapper module. This module allows to use the ChibiOS/RT functionalities
|
||||
* from C++ as classes and objects rather the traditional "C" APIs.
|
||||
* @file ch.hpp C++ wrapper classes and definitions.
|
||||
* @file ch.cpp C++ wrapper code.
|
||||
*/
|
||||
/** @} */
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; vertical-align: top; width: 150px;">Current
|
||||
Version 0.6.6<br>
|
||||
Version 0.6.7<br>
|
||||
-<br>
|
||||
<a href="http://sourceforge.net/projects/chibios/" rel="me" target="_top">Project on SourceForge</a><br>
|
||||
<a href="html/index.html" target="_top" rel="me">Documentation</a><br>
|
||||
|
|
|
@ -74,6 +74,11 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process,
|
|||
*** Releases ***
|
||||
*****************************************************************************
|
||||
|
||||
*** 0.6.7 ***
|
||||
- Improvements to the test framework, now a virtual timer is used instead of
|
||||
software loops into the bechmarks in order to have more stable results.
|
||||
- Added the C++ wrapper entries to the documentation.
|
||||
|
||||
*** 0.6.6 ***
|
||||
- NEW: Improved test suite, now the suite is divided in modules and the code
|
||||
is much easier to understand. The new framework simplifies the inclusion of
|
||||
|
|
|
@ -41,12 +41,15 @@ namespace chibios_rt {
|
|||
|
||||
/**
|
||||
* Disables interrupts.
|
||||
* @note On some ports it is faster to invoke chSysLock() directly.
|
||||
* @note On some ports it is faster to invoke chSysLock() directly because
|
||||
* inlining.
|
||||
*/
|
||||
static void Lock(void);
|
||||
|
||||
/**
|
||||
* Enables interrupts.
|
||||
* @note On some ports it is faster to invoke chSysUnlock() directly.
|
||||
* @note On some ports it is faster to invoke chSysUnlock() directly
|
||||
* because inlining.
|
||||
*/
|
||||
static void Unlock(void);
|
||||
|
||||
|
@ -89,7 +92,7 @@ namespace chibios_rt {
|
|||
|
||||
/**
|
||||
* Base class for a ChibiOS/RT thread, the thread body is the virtual
|
||||
* function /p Main().
|
||||
* function \p Main().
|
||||
*/
|
||||
class BaseThread {
|
||||
public:
|
||||
|
@ -162,7 +165,7 @@ namespace chibios_rt {
|
|||
static msg_t WaitMessage(void);
|
||||
|
||||
/**
|
||||
* Returns an enqueued message or /p NULL.
|
||||
* Returns an enqueued message or \p NULL.
|
||||
*/
|
||||
static msg_t GetMessage(void);
|
||||
|
||||
|
@ -207,7 +210,7 @@ namespace chibios_rt {
|
|||
|
||||
/**
|
||||
* Simplified constructor, it allows to create a thread by simply
|
||||
* specifying a name. In is assumed /p NORMALPRIO as initial priority
|
||||
* specifying a name. In is assumed \p NORMALPRIO as initial priority
|
||||
* and no special option flags.
|
||||
*/
|
||||
EnhancedThread(const char *tname) :
|
||||
|
@ -219,7 +222,7 @@ namespace chibios_rt {
|
|||
|
||||
#ifdef CH_USE_SEMAPHORES
|
||||
/**
|
||||
* Class encapsulating a /p Semaphore.
|
||||
* Class encapsulating a \p Semaphore.
|
||||
*/
|
||||
class Semaphore {
|
||||
public:
|
||||
|
@ -263,7 +266,7 @@ namespace chibios_rt {
|
|||
|
||||
#ifdef CH_USE_MUTEXES
|
||||
/**
|
||||
* Class encapsulating a /p Mutex.
|
||||
* Class encapsulating a \p Mutex.
|
||||
*/
|
||||
class Mutex {
|
||||
public:
|
||||
|
@ -298,7 +301,7 @@ namespace chibios_rt {
|
|||
|
||||
#ifdef CH_USE_EVENTS
|
||||
/**
|
||||
* Class encapsulating an /p EventSource.
|
||||
* Class encapsulating an \p EventSource.
|
||||
*/
|
||||
class Event {
|
||||
public:
|
||||
|
|
37
test/test.c
37
test/test.c
|
@ -167,22 +167,27 @@ void test_cpu_pulse(systime_t ms) {
|
|||
|
||||
systime_t test_wait_tick(void) {
|
||||
|
||||
systime_t time = chSysGetTime() + 1;
|
||||
if (time) {
|
||||
while (chSysGetTime() < time) {
|
||||
#if defined(WIN32)
|
||||
ChkIntSources();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else {
|
||||
while (chSysGetTime() > time) {
|
||||
#if defined(WIN32)
|
||||
ChkIntSources();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
return time;
|
||||
chThdSleep(1);
|
||||
return chSysGetTime();
|
||||
}
|
||||
|
||||
/*
|
||||
* Timer utils.
|
||||
*/
|
||||
static VirtualTimer vt;
|
||||
bool_t test_timer_done;
|
||||
|
||||
static void tmr(void *p) {
|
||||
|
||||
test_timer_done = TRUE;
|
||||
}
|
||||
|
||||
void test_start_timer(systime_t time) {
|
||||
|
||||
test_timer_done = FALSE;
|
||||
chSysLock();
|
||||
chVTSetI(&vt, time, tmr, NULL);
|
||||
chSysUnlock();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -53,11 +53,13 @@ extern "C" {
|
|||
void test_wait_threads(void);
|
||||
systime_t test_wait_tick(void);
|
||||
void test_cpu_pulse(systime_t ms);
|
||||
void test_start_timer(systime_t time);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
extern Thread *threads[MAX_THREADS];
|
||||
extern void *wa[MAX_THREADS];
|
||||
extern bool_t test_timer_done;
|
||||
|
||||
#endif /* _TEST_H_ */
|
||||
|
|
|
@ -25,9 +25,9 @@ __attribute__((noinline))
|
|||
static unsigned int msg_loop_test(Thread *tp) {
|
||||
|
||||
uint32_t n = 0;
|
||||
systime_t start = test_wait_tick();
|
||||
systime_t end = start + 1000;
|
||||
while (chSysInTimeWindow(start, end)) {
|
||||
test_wait_tick();
|
||||
test_start_timer(1000);
|
||||
while (!test_timer_done) {
|
||||
(void)chMsgSend(tp, 0);
|
||||
n++;
|
||||
#if defined(WIN32)
|
||||
|
@ -164,10 +164,10 @@ static void bmk4_teardown(void) {
|
|||
|
||||
static void bmk4_execute(void) {
|
||||
|
||||
systime_t start = test_wait_tick();
|
||||
systime_t end = start + 1000;
|
||||
uint32_t n = 0;
|
||||
while (chSysInTimeWindow(start, end)) {
|
||||
test_wait_tick();
|
||||
test_start_timer(1000);
|
||||
while (!test_timer_done) {
|
||||
threads[0] = chThdCreate(chThdGetPriority()-1, 0, wa[0], STKSIZE, thread2, NULL);
|
||||
chThdWait(threads[0]);
|
||||
n++;
|
||||
|
@ -203,10 +203,10 @@ static void bmk5_execute(void) {
|
|||
static Queue iq;
|
||||
|
||||
chIQInit(&iq, ib, sizeof(ib), NULL);
|
||||
systime_t start = test_wait_tick();
|
||||
systime_t end = start + 1000;
|
||||
uint32_t n = 0;
|
||||
while (chSysInTimeWindow(start, end)) {
|
||||
test_wait_tick();
|
||||
test_start_timer(1000);
|
||||
while (!test_timer_done) {
|
||||
chIQPutI(&iq, 0);
|
||||
chIQPutI(&iq, 1);
|
||||
chIQPutI(&iq, 2);
|
||||
|
|
Loading…
Reference in New Issue