diff options
author | Giovanni Di Sirio <gdisirio@gmail.com> | 2015-04-13 12:01:48 +0000 |
---|---|---|
committer | Giovanni Di Sirio <gdisirio@gmail.com> | 2015-04-13 12:01:48 +0000 |
commit | 5e74f17084778dc526471d4839ebf564c3b18b5d (patch) | |
tree | 847994bf441e80da312a2e1267d5cec1e4bc5150 | |
parent | af35dcf4d9c6729900b52d6afc46ed647d96fe16 (diff) | |
download | ChibiOS-5e74f17084778dc526471d4839ebf564c3b18b5d.tar.gz ChibiOS-5e74f17084778dc526471d4839ebf564c3b18b5d.tar.bz2 ChibiOS-5e74f17084778dc526471d4839ebf564c3b18b5d.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7887 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r-- | doc/hal/Doxyfile_chm | 2 | ||||
-rw-r--r-- | doc/hal/Doxyfile_html | 2 | ||||
-rw-r--r-- | doc/nil/Doxyfile_chm | 2 | ||||
-rw-r--r-- | doc/nil/Doxyfile_html | 2 | ||||
-rw-r--r-- | doc/rt/Doxyfile_chm | 2 | ||||
-rw-r--r-- | doc/rt/Doxyfile_html | 2 | ||||
-rw-r--r-- | doc/rt/reports/STM32F407-168-GCC-FPU.txt | 112 | ||||
-rw-r--r-- | doc/rt/reports/STM32F407-168-GCC.txt | 103 | ||||
-rw-r--r-- | os/hal/include/hal.h | 2 | ||||
-rw-r--r-- | os/nil/include/nil.h | 2 | ||||
-rw-r--r-- | os/rt/include/ch.h | 2 | ||||
-rw-r--r-- | testhal/STM32/STM32F4xx/ADC/debug/STM32F4xx-ADC (OpenOCD, Flash and Run).launch | 2 | ||||
-rw-r--r-- | testhal/STM32/STM32F4xx/CAN/debug/STM32F4xx-CAN (OpenOCD, Flash and Run).launch | 52 | ||||
-rw-r--r-- | testhal/STM32/STM32F4xx/DMA_STORM/Makefile | 2 | ||||
-rw-r--r-- | testhal/STM32/STM32F4xx/DMA_STORM/debug/STM32F4xx-DMA_STORM (OpenOCD, Flash and Run).launch | 52 | ||||
-rw-r--r-- | testhal/STM32/STM32F4xx/DMA_STORM/main.c | 43 |
16 files changed, 260 insertions, 124 deletions
diff --git a/doc/hal/Doxyfile_chm b/doc/hal/Doxyfile_chm index c210bc1a7..7b0732fe8 100644 --- a/doc/hal/Doxyfile_chm +++ b/doc/hal/Doxyfile_chm @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/HAL # could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 3.0.0p2
+PROJECT_NUMBER = 3.0.0p3
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/doc/hal/Doxyfile_html b/doc/hal/Doxyfile_html index 380704433..dee7d16d0 100644 --- a/doc/hal/Doxyfile_html +++ b/doc/hal/Doxyfile_html @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/HAL # could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 3.0.0p2
+PROJECT_NUMBER = 3.0.0p3
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/doc/nil/Doxyfile_chm b/doc/nil/Doxyfile_chm index 009952375..9662a5ce7 100644 --- a/doc/nil/Doxyfile_chm +++ b/doc/nil/Doxyfile_chm @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/NIL # could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 1.0.0p2
+PROJECT_NUMBER = 1.0.0p3
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/doc/nil/Doxyfile_html b/doc/nil/Doxyfile_html index 898212951..9f51b686b 100644 --- a/doc/nil/Doxyfile_html +++ b/doc/nil/Doxyfile_html @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/NIL # could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 1.0.0p2
+PROJECT_NUMBER = 1.0.0p3
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/doc/rt/Doxyfile_chm b/doc/rt/Doxyfile_chm index 0398ccb38..12084c837 100644 --- a/doc/rt/Doxyfile_chm +++ b/doc/rt/Doxyfile_chm @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/RT # could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 3.0.0p2
+PROJECT_NUMBER = 3.0.0p3
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/doc/rt/Doxyfile_html b/doc/rt/Doxyfile_html index 617075282..54a04224b 100644 --- a/doc/rt/Doxyfile_html +++ b/doc/rt/Doxyfile_html @@ -38,7 +38,7 @@ PROJECT_NAME = ChibiOS/RT # could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 3.0.0p2
+PROJECT_NUMBER = 3.0.0p3
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/doc/rt/reports/STM32F407-168-GCC-FPU.txt b/doc/rt/reports/STM32F407-168-GCC-FPU.txt index e1b872fe2..03b3ee842 100644 --- a/doc/rt/reports/STM32F407-168-GCC-FPU.txt +++ b/doc/rt/reports/STM32F407-168-GCC-FPU.txt @@ -1,14 +1,9 @@ -***************************************************************************
-Options: -O2 -fomit-frame-pointer -falign-functions=16
-Settings: SYSCLK=168, ACR=0x705 (5 wait states)
-***************************************************************************
-
*** ChibiOS/RT test suite
***
-*** Kernel: 3.0.0dev
-*** Compiled: Dec 11 2014 - 16:29:11
-*** Compiler: GCC 4.7.3 20130312 (release) [ARM/embedded-4_7-branch revision 196615]
+*** Kernel: 3.0.0
+*** Compiled: Apr 13 2015 - 10:56:19
+*** Compiler: GCC 4.7.4 20140401 (release) [ARM/embedded-4_7-branch revision 209195]
*** Architecture: ARMv7-ME
*** Core Variant: Cortex-M4F
*** Port Info: Advanced kernel mode
@@ -16,133 +11,142 @@ Settings: SYSCLK=168, ACR=0x705 (5 wait states) *** Test Board: STMicroelectronics STM32F4-Discovery
----------------------------------------------------------------------------
---- Test Case 1.1 (Threads, enqueuing test #1)
+--- Test Case 1.1 (System, critical zones)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (System, interrupts handling)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.3 (System, integrity)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.1 (Threads, enqueuing test #1)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Threads, enqueuing test #2)
+--- Test Case 2.2 (Threads, enqueuing test #2)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.3 (Threads, priority change)
+--- Test Case 2.3 (Threads, priority change)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.4 (Threads, delays)
+--- Test Case 2.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.1 (Semaphores, enqueuing)
+--- Test Case 3.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.2 (Semaphores, timeout)
+--- Test Case 3.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.3 (Semaphores, atomic signal-wait)
+--- Test Case 3.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.4 (Binary Semaphores, functionality)
+--- Test Case 3.4 (Binary Semaphores, functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.1 (Mutexes, priority enqueuing test)
+--- Test Case 4.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.2 (Mutexes, priority return)
+--- Test Case 4.2 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.3 (Mutexes, status)
+--- Test Case 4.3 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.4 (CondVar, signal test)
+--- Test Case 4.4 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.5 (CondVar, broadcast test)
+--- Test Case 4.5 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.6 (CondVar, boost test)
+--- Test Case 4.6 (CondVar, boost test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 4.1 (Messages, loop)
+--- Test Case 5.1 (Messages, loop)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 5.1 (Mailboxes, queuing and timeouts)
+--- Test Case 6.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.1 (Events, registration and dispatch)
+--- Test Case 7.1 (Events, registration and dispatch)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.2 (Events, wait and broadcast)
+--- Test Case 7.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.3 (Events, timeouts)
+--- Test Case 7.3 (Events, timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 7.1 (Heap, allocation and fragmentation test)
+--- Test Case 8.1 (Heap, allocation and fragmentation test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 8.1 (Memory Pools, queue/dequeue)
+--- Test Case 9.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.1 (Dynamic APIs, threads creation from heap)
+--- Test Case 10.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
+--- Test Case 10.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.3 (Dynamic APIs, registry and references)
+--- Test Case 10.3 (Dynamic APIs, registry and references)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Queues, input queues)
+--- Test Case 11.1 (Queues, input queues)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Queues, output queues)
+--- Test Case 11.2 (Queues, output queues)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.1 (Benchmark, messages #1)
---- Score : 604310 msgs/S, 1208620 ctxswc/S
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 604311 msgs/S, 1208622 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.2 (Benchmark, messages #2)
+--- Test Case 12.2 (Benchmark, messages #2)
--- Score : 513757 msgs/S, 1027514 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.3 (Benchmark, messages #3)
+--- Test Case 12.3 (Benchmark, messages #3)
--- Score : 513757 msgs/S, 1027514 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.4 (Benchmark, context switch)
+--- Test Case 12.4 (Benchmark, context switch)
--- Score : 1686320 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.5 (Benchmark, threads, full cycle)
---- Score : 394363 threads/S
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 397159 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.6 (Benchmark, threads, create only)
---- Score : 543685 threads/S
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 549015 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
+--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
--- Score : 166172 reschedules/S, 997032 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.8 (Benchmark, round robin context switching)
---- Score : 1197856 ctxswc/S
+--- Test Case 12.8 (Benchmark, round robin context switching)
+--- Score : 1197852 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.9 (Benchmark, I/O Queues throughput)
+--- Test Case 12.9 (Benchmark, I/O Queues throughput)
--- Score : 1873164 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.10 (Benchmark, virtual timers set/reset)
---- Score : 1322832 timers/S
+--- Test Case 12.10 (Benchmark, virtual timers set/reset)
+--- Score : 341352 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.11 (Benchmark, semaphores wait/signal)
---- Score : 3199988 wait+signal/S
+--- Test Case 12.11 (Benchmark, semaphores wait/signal)
+--- Score : 3199984 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.12 (Benchmark, mutexes lock/unlock)
---- Score : 1856348 lock+unlock/S
+--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
+--- Score : 1856344 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.13 (Benchmark, RAM footprint)
+--- Test Case 12.13 (Benchmark, RAM footprint)
--- System: 472 bytes
--- Thread: 68 bytes
--- Timer : 20 bytes
diff --git a/doc/rt/reports/STM32F407-168-GCC.txt b/doc/rt/reports/STM32F407-168-GCC.txt index 7e38f9edc..e362ec0f4 100644 --- a/doc/rt/reports/STM32F407-168-GCC.txt +++ b/doc/rt/reports/STM32F407-168-GCC.txt @@ -1,12 +1,8 @@ -***************************************************************************
-Options: -O2 -fomit-frame-pointer -falign-functions=16
-Settings: SYSCLK=168, ACR=0x705 (5 wait states)
-***************************************************************************
*** ChibiOS/RT test suite
***
-*** Kernel: 3.0.0dev
-*** Compiled: Mar 23 2015 - 11:26:02
+*** Kernel: 3.0.0
+*** Compiled: Apr 13 2015 - 10:53:28
*** Compiler: GCC 4.7.4 20140401 (release) [ARM/embedded-4_7-branch revision 209195]
*** Architecture: ARMv7-ME
*** Core Variant: Cortex-M4
@@ -15,133 +11,142 @@ Settings: SYSCLK=168, ACR=0x705 (5 wait states) *** Test Board: STMicroelectronics STM32F4-Discovery
----------------------------------------------------------------------------
---- Test Case 1.1 (Threads, enqueuing test #1)
+--- Test Case 1.1 (System, critical zones)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Threads, enqueuing test #2)
+--- Test Case 1.2 (System, interrupts handling)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.3 (Threads, priority change)
+--- Test Case 1.3 (System, integrity)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.4 (Threads, delays)
+--- Test Case 2.1 (Threads, enqueuing test #1)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.1 (Semaphores, enqueuing)
+--- Test Case 2.2 (Threads, enqueuing test #2)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.2 (Semaphores, timeout)
+--- Test Case 2.3 (Threads, priority change)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.3 (Semaphores, atomic signal-wait)
+--- Test Case 2.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 2.4 (Binary Semaphores, functionality)
+--- Test Case 3.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.1 (Mutexes, priority enqueuing test)
+--- Test Case 3.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.2 (Mutexes, priority return)
+--- Test Case 3.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.3 (Mutexes, status)
+--- Test Case 3.4 (Binary Semaphores, functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.4 (CondVar, signal test)
+--- Test Case 4.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.5 (CondVar, broadcast test)
+--- Test Case 4.2 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 3.6 (CondVar, boost test)
+--- Test Case 4.3 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 4.1 (Messages, loop)
+--- Test Case 4.4 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 5.1 (Mailboxes, queuing and timeouts)
+--- Test Case 4.5 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.1 (Events, registration and dispatch)
+--- Test Case 4.6 (CondVar, boost test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.2 (Events, wait and broadcast)
+--- Test Case 5.1 (Messages, loop)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 6.3 (Events, timeouts)
+--- Test Case 6.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 7.1 (Heap, allocation and fragmentation test)
+--- Test Case 7.1 (Events, registration and dispatch)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 8.1 (Memory Pools, queue/dequeue)
+--- Test Case 7.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.1 (Dynamic APIs, threads creation from heap)
+--- Test Case 7.3 (Events, timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
+--- Test Case 8.1 (Heap, allocation and fragmentation test)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.3 (Dynamic APIs, registry and references)
+--- Test Case 9.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Queues, input queues)
+--- Test Case 10.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Queues, output queues)
+--- Test Case 10.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.1 (Benchmark, messages #1)
---- Score : 799994 msgs/S, 1599988 ctxswc/S
+--- Test Case 10.3 (Dynamic APIs, registry and references)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.2 (Benchmark, messages #2)
+--- Test Case 11.1 (Queues, input queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 11.2 (Queues, output queues)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.1 (Benchmark, messages #1)
+--- Score : 799993 msgs/S, 1599986 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
--- Score : 648644 msgs/S, 1297288 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.3 (Benchmark, messages #3)
+--- Test Case 12.3 (Benchmark, messages #3)
--- Score : 648644 msgs/S, 1297288 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.4 (Benchmark, context switch)
+--- Test Case 12.4 (Benchmark, context switch)
--- Score : 2559992 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.5 (Benchmark, threads, full cycle)
---- Score : 467963 threads/S
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 471906 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.6 (Benchmark, threads, create only)
---- Score : 691353 threads/S
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 699995 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
+--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
--- Score : 208178 reschedules/S, 1249068 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.8 (Benchmark, round robin context switching)
+--- Test Case 12.8 (Benchmark, round robin context switching)
--- Score : 1581160 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.9 (Benchmark, I/O Queues throughput)
+--- Test Case 12.9 (Benchmark, I/O Queues throughput)
--- Score : 1873164 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.10 (Benchmark, virtual timers set/reset)
---- Score : 1322828 timers/S
+--- Test Case 12.10 (Benchmark, virtual timers set/reset)
+--- Score : 341078 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.11 (Benchmark, semaphores wait/signal)
+--- Test Case 12.11 (Benchmark, semaphores wait/signal)
--- Score : 3199988 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.12 (Benchmark, mutexes lock/unlock)
+--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
--- Score : 1856348 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.13 (Benchmark, RAM footprint)
+--- Test Case 12.13 (Benchmark, RAM footprint)
--- System: 336 bytes
--- Thread: 68 bytes
--- Timer : 20 bytes
diff --git a/os/hal/include/hal.h b/os/hal/include/hal.h index 029f05dfa..1fe9c7468 100644 --- a/os/hal/include/hal.h +++ b/os/hal/include/hal.h @@ -101,7 +101,7 @@ /**
* @brief HAL version string.
*/
-#define HAL_VERSION "3.0.0p2"
+#define HAL_VERSION "3.0.0p3"
/**
* @brief HAL version major number.
diff --git a/os/nil/include/nil.h b/os/nil/include/nil.h index eb92b2e22..6c5558cd0 100644 --- a/os/nil/include/nil.h +++ b/os/nil/include/nil.h @@ -61,7 +61,7 @@ typedef struct nil_thread thread_t; /**
* @brief Kernel version string.
*/
-#define CH_KERNEL_VERSION "1.0.0p2"
+#define CH_KERNEL_VERSION "1.0.0p3"
/**
* @brief Kernel version major number.
diff --git a/os/rt/include/ch.h b/os/rt/include/ch.h index 155734ff4..a525ac553 100644 --- a/os/rt/include/ch.h +++ b/os/rt/include/ch.h @@ -48,7 +48,7 @@ /**
* @brief Kernel version string.
*/
-#define CH_KERNEL_VERSION "3.0.0p2"
+#define CH_KERNEL_VERSION "3.0.0p3"
/**
* @brief Kernel version major number.
diff --git a/testhal/STM32/STM32F4xx/ADC/debug/STM32F4xx-ADC (OpenOCD, Flash and Run).launch b/testhal/STM32/STM32F4xx/ADC/debug/STM32F4xx-ADC (OpenOCD, Flash and Run).launch index cb2e577e4..d0509f760 100644 --- a/testhal/STM32/STM32F4xx/ADC/debug/STM32F4xx-ADC (OpenOCD, Flash and Run).launch +++ b/testhal/STM32/STM32F4xx/ADC/debug/STM32F4xx-ADC (OpenOCD, Flash and Run).launch @@ -33,7 +33,7 @@ <intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
-<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList><content id="cr2-adc_lld_start_conversion-(format)" val="4"/><content id="CR2-adc-null-port_wait_for_interrupt-(format)" val="4"/><content id="CR2-adc-adcp-adc_lld_start_conversion-(format)" val="4"/></contentList>"/>
+<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList><content id="CR2-adc-adcp-adc_lld_start_conversion-(format)" val="4"/><content id="CR2-adc-null-port_wait_for_interrupt-(format)" val="4"/><content id="cr2-adc_lld_start_conversion-(format)" val="4"/></contentList>"/>
<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <globalVariableList/> "/>
<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList/> "/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="./build/ch.elf"/>
diff --git a/testhal/STM32/STM32F4xx/CAN/debug/STM32F4xx-CAN (OpenOCD, Flash and Run).launch b/testhal/STM32/STM32F4xx/CAN/debug/STM32F4xx-CAN (OpenOCD, Flash and Run).launch new file mode 100644 index 000000000..0ebd9f41e --- /dev/null +++ b/testhal/STM32/STM32F4xx/CAN/debug/STM32F4xx-CAN (OpenOCD, Flash and Run).launch @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType">
+<stringAttribute key="bad_container_name" value="\STM32F4xx-CAN\debug"/>
+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="1"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20 monitor reset init monitor sleep 50 "/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="Generic TCP/IP"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="arm-none-eabi-gdb"/>
+<stringAttribute key="org.eclipse.cdt.debug.mi.core.commandFactory" value="Standard"/>
+<stringAttribute key="org.eclipse.cdt.debug.mi.core.protocol" value="mi"/>
+<booleanAttribute key="org.eclipse.cdt.debug.mi.core.verboseMode" value="false"/>
+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
+<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
+<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList><content id="cr2-adc_lld_start_conversion-(format)" val="4"/><content id="CR2-adc-null-port_wait_for_interrupt-(format)" val="4"/><content id="CR2-adc-adcp-adc_lld_start_conversion-(format)" val="4"/></contentList>"/>
+<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <globalVariableList/> "/>
+<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList/> "/>
+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="./build/ch.elf"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="STM32F4xx-CAN"/>
+<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="0.865376734"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/STM32F4xx-CAN"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+</listAttribute>
+</launchConfiguration>
diff --git a/testhal/STM32/STM32F4xx/DMA_STORM/Makefile b/testhal/STM32/STM32F4xx/DMA_STORM/Makefile index 3fec9da36..2a762abc4 100644 --- a/testhal/STM32/STM32F4xx/DMA_STORM/Makefile +++ b/testhal/STM32/STM32F4xx/DMA_STORM/Makefile @@ -5,7 +5,7 @@ # Compiler options here.
ifeq ($(USE_OPT),)
- USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
+ USE_OPT = -O0 -ggdb -fomit-frame-pointer -falign-functions=16
endif
# C specific options here (added to USE_OPT).
diff --git a/testhal/STM32/STM32F4xx/DMA_STORM/debug/STM32F4xx-DMA_STORM (OpenOCD, Flash and Run).launch b/testhal/STM32/STM32F4xx/DMA_STORM/debug/STM32F4xx-DMA_STORM (OpenOCD, Flash and Run).launch new file mode 100644 index 000000000..04762475f --- /dev/null +++ b/testhal/STM32/STM32F4xx/DMA_STORM/debug/STM32F4xx-DMA_STORM (OpenOCD, Flash and Run).launch @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.cdt.debug.gdbjtag.launchConfigurationType">
+<stringAttribute key="bad_container_name" value="\STM32F4xx-DMA_STORM\debug"/>
+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.delay" value="1"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value="set remotetimeout 20 monitor reset init monitor sleep 50 "/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="Generic TCP/IP"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.mi.core.DEBUG_NAME" value="arm-none-eabi-gdb"/>
+<stringAttribute key="org.eclipse.cdt.debug.mi.core.commandFactory" value="Standard"/>
+<stringAttribute key="org.eclipse.cdt.debug.mi.core.protocol" value="mi"/>
+<booleanAttribute key="org.eclipse.cdt.debug.mi.core.verboseMode" value="false"/>
+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="arm-none-eabi-gdb"/>
+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
+<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
+<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?><contentList><content id="CR2-adc-adcp-adc_lld_start_conversion-(format)" val="4"/><content id="CR2-adc-null-port_wait_for_interrupt-(format)" val="4"/><content id="cr2-adc_lld_start_conversion-(format)" val="4"/></contentList>"/>
+<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <globalVariableList/> "/>
+<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?> <memoryBlockExpressionList/> "/>
+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="./build/ch.elf"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="STM32F4xx-DMA_STORM"/>
+<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="0.603715936"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/STM32F4xx-DMA_STORM"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+</listAttribute>
+</launchConfiguration>
diff --git a/testhal/STM32/STM32F4xx/DMA_STORM/main.c b/testhal/STM32/STM32F4xx/DMA_STORM/main.c index d119613f9..7bfc7b2c0 100644 --- a/testhal/STM32/STM32F4xx/DMA_STORM/main.c +++ b/testhal/STM32/STM32F4xx/DMA_STORM/main.c @@ -19,9 +19,23 @@ #include "ch.h"
#include "hal.h"
+/**
+ * DMA operation timeout failure handler.
+ */
+static void tmo(void *p) {
+
+ chSysHalt((const char *)p);
+}
+
+/*--------------------------------------------------------------------------*/
+/* ADC related code. */
+/*--------------------------------------------------------------------------*/
+
#define ADC_GRP2_NUM_CHANNELS 8
#define ADC_GRP2_BUF_DEPTH 16
+static virtual_timer_t adcvt;
+
static adcsample_t samples2[ADC_GRP2_NUM_CHANNELS * ADC_GRP2_BUF_DEPTH];
static void adccallback(ADCDriver *adcp, adcsample_t *buffer, size_t n) {
@@ -29,6 +43,10 @@ static void adccallback(ADCDriver *adcp, adcsample_t *buffer, size_t n) { (void)adcp;
(void)buffer;
(void)n;
+
+ chSysLockFromISR();
+ chVTSetI(&adcvt, MS2ST(10), tmo, (void *)"ADC timeout");
+ chSysUnlockFromISR();
}
static void adcerrorcallback(ADCDriver *adcp, adcerror_t err) {
@@ -60,6 +78,10 @@ static const ADCConversionGroup adcgrpcfg2 = { ADC_SQR3_SQ2_N(ADC_CHANNEL_IN12) | ADC_SQR3_SQ1_N(ADC_CHANNEL_IN11)
};
+/*--------------------------------------------------------------------------*/
+/* SPI related code. */
+/*--------------------------------------------------------------------------*/
+
/*
* Maximum speed SPI configuration (21MHz, CPHA=0, CPOL=0, MSb first).
*/
@@ -70,12 +92,6 @@ static const SPIConfig hs_spicfg = { 0
};
-static void tmo(void *p) {
-
- (void)p;
- chSysHalt("timeout");
-}
-
/*
* SPI thread.
*/
@@ -89,6 +105,8 @@ static THD_FUNCTION(spi_thread, p) { uint8_t txbuf[256];
uint8_t rxbuf[256];
+ chRegSetThreadName("SPI overlord");
+
chVTObjectInit(&vt);
/* Prepare transmit pattern.*/
@@ -99,7 +117,7 @@ static THD_FUNCTION(spi_thread, p) { while (true) {
/* Starts a VT working as watchdog to catch a malfunction in the SPI
driver.*/
- chVTSet(&vt, MS2ST(10), tmo, NULL);
+ chVTSet(&vt, MS2ST(10), tmo, (void *)"SPI timeout");
spiExchange(spip, sizeof(txbuf), txbuf, rxbuf);
@@ -108,9 +126,13 @@ static THD_FUNCTION(spi_thread, p) { }
}
+/*--------------------------------------------------------------------------*/
+/* Application code. */
+/*--------------------------------------------------------------------------*/
+
/*
* This is a periodic thread that does absolutely nothing except flashing
- * a LED.
+ * a LED. If the application fails then the LED stops flashing.
*/
static THD_WORKING_AREA(waThread1, 128);
static THD_FUNCTION(Thread1, arg) {
@@ -148,7 +170,8 @@ int main(void) { adcStart(&ADCD1, NULL);
adcSTM32EnableTSVREFE();
- /* Starts an ADC continuous conversion.*/
+ /* Starts an ADC continuous conversion and its watchdog virtual timer.*/
+ chVTSet(&adcvt, MS2ST(10), tmo, (void *)"ADC timeout");
adcStartConversion(&ADCD1, &adcgrpcfg2, samples2, ADC_GRP2_BUF_DEPTH);
/* Activating SPI drivers.*/
@@ -180,7 +203,7 @@ int main(void) { /* Starts a VT working as watchdog to catch a malfunction in the DMA
driver.*/
- chVTSet(&vt, MS2ST(10), tmo, NULL);
+ chVTSet(&vt, MS2ST(10), tmo, (void *)"copy timeout");
/* Copy pattern 1.*/
dmaStartMemCopy(STM32_DMA2_STREAM6,
|