aboutsummaryrefslogtreecommitdiffstats
path: root/test/rt
diff options
context:
space:
mode:
Diffstat (limited to 'test/rt')
-rw-r--r--test/rt/test.c16
-rw-r--r--test/rt/test.mk1
-rw-r--r--test/rt/testbmk.c101
-rw-r--r--test/rt/testbuild/chconf.h120
4 files changed, 68 insertions, 170 deletions
diff --git a/test/rt/test.c b/test/rt/test.c
index f4a08eeea..09f0ea91c 100644
--- a/test/rt/test.c
+++ b/test/rt/test.c
@@ -36,7 +36,6 @@
#include "testheap.h"
#include "testpools.h"
#include "testdyn.h"
-#include "testqueues.h"
#include "testbmk.h"
/*
@@ -53,7 +52,6 @@ static ROMCONST struct testcase * ROMCONST *patterns[] = {
patternheap,
patternpools,
patterndyn,
- patternqueues,
patternbmk,
NULL
};
@@ -95,13 +93,13 @@ void test_printn(uint32_t n) {
char buf[16], *p;
if (!n)
- chSequentialStreamPut(chp, '0');
+ streamPut(chp, '0');
else {
p = buf;
while (n)
*p++ = (n % 10) + '0', n /= 10;
while (p > buf)
- chSequentialStreamPut(chp, *--p);
+ streamPut(chp, *--p);
}
}
@@ -113,7 +111,7 @@ void test_printn(uint32_t n) {
void test_print(const char *msgp) {
while (*msgp)
- chSequentialStreamPut(chp, *msgp++);
+ streamPut(chp, *msgp++);
}
/**
@@ -124,7 +122,7 @@ void test_print(const char *msgp) {
void test_println(const char *msgp) {
test_print(msgp);
- chSequentialStreamWrite(chp, (const uint8_t *)"\r\n", 2);
+ streamWrite(chp, (const uint8_t *)"\r\n", 2);
}
/*
@@ -139,7 +137,7 @@ static void print_tokens(void) {
char *cp = tokens_buffer;
while (cp < tokp)
- chSequentialStreamPut(chp, *cp++);
+ streamPut(chp, *cp++);
}
/**
@@ -304,8 +302,8 @@ static void print_line(void) {
unsigned i;
for (i = 0; i < 76; i++)
- chSequentialStreamPut(chp, '-');
- chSequentialStreamWrite(chp, (const uint8_t *)"\r\n", 2);
+ streamPut(chp, '-');
+ streamWrite(chp, (const uint8_t *)"\r\n", 2);
}
/**
diff --git a/test/rt/test.mk b/test/rt/test.mk
index 03de3c89a..8e929df3c 100644
--- a/test/rt/test.mk
+++ b/test/rt/test.mk
@@ -9,7 +9,6 @@ TESTSRC = ${CHIBIOS}/test/rt/test.c \
${CHIBIOS}/test/rt/testheap.c \
${CHIBIOS}/test/rt/testpools.c \
${CHIBIOS}/test/rt/testdyn.c \
- ${CHIBIOS}/test/rt/testqueues.c \
${CHIBIOS}/test/rt/testsys.c \
${CHIBIOS}/test/rt/testbmk.c
diff --git a/test/rt/testbmk.c b/test/rt/testbmk.c
index 3cc713089..b5d4e4a6d 100644
--- a/test/rt/testbmk.c
+++ b/test/rt/testbmk.c
@@ -48,7 +48,6 @@
* - @subpage test_benchmarks_010
* - @subpage test_benchmarks_011
* - @subpage test_benchmarks_012
- * - @subpage test_benchmarks_013
* .
* @file testbmk.c Kernel Benchmarks
* @brief Kernel Benchmarks source file
@@ -448,57 +447,8 @@ ROMCONST struct testcase testbmk8 = {
bmk8_execute
};
-#if CH_CFG_USE_QUEUES || defined(__DOXYGEN__)
/**
- * @page test_benchmarks_009 I/O Queues throughput
- *
- * <h2>Description</h2>
- * Four bytes are written and then read from an @p InputQueue into a continuous
- * loop.<br>
- * The performance is calculated by measuring the number of iterations after
- * a second of continuous operations.
- */
-
-static void bmk9_execute(void) {
- uint32_t n;
- static uint8_t ib[16];
- static input_queue_t iq;
-
- chIQObjectInit(&iq, ib, sizeof(ib), NULL, NULL);
- n = 0;
- test_wait_tick();
- test_start_timer(1000);
- do {
- chSysLock();
- chIQPutI(&iq, 0);
- chIQPutI(&iq, 1);
- chIQPutI(&iq, 2);
- chIQPutI(&iq, 3);
- chSysUnlock();
- (void)chIQGet(&iq);
- (void)chIQGet(&iq);
- (void)chIQGet(&iq);
- (void)chIQGet(&iq);
- n++;
-#if defined(SIMULATOR)
- _sim_check_for_interrupts();
-#endif
- } while (!test_timer_done);
- test_print("--- Score : ");
- test_printn(n * 4);
- test_println(" bytes/S");
-}
-
-ROMCONST struct testcase testbmk9 = {
- "Benchmark, I/O Queues throughput",
- NULL,
- NULL,
- bmk9_execute
-};
-#endif /* CH_CFG_USE_QUEUES */
-
-/**
- * @page test_benchmarks_010 Virtual Timers set/reset performance
+ * @page test_benchmarks_009 Virtual Timers set/reset performance
*
* <h2>Description</h2>
* A virtual timer is set and immediately reset into a continuous loop.<br>
@@ -508,7 +458,7 @@ ROMCONST struct testcase testbmk9 = {
static void tmo(void *param) {(void)param;}
-static void bmk10_execute(void) {
+static void bmk09_execute(void) {
static virtual_timer_t vt1, vt2;
uint32_t n = 0;
@@ -531,16 +481,16 @@ static void bmk10_execute(void) {
test_println(" timers/S");
}
-ROMCONST struct testcase testbmk10 = {
+ROMCONST struct testcase testbmk9 = {
"Benchmark, virtual timers set/reset",
NULL,
NULL,
- bmk10_execute
+ bmk09_execute
};
#if CH_CFG_USE_SEMAPHORES || defined(__DOXYGEN__)
/**
- * @page test_benchmarks_011 Semaphores wait/signal performance
+ * @page test_benchmarks_010 Semaphores wait/signal performance
*
* <h2>Description</h2>
* A counting semaphore is taken/released into a continuous loop, no Context
@@ -549,12 +499,12 @@ ROMCONST struct testcase testbmk10 = {
* a second of continuous operations.
*/
-static void bmk11_setup(void) {
+static void bmk10_setup(void) {
chSemObjectInit(&sem1, 1);
}
-static void bmk11_execute(void) {
+static void bmk10_execute(void) {
uint32_t n = 0;
test_wait_tick();
@@ -578,17 +528,17 @@ static void bmk11_execute(void) {
test_println(" wait+signal/S");
}
-ROMCONST struct testcase testbmk11 = {
+ROMCONST struct testcase testbmk10 = {
"Benchmark, semaphores wait/signal",
- bmk11_setup,
+ bmk10_setup,
NULL,
- bmk11_execute
+ bmk10_execute
};
#endif
#if CH_CFG_USE_MUTEXES || defined(__DOXYGEN__)
/**
- * @page test_benchmarks_012 Mutexes lock/unlock performance
+ * @page test_benchmarks_011 Mutexes lock/unlock performance
*
* <h2>Description</h2>
* A mutex is locked/unlocked into a continuous loop, no Context Switch happens
@@ -597,12 +547,12 @@ ROMCONST struct testcase testbmk11 = {
* a second of continuous operations.
*/
-static void bmk12_setup(void) {
+static void bmk11_setup(void) {
chMtxObjectInit(&mtx1);
}
-static void bmk12_execute(void) {
+static void bmk11_execute(void) {
uint32_t n = 0;
test_wait_tick();
@@ -626,22 +576,22 @@ static void bmk12_execute(void) {
test_println(" lock+unlock/S");
}
-ROMCONST struct testcase testbmk12 = {
+ROMCONST struct testcase testbmk11 = {
"Benchmark, mutexes lock/unlock",
- bmk12_setup,
+ bmk11_setup,
NULL,
- bmk12_execute
+ bmk11_execute
};
#endif
/**
- * @page test_benchmarks_013 RAM Footprint
+ * @page test_benchmarks_012 RAM Footprint
*
* <h2>Description</h2>
* The memory size of the various kernel objects is printed.
*/
-static void bmk13_execute(void) {
+static void bmk12_execute(void) {
test_print("--- System: ");
test_printn(sizeof(ch_system_t));
@@ -675,7 +625,7 @@ static void bmk13_execute(void) {
test_printn(sizeof(condition_variable_t));
test_println(" bytes");
#endif
-#if CH_CFG_USE_QUEUES || defined(__DOXYGEN__)
+#if 0
test_print("--- Queue : ");
test_printn(sizeof(io_queue_t));
test_println(" bytes");
@@ -687,11 +637,11 @@ static void bmk13_execute(void) {
#endif
}
-ROMCONST struct testcase testbmk13 = {
+ROMCONST struct testcase testbmk12 = {
"Benchmark, RAM footprint",
NULL,
NULL,
- bmk13_execute
+ bmk12_execute
};
/**
@@ -711,17 +661,14 @@ ROMCONST struct testcase * ROMCONST patternbmk[] = {
&testbmk7,
#endif
&testbmk8,
-#if CH_CFG_USE_QUEUES || defined(__DOXYGEN__)
&testbmk9,
-#endif
- &testbmk10,
#if CH_CFG_USE_SEMAPHORES || defined(__DOXYGEN__)
- &testbmk11,
+ &testbmk10,
#endif
#if CH_CFG_USE_MUTEXES || defined(__DOXYGEN__)
- &testbmk12,
+ &testbmk11,
#endif
- &testbmk13,
+ &testbmk12,
#endif
NULL
};
diff --git a/test/rt/testbuild/chconf.h b/test/rt/testbuild/chconf.h
index 5b21d70b8..89e9ff04c 100644
--- a/test/rt/testbuild/chconf.h
+++ b/test/rt/testbuild/chconf.h
@@ -28,6 +28,8 @@
#ifndef _CHCONF_H_
#define _CHCONF_H_
+#define _CHIBIOS_RT_CONF_
+
/*===========================================================================*/
/**
* @name System timers settings
@@ -39,18 +41,14 @@
* @brief System time counter resolution.
* @note Allowed values are 16 or 32 bits.
*/
-#if !defined(CH_CFG_ST_RESOLUTION) || defined(__DOXIGEN__)
#define CH_CFG_ST_RESOLUTION 32
-#endif
/**
* @brief System tick frequency.
* @details Frequency of the system timer that drives the system ticks. This
* setting also defines the system tick time unit.
*/
-#if !defined(CH_CFG_ST_FREQUENCY) || defined(__DOXIGEN__)
#define CH_CFG_ST_FREQUENCY 1000
-#endif
/**
* @brief Time delta constant for the tick-less mode.
@@ -60,9 +58,7 @@
* The value one is not valid, timeouts are rounded up to
* this value.
*/
-#if !defined(CH_CFG_ST_TIMEDELTA) || defined(__DOXIGEN__)
#define CH_CFG_ST_TIMEDELTA 0
-#endif
/** @} */
@@ -85,9 +81,7 @@
* @note The round robin preemption is not supported in tickless mode and
* must be set to zero in that case.
*/
-#if !defined(CH_CFG_TIME_QUANTUM) || defined(__DOXIGEN__)
#define CH_CFG_TIME_QUANTUM 20
-#endif
/**
* @brief Managed RAM size.
@@ -100,9 +94,7 @@
* provide the @p __heap_base__ and @p __heap_end__ symbols.
* @note Requires @p CH_CFG_USE_MEMCORE.
*/
-#if !defined(CH_CFG_MEMCORE_SIZE) || defined(__DOXIGEN__)
#define CH_CFG_MEMCORE_SIZE 0x20000
-#endif
/**
* @brief Idle thread automatic spawn suppression.
@@ -111,9 +103,7 @@
* function becomes the idle thread and must implement an
* infinite loop.
*/
-#if !defined(CH_CFG_NO_IDLE_THREAD) || defined(__DOXIGEN__)
#define CH_CFG_NO_IDLE_THREAD FALSE
-#endif
/** @} */
@@ -132,9 +122,7 @@
* @note This is not related to the compiler optimization options.
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_OPTIMIZE_SPEED) || defined(__DOXIGEN__)
#define CH_CFG_OPTIMIZE_SPEED TRUE
-#endif
/** @} */
@@ -152,9 +140,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_TM) || defined(__DOXIGEN__)
#define CH_CFG_USE_TM TRUE
-#endif
/**
* @brief Threads registry APIs.
@@ -162,9 +148,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_REGISTRY) || defined(__DOXIGEN__)
#define CH_CFG_USE_REGISTRY TRUE
-#endif
/**
* @brief Threads synchronization APIs.
@@ -173,9 +157,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_WAITEXIT) || defined(__DOXIGEN__)
#define CH_CFG_USE_WAITEXIT TRUE
-#endif
/**
* @brief Semaphores APIs.
@@ -183,9 +165,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_SEMAPHORES) || defined(__DOXIGEN__)
#define CH_CFG_USE_SEMAPHORES TRUE
-#endif
/**
* @brief Semaphores queuing mode.
@@ -196,9 +176,7 @@
* requirements.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
-#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY) || defined(__DOXIGEN__)
#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
-#endif
/**
* @brief Mutexes APIs.
@@ -206,9 +184,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_MUTEXES) || defined(__DOXIGEN__)
#define CH_CFG_USE_MUTEXES TRUE
-#endif
/**
* @brief Enables recursive behavior on mutexes.
@@ -218,9 +194,7 @@
* @note The default is @p FALSE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
-#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE) || defined(__DOXIGEN__)
#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
-#endif
/**
* @brief Conditional Variables APIs.
@@ -230,9 +204,7 @@
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_MUTEXES.
*/
-#if !defined(CH_CFG_USE_CONDVARS) || defined(__DOXIGEN__)
#define CH_CFG_USE_CONDVARS TRUE
-#endif
/**
* @brief Conditional Variables APIs with timeout.
@@ -242,9 +214,7 @@
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_CONDVARS.
*/
-#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT) || defined(__DOXIGEN__)
#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
-#endif
/**
* @brief Events Flags APIs.
@@ -252,9 +222,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_EVENTS) || defined(__DOXIGEN__)
#define CH_CFG_USE_EVENTS TRUE
-#endif
/**
* @brief Events Flags APIs with timeout.
@@ -264,9 +232,7 @@
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_EVENTS.
*/
-#if !defined(CH_CFG_USE_EVENTS_TIMEOUT) || defined(__DOXIGEN__)
#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
-#endif
/**
* @brief Synchronous Messages APIs.
@@ -275,9 +241,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_MESSAGES) || defined(__DOXIGEN__)
#define CH_CFG_USE_MESSAGES TRUE
-#endif
/**
* @brief Synchronous Messages queuing mode.
@@ -288,9 +252,7 @@
* requirements.
* @note Requires @p CH_CFG_USE_MESSAGES.
*/
-#if !defined(CH_CFG_USE_MESSAGES_PRIORITY) || defined(__DOXIGEN__)
#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
-#endif
/**
* @brief Mailboxes APIs.
@@ -300,19 +262,7 @@
* @note The default is @p TRUE.
* @note Requires @p CH_CFG_USE_SEMAPHORES.
*/
-#if !defined(CH_CFG_USE_MAILBOXES) || defined(__DOXIGEN__)
#define CH_CFG_USE_MAILBOXES TRUE
-#endif
-
-/**
- * @brief I/O Queues APIs.
- * @details If enabled then the I/O queues APIs are included in the kernel.
- *
- * @note The default is @p TRUE.
- */
-#if !defined(CH_CFG_USE_QUEUES) || defined(__DOXIGEN__)
-#define CH_CFG_USE_QUEUES TRUE
-#endif
/**
* @brief Core Memory Manager APIs.
@@ -321,9 +271,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_MEMCORE) || defined(__DOXIGEN__)
#define CH_CFG_USE_MEMCORE TRUE
-#endif
/**
* @brief Heap Allocator APIs.
@@ -335,9 +283,7 @@
* @p CH_CFG_USE_SEMAPHORES.
* @note Mutexes are recommended.
*/
-#if !defined(CH_CFG_USE_HEAP) || defined(__DOXIGEN__)
#define CH_CFG_USE_HEAP TRUE
-#endif
/**
* @brief Memory Pools Allocator APIs.
@@ -346,9 +292,7 @@
*
* @note The default is @p TRUE.
*/
-#if !defined(CH_CFG_USE_MEMPOOLS) || defined(__DOXIGEN__)
#define CH_CFG_USE_MEMPOOLS TRUE
-#endif
/**
* @brief Dynamic Threads APIs.
@@ -359,9 +303,7 @@
* @note Requires @p CH_CFG_USE_WAITEXIT.
* @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
*/
-#if !defined(CH_CFG_USE_DYNAMIC) || defined(__DOXIGEN__)
#define CH_CFG_USE_DYNAMIC TRUE
-#endif
/** @} */
@@ -377,9 +319,7 @@
*
* @note The default is @p FALSE.
*/
-#if !defined(CH_DBG_STATISTICS) || defined(__DOXIGEN__)
#define CH_DBG_STATISTICS FALSE
-#endif
/**
* @brief Debug option, system state check.
@@ -388,9 +328,7 @@
*
* @note The default is @p FALSE.
*/
-#if !defined(CH_DBG_SYSTEM_STATE_CHECK) || defined(__DOXIGEN__)
#define CH_DBG_SYSTEM_STATE_CHECK FALSE
-#endif
/**
* @brief Debug option, parameters checks.
@@ -399,9 +337,7 @@
*
* @note The default is @p FALSE.
*/
-#if !defined(CH_DBG_ENABLE_CHECKS) || defined(__DOXIGEN__)
#define CH_DBG_ENABLE_CHECKS FALSE
-#endif
/**
* @brief Debug option, consistency checks.
@@ -411,20 +347,23 @@
*
* @note The default is @p FALSE.
*/
-#if !defined(CH_DBG_ENABLE_ASSERTS) || defined(__DOXIGEN__)
#define CH_DBG_ENABLE_ASSERTS FALSE
-#endif
/**
* @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is
* activated.
*
- * @note The default is @p FALSE.
+ * @note The default is @p CH_DBG_TRACE_MASK_NONE.
+ */
+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_NONE
+
+/**
+ * @brief Trace buffer entries.
+ * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
+ * different from @p CH_DBG_TRACE_MASK_NONE.
*/
-#if !defined(CH_DBG_ENABLE_TRACE) || defined(__DOXIGEN__)
-#define CH_DBG_ENABLE_TRACE FALSE
-#endif
+#define CH_DBG_TRACE_BUFFER_SIZE 128
/**
* @brief Debug option, stack checks.
@@ -436,9 +375,7 @@
* @note The default failure mode is to halt the system with the global
* @p panic_msg variable set to @p NULL.
*/
-#if !defined(CH_DBG_ENABLE_STACK_CHECK) || defined(__DOXIGEN__)
#define CH_DBG_ENABLE_STACK_CHECK FALSE
-#endif
/**
* @brief Debug option, stacks initialization.
@@ -448,9 +385,7 @@
*
* @note The default is @p FALSE.
*/
-#if !defined(CH_DBG_FILL_THREADS) || defined(__DOXIGEN__)
#define CH_DBG_FILL_THREADS FALSE
-#endif
/**
* @brief Debug option, threads profiling.
@@ -461,9 +396,7 @@
* @note This debug option is not currently compatible with the
* tickless mode.
*/
-#if !defined(CH_DBG_THREADS_PROFILING) || defined(__DOXIGEN__)
-#define CH_DBG_THREADS_PROFILING TRUE
-#endif
+#define CH_DBG_THREADS_PROFILING FALSE
/** @} */
@@ -495,10 +428,6 @@
/**
* @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API.
- *
- * @note It is inserted into lock zone.
- * @note It is also invoked when the threads simply return in order to
- * terminate.
*/
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \
@@ -513,12 +442,27 @@
}
/**
+ * @brief ISR enter hook.
+ */
+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
+ /* IRQ prologue code here.*/ \
+}
+
+/**
+ * @brief ISR exit hook.
+ */
+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
+ /* IRQ epilogue code here.*/ \
+}
+
+/**
* @brief Idle thread enter hook.
* @note This hook is invoked within a critical zone, no OS functions
* should be invoked from here.
* @note This macro can be used to activate a power saving mode.
*/
#define CH_CFG_IDLE_ENTER_HOOK() { \
+ /* Idle-enter code here.*/ \
}
/**
@@ -528,6 +472,7 @@
* @note This macro can be used to deactivate a power saving mode.
*/
#define CH_CFG_IDLE_LEAVE_HOOK() { \
+ /* Idle-leave code here.*/ \
}
/**
@@ -556,6 +501,15 @@
/* System halt code here.*/ \
}
+/**
+ * @brief Trace hook.
+ * @details This hook is invoked each time a new record is written in the
+ * trace buffer.
+ */
+#define CH_CFG_TRACE_HOOK(tep) { \
+ /* Trace code here.*/ \
+}
+
/** @} */
/*===========================================================================*/