git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2974 35acf78f-673a-0410-8e92-d51de3d6d3f4
parent
5e1249af26
commit
3495905f51
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
Options: -O2 -fomit-frame-pointer -mabi=apcs-gnu -falign-functions=16
|
Options: -O2 -fomit-frame-pointer -falign-functions=16
|
||||||
Settings: SYSCLK=72, ACR=0x12 (2 wait states)
|
Settings: SYSCLK=72, ACR=0x12 (2 wait states)
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
|
|
||||||
*** ChibiOS/RT test suite
|
*** ChibiOS/RT test suite
|
||||||
***
|
***
|
||||||
*** Kernel: 2.3.3unstable
|
*** Kernel: 2.3.3unstable
|
||||||
*** Compiler: GCC 4.6.0
|
*** Compiler: GCC 4.5.2
|
||||||
*** Architecture: ARMv7-M
|
*** Architecture: ARMv7-M
|
||||||
*** Core Variant: Cortex-M3
|
*** Core Variant: Cortex-M3
|
||||||
*** Port Info: Advanced kernel mode
|
*** Port Info: Advanced kernel mode
|
||||||
|
@ -99,51 +99,51 @@ Settings: SYSCLK=72, ACR=0x12 (2 wait states)
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.1 (Benchmark, messages #1)
|
--- Test Case 11.1 (Benchmark, messages #1)
|
||||||
--- Score : 267098 msgs/S, 534196 ctxswc/S
|
--- Score : 248569 msgs/S, 497138 ctxswc/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.2 (Benchmark, messages #2)
|
--- Test Case 11.2 (Benchmark, messages #2)
|
||||||
--- Score : 213832 msgs/S, 427664 ctxswc/S
|
--- Score : 198998 msgs/S, 397996 ctxswc/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.3 (Benchmark, messages #3)
|
--- Test Case 11.3 (Benchmark, messages #3)
|
||||||
--- Score : 213832 msgs/S, 427664 ctxswc/S
|
--- Score : 198998 msgs/S, 397996 ctxswc/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.4 (Benchmark, context switch)
|
--- Test Case 11.4 (Benchmark, context switch)
|
||||||
--- Score : 962832 ctxswc/S
|
--- Score : 839008 ctxswc/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.5 (Benchmark, threads, full cycle)
|
--- Test Case 11.5 (Benchmark, threads, full cycle)
|
||||||
--- Score : 161828 threads/S
|
--- Score : 156856 threads/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.6 (Benchmark, threads, create only)
|
--- Test Case 11.6 (Benchmark, threads, create only)
|
||||||
--- Score : 241113 threads/S
|
--- Score : 235543 threads/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
|
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
|
||||||
--- Score : 64728 reschedules/S, 388368 ctxswc/S
|
--- Score : 61138 reschedules/S, 366828 ctxswc/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.8 (Benchmark, round robin context switching)
|
--- Test Case 11.8 (Benchmark, round robin context switching)
|
||||||
--- Score : 468840 ctxswc/S
|
--- Score : 478124 ctxswc/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
|
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
|
||||||
--- Score : 526392 bytes/S
|
--- Score : 581768 bytes/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
|
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
|
||||||
--- Score : 647308 timers/S
|
--- Score : 647262 timers/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
|
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
|
||||||
--- Score : 787420 wait+signal/S
|
--- Score : 787368 wait+signal/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)
|
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)
|
||||||
--- Score : 596276 lock+unlock/S
|
--- Score : 586492 lock+unlock/S
|
||||||
--- Result: SUCCESS
|
--- Result: SUCCESS
|
||||||
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
||||||
--- Test Case 11.13 (Benchmark, RAM footprint)
|
--- Test Case 11.13 (Benchmark, RAM footprint)
|
||||||
|
|
|
@ -31,18 +31,11 @@
|
||||||
|
|
||||||
#if CH_USE_QUEUES || defined(__DOXYGEN__)
|
#if CH_USE_QUEUES || defined(__DOXYGEN__)
|
||||||
|
|
||||||
/*
|
|
||||||
* Module dependencies check.
|
|
||||||
*/
|
|
||||||
#if !CH_USE_SEMAPHORES
|
|
||||||
#error "CH_USE_QUEUES requires CH_USE_SEMAPHORES"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** @brief Returned by the queue functions if the operation is successful.*/
|
/** @brief Returned by the queue functions if the operation is successful.*/
|
||||||
#define Q_OK RDY_OK
|
#define Q_OK RDY_OK
|
||||||
/** @brief Returned by the queue functions if a timeout occurs.*/
|
/** @brief Returned by the queue functions if a timeout occurs.*/
|
||||||
#define Q_TIMEOUT RDY_TIMEOUT
|
#define Q_TIMEOUT RDY_TIMEOUT
|
||||||
/** @brief Returned by the queue functions if the queue is reset.*/
|
/** @brief Returned by the queue functions if the queue has been reset.*/
|
||||||
#define Q_RESET RDY_RESET
|
#define Q_RESET RDY_RESET
|
||||||
/** @brief Returned by the queue functions if the queue is empty.*/
|
/** @brief Returned by the queue functions if the queue is empty.*/
|
||||||
#define Q_EMPTY -3
|
#define Q_EMPTY -3
|
||||||
|
@ -166,7 +159,7 @@ typedef GenericQueue InputQueue;
|
||||||
*
|
*
|
||||||
* @param[in] iqp pointer to an @p InputQueue structure
|
* @param[in] iqp pointer to an @p InputQueue structure
|
||||||
* @return A byte value from the queue.
|
* @return A byte value from the queue.
|
||||||
* @retval Q_RESET If the queue has been reset.
|
* @retval Q_RESET if the queue has been reset.
|
||||||
*
|
*
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -58,14 +58,14 @@
|
||||||
* .
|
* .
|
||||||
* @return A message specifying how the invoking thread has been
|
* @return A message specifying how the invoking thread has been
|
||||||
* released from threads queue.
|
* released from threads queue.
|
||||||
* @retval RDY_OK is the normal exit, thread signaled.
|
* @retval Q_OK is the normal exit, thread signaled.
|
||||||
* @retval RDY_RESET if the queue has been reset.
|
* @retval Q_RESET if the queue has been reset.
|
||||||
* @retval RDY_TIMEOUT if the queue operation timed out.
|
* @retval Q_TIMEOUT if the queue operation timed out.
|
||||||
*/
|
*/
|
||||||
static msg_t qwait(GenericQueue *qp, systime_t time) {
|
static msg_t qwait(GenericQueue *qp, systime_t time) {
|
||||||
|
|
||||||
if (TIME_IMMEDIATE == time)
|
if (TIME_IMMEDIATE == time)
|
||||||
return RDY_TIMEOUT;
|
return Q_TIMEOUT;
|
||||||
currp->p_u.wtobjp = qp;
|
currp->p_u.wtobjp = qp;
|
||||||
queue_insert(currp, &qp->q_waiting);
|
queue_insert(currp, &qp->q_waiting);
|
||||||
return chSchGoSleepTimeoutS(THD_STATE_WTQUEUE, time);
|
return chSchGoSleepTimeoutS(THD_STATE_WTQUEUE, time);
|
||||||
|
@ -111,7 +111,7 @@ void chIQResetI(InputQueue *iqp) {
|
||||||
iqp->q_rdptr = iqp->q_wrptr = iqp->q_buffer;
|
iqp->q_rdptr = iqp->q_wrptr = iqp->q_buffer;
|
||||||
iqp->q_counter = 0;
|
iqp->q_counter = 0;
|
||||||
while (notempty(&iqp->q_waiting))
|
while (notempty(&iqp->q_waiting))
|
||||||
chSchReadyI(fifo_remove(&iqp->q_waiting))->p_u.rdymsg = RDY_RESET;
|
chSchReadyI(fifo_remove(&iqp->q_waiting))->p_u.rdymsg = Q_RESET;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -137,7 +137,7 @@ msg_t chIQPutI(InputQueue *iqp, uint8_t b) {
|
||||||
if (iqp->q_wrptr >= iqp->q_top)
|
if (iqp->q_wrptr >= iqp->q_top)
|
||||||
iqp->q_wrptr = iqp->q_buffer;
|
iqp->q_wrptr = iqp->q_buffer;
|
||||||
if (notempty(&iqp->q_waiting))
|
if (notempty(&iqp->q_waiting))
|
||||||
chSchReadyI(fifo_remove(&iqp->q_waiting))->p_u.rdymsg = RDY_OK;
|
chSchReadyI(fifo_remove(&iqp->q_waiting))->p_u.rdymsg = Q_OK;
|
||||||
return Q_OK;
|
return Q_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ msg_t chIQPutI(InputQueue *iqp, uint8_t b) {
|
||||||
* .
|
* .
|
||||||
* @return A byte value from the queue.
|
* @return A byte value from the queue.
|
||||||
* @retval Q_TIMEOUT if the specified time expired.
|
* @retval Q_TIMEOUT if the specified time expired.
|
||||||
* @retval Q_RESET if the queue was reset.
|
* @retval Q_RESET if the queue has been reset.
|
||||||
*
|
*
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
|
@ -163,13 +163,13 @@ msg_t chIQGetTimeout(InputQueue *iqp, systime_t time) {
|
||||||
uint8_t b;
|
uint8_t b;
|
||||||
|
|
||||||
chSysLock();
|
chSysLock();
|
||||||
if (iqp->q_notify)
|
|
||||||
iqp->q_notify(iqp);
|
|
||||||
|
|
||||||
while (chIQIsEmptyI(iqp)) {
|
while (chIQIsEmptyI(iqp)) {
|
||||||
msg_t msg;
|
msg_t msg;
|
||||||
|
|
||||||
if ((msg = qwait((GenericQueue *)iqp, time)) < RDY_OK) {
|
if (iqp->q_notify)
|
||||||
|
iqp->q_notify(iqp);
|
||||||
|
|
||||||
|
if ((msg = qwait((GenericQueue *)iqp, time)) < Q_OK) {
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
@ -220,7 +220,7 @@ size_t chIQReadTimeout(InputQueue *iqp, uint8_t *bp,
|
||||||
while (chIQIsEmptyI(iqp)) {
|
while (chIQIsEmptyI(iqp)) {
|
||||||
if (nfy)
|
if (nfy)
|
||||||
nfy(iqp);
|
nfy(iqp);
|
||||||
if (qwait((GenericQueue *)iqp, time) != RDY_OK) {
|
if (qwait((GenericQueue *)iqp, time) != Q_OK) {
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -283,7 +283,7 @@ void chOQResetI(OutputQueue *oqp) {
|
||||||
oqp->q_rdptr = oqp->q_wrptr = oqp->q_buffer;
|
oqp->q_rdptr = oqp->q_wrptr = oqp->q_buffer;
|
||||||
oqp->q_counter = chQSizeI(oqp);
|
oqp->q_counter = chQSizeI(oqp);
|
||||||
while (notempty(&oqp->q_waiting))
|
while (notempty(&oqp->q_waiting))
|
||||||
chSchReadyI(fifo_remove(&oqp->q_waiting))->p_u.rdymsg = RDY_RESET;
|
chSchReadyI(fifo_remove(&oqp->q_waiting))->p_u.rdymsg = Q_RESET;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -302,7 +302,7 @@ void chOQResetI(OutputQueue *oqp) {
|
||||||
* @return The operation status.
|
* @return The operation status.
|
||||||
* @retval Q_OK if the operation succeeded.
|
* @retval Q_OK if the operation succeeded.
|
||||||
* @retval Q_TIMEOUT if the specified time expired.
|
* @retval Q_TIMEOUT if the specified time expired.
|
||||||
* @retval Q_RESET if the queue was reset.
|
* @retval Q_RESET if the queue has been reset.
|
||||||
*
|
*
|
||||||
* @api
|
* @api
|
||||||
*/
|
*/
|
||||||
|
@ -312,7 +312,7 @@ msg_t chOQPutTimeout(OutputQueue *oqp, uint8_t b, systime_t time) {
|
||||||
while (chOQIsFullI(oqp)) {
|
while (chOQIsFullI(oqp)) {
|
||||||
msg_t msg;
|
msg_t msg;
|
||||||
|
|
||||||
if ((msg = qwait((GenericQueue *)oqp, time)) < RDY_OK) {
|
if ((msg = qwait((GenericQueue *)oqp, time)) < Q_OK) {
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
@ -351,7 +351,7 @@ msg_t chOQGetI(OutputQueue *oqp) {
|
||||||
if (oqp->q_rdptr >= oqp->q_top)
|
if (oqp->q_rdptr >= oqp->q_top)
|
||||||
oqp->q_rdptr = oqp->q_buffer;
|
oqp->q_rdptr = oqp->q_buffer;
|
||||||
if (notempty(&oqp->q_waiting))
|
if (notempty(&oqp->q_waiting))
|
||||||
chSchReadyI(fifo_remove(&oqp->q_waiting))->p_u.rdymsg = RDY_OK;
|
chSchReadyI(fifo_remove(&oqp->q_waiting))->p_u.rdymsg = Q_OK;
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -391,7 +391,7 @@ size_t chOQWriteTimeout(OutputQueue *oqp, const uint8_t *bp,
|
||||||
while (chOQIsFullI(oqp)) {
|
while (chOQIsFullI(oqp)) {
|
||||||
if (nfy)
|
if (nfy)
|
||||||
nfy(oqp);
|
nfy(oqp);
|
||||||
if (qwait((GenericQueue *)oqp, time) != RDY_OK) {
|
if (qwait((GenericQueue *)oqp, time) != Q_OK) {
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
|
@ -278,7 +278,6 @@
|
||||||
* @details If enabled then the I/O queues APIs are included in the kernel.
|
* @details If enabled then the I/O queues APIs are included in the kernel.
|
||||||
*
|
*
|
||||||
* @note The default is @p TRUE.
|
* @note The default is @p TRUE.
|
||||||
* @note Requires @p CH_USE_SEMAPHORES.
|
|
||||||
*/
|
*/
|
||||||
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
#if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
|
||||||
#define CH_USE_QUEUES TRUE
|
#define CH_USE_QUEUES TRUE
|
||||||
|
|
Loading…
Reference in New Issue