From 1914bcbbf422a9616dd2c1d6906a8ced3548921d Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Wed, 16 Mar 2016 11:09:29 +0000 Subject: Removed I/O queues and streams from RT. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9125 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- test/rt/test.c | 16 +++--- test/rt/test.mk | 1 - test/rt/testbmk.c | 101 +++++++++----------------------------- test/rt/testbuild/chconf.h | 120 ++++++++++++++------------------------------- 4 files changed, 68 insertions(+), 170 deletions(-) (limited to 'test/rt') 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 - * - *

Description

- * Four bytes are written and then read from an @p InputQueue into a continuous - * loop.
- * 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 * *

Description

* A virtual timer is set and immediately reset into a continuous loop.
@@ -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 * *

Description

* 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 * *

Description

* 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 * *

Description

* 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.*/ \ @@ -512,6 +441,20 @@ /* Context switch code here.*/ \ } +/** + * @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 @@ -519,6 +462,7 @@ * @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.*/ \ +} + /** @} */ /*===========================================================================*/ -- cgit v1.2.3