aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2015-07-07 09:26:14 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2015-07-07 09:26:14 +0000
commit26067f6954cb002bca1c796b96bc7c36149b5e58 (patch)
tree16e1f24376f398c8d5533b66766786b6ca5a84b5
parent151e9e60ec4af4a599ac98ea27c8642eed1e75e0 (diff)
downloadChibiOS-26067f6954cb002bca1c796b96bc7c36149b5e58.tar.gz
ChibiOS-26067f6954cb002bca1c796b96bc7c36149b5e58.tar.bz2
ChibiOS-26067f6954cb002bca1c796b96bc7c36149b5e58.zip
STM32F3xx reports.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8067 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.ewp146
-rw-r--r--demos/STM32/RT-STM32F303-DISCOVERY/keil/ch.uvprojx (renamed from demos/STM32/RT-STM32F303-DISCOVERY/keil/ch.uvproj)15
-rw-r--r--doc/rt/reports/STM32F303-72-GCC-FPU.txt32
-rw-r--r--doc/rt/reports/STM32F303-72-GCC.txt32
-rw-r--r--doc/rt/reports/STM32F303-72-IAR-FPU.txt164
-rw-r--r--doc/rt/reports/STM32F303-72-IAR.txt164
-rw-r--r--doc/rt/reports/STM32F303-72-RVCT-FPU.txt27
-rw-r--r--doc/rt/reports/STM32F303-72-RVCT.txt29
-rw-r--r--os/common/ports/ARMCMx/compilers/IAR/cstartup.s1
-rw-r--r--os/common/ports/ARMCMx/compilers/IAR/vectors.s2
10 files changed, 500 insertions, 112 deletions
diff --git a/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.ewp b/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.ewp
index 53036912c..b101744a7 100644
--- a/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.ewp
+++ b/demos/STM32/RT-STM32F303-DISCOVERY/iar/ch.ewp
@@ -12,7 +12,7 @@
<name>General</name>
<archiveVersion>3</archiveVersion>
<data>
- <version>22</version>
+ <version>24</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -28,11 +28,6 @@
<state>Debug\List</state>
</option>
<option>
- <name>Variant</name>
- <version>20</version>
- <state>40</state>
- </option>
- <option>
<name>GEndianMode</name>
<state>0</state>
</option>
@@ -59,11 +54,6 @@
<state>0</state>
</option>
<option>
- <name>FPU</name>
- <version>2</version>
- <state>5</state>
- </option>
- <option>
<name>OGCoreOrChip</name>
<state>1</state>
</option>
@@ -87,7 +77,7 @@
</option>
<option>
<name>OGLastSavedByProductVersion</name>
- <state>6.70.3.6347</state>
+ <state>7.40.3.8937</state>
</option>
<option>
<name>GeneralEnableMisra</name>
@@ -136,13 +126,8 @@
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
</option>
<option>
- <name>GFPUCoreSlave</name>
- <version>20</version>
- <state>40</state>
- </option>
- <option>
<name>GBECoreSlave</name>
- <version>20</version>
+ <version>22</version>
<state>40</state>
</option>
<option>
@@ -157,13 +142,41 @@
<name>GRuntimeLibThreads</name>
<state>0</state>
</option>
+ <option>
+ <name>CoreVariant</name>
+ <version>22</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>GFPUDeviceSlave</name>
+ <state>STM32F303xC ST STM32F303xC</state>
+ </option>
+ <option>
+ <name>FPU2</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>NrRegs</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NEON</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GFPUCoreSlave2</name>
+ <version>22</version>
+ <state>39</state>
+ </option>
</data>
</settings>
<settings>
<name>ICCARM</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>29</version>
+ <version>31</version>
<wantNonLocal>1</wantNonLocal>
<debug>1</debug>
<option>
@@ -172,7 +185,7 @@
</option>
<option>
<name>CCDefines</name>
- <state>CORTEX_USE_FPU=TRUE</state>
+ <state></state>
</option>
<option>
<name>CCPreprocFile</name>
@@ -233,7 +246,7 @@
<option>
<name>CCAllowList</name>
<version>1</version>
- <state>0000000</state>
+ <state>00000000</state>
</option>
<option>
<name>CCDebugInfo</name>
@@ -418,6 +431,15 @@
<name>CCNoLiteralPool</name>
<state>0</state>
</option>
+ <option>
+ <name>CCOptStrategySlave</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCGuardCalls</name>
+ <state>1</state>
+ </option>
</data>
</settings>
<settings>
@@ -474,7 +496,7 @@
</option>
<option>
<name>ADefines</name>
- <state>CORTEX_USE_FPU=TRUE</state>
+ <state></state>
</option>
<option>
<name>AList</name>
@@ -597,7 +619,7 @@
<debug>1</debug>
<option>
<name>OOCOutputFormat</name>
- <version>2</version>
+ <version>3</version>
<state>0</state>
</option>
<option>
@@ -624,6 +646,7 @@
<data>
<extensions></extensions>
<cmdline></cmdline>
+ <hasPrio>0</hasPrio>
</data>
</settings>
<settings>
@@ -966,7 +989,7 @@
<name>General</name>
<archiveVersion>3</archiveVersion>
<data>
- <version>22</version>
+ <version>24</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
@@ -982,11 +1005,6 @@
<state>Release\List</state>
</option>
<option>
- <name>Variant</name>
- <version>20</version>
- <state>40</state>
- </option>
- <option>
<name>GEndianMode</name>
<state>0</state>
</option>
@@ -1013,11 +1031,6 @@
<state>0</state>
</option>
<option>
- <name>FPU</name>
- <version>2</version>
- <state>5</state>
- </option>
- <option>
<name>OGCoreOrChip</name>
<state>1</state>
</option>
@@ -1041,7 +1054,7 @@
</option>
<option>
<name>OGLastSavedByProductVersion</name>
- <state>6.70.3.6347</state>
+ <state>7.40.3.8937</state>
</option>
<option>
<name>GeneralEnableMisra</name>
@@ -1090,14 +1103,9 @@
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
</option>
<option>
- <name>GFPUCoreSlave</name>
- <version>20</version>
- <state>40</state>
- </option>
- <option>
<name>GBECoreSlave</name>
- <version>20</version>
- <state>40</state>
+ <version>22</version>
+ <state>39</state>
</option>
<option>
<name>OGUseCmsis</name>
@@ -1111,13 +1119,41 @@
<name>GRuntimeLibThreads</name>
<state>0</state>
</option>
+ <option>
+ <name>CoreVariant</name>
+ <version>22</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>GFPUDeviceSlave</name>
+ <state>STM32F303xC ST STM32F303xC</state>
+ </option>
+ <option>
+ <name>FPU2</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>NrRegs</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NEON</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GFPUCoreSlave2</name>
+ <version>22</version>
+ <state>39</state>
+ </option>
</data>
</settings>
<settings>
<name>ICCARM</name>
<archiveVersion>2</archiveVersion>
<data>
- <version>29</version>
+ <version>31</version>
<wantNonLocal>1</wantNonLocal>
<debug>0</debug>
<option>
@@ -1126,7 +1162,7 @@
</option>
<option>
<name>CCDefines</name>
- <state>CORTEX_USE_FPU=TRUE</state>
+ <state></state>
</option>
<option>
<name>CCPreprocFile</name>
@@ -1187,7 +1223,7 @@
<option>
<name>CCAllowList</name>
<version>1</version>
- <state>1111111</state>
+ <state>11111110</state>
</option>
<option>
<name>CCDebugInfo</name>
@@ -1372,6 +1408,15 @@
<name>CCNoLiteralPool</name>
<state>0</state>
</option>
+ <option>
+ <name>CCOptStrategySlave</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCGuardCalls</name>
+ <state>1</state>
+ </option>
</data>
</settings>
<settings>
@@ -1428,7 +1473,7 @@
</option>
<option>
<name>ADefines</name>
- <state>CORTEX_USE_FPU=TRUE</state>
+ <state></state>
</option>
<option>
<name>AList</name>
@@ -1551,7 +1596,7 @@
<debug>0</debug>
<option>
<name>OOCOutputFormat</name>
- <version>2</version>
+ <version>3</version>
<state>0</state>
</option>
<option>
@@ -1578,6 +1623,7 @@
<data>
<extensions></extensions>
<cmdline></cmdline>
+ <hasPrio>0</hasPrio>
</data>
</settings>
<settings>
@@ -2468,6 +2514,12 @@
<name>$PROJ_DIR$\..\..\..\..\test\rt\testsem.h</name>
</file>
<file>
+ <name>$PROJ_DIR$\..\..\..\..\test\rt\testsys.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\test\rt\testsys.h</name>
+ </file>
+ <file>
<name>$PROJ_DIR$\..\..\..\..\test\rt\testthd.c</name>
</file>
<file>
diff --git a/demos/STM32/RT-STM32F303-DISCOVERY/keil/ch.uvproj b/demos/STM32/RT-STM32F303-DISCOVERY/keil/ch.uvprojx
index f54e35ab5..b9a6f4806 100644
--- a/demos/STM32/RT-STM32F303-DISCOVERY/keil/ch.uvproj
+++ b/demos/STM32/RT-STM32F303-DISCOVERY/keil/ch.uvprojx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
- <SchemaVersion>1.1</SchemaVersion>
+ <SchemaVersion>2.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
@@ -14,6 +14,8 @@
<TargetCommonOption>
<Device>STM32F303VC</Device>
<Vendor>STMicroelectronics</Vendor>
+ <PackID>Keil.STM32F3xx_DFP.1.3.0</PackID>
+ <PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IROM(0x08000000,0x40000) IRAM(0x20000000,0xC000) IRAM2(0x10000000,0x2000) CPUTYPE("Cortex-M4") FPU2 CLOCK(72000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile>
@@ -82,6 +84,8 @@
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
@@ -143,10 +147,9 @@
<RestoreToolbox>1</RestoreToolbox>
<RestoreTracepoints>1</RestoreTracepoints>
<RestoreSysVw>1</RestoreSysVw>
- <UsePdscDebugDescription>1</UsePdscDebugDescription>
</Target>
<RunDebugAfterBuild>0</RunDebugAfterBuild>
- <TargetSelection>13</TargetSelection>
+ <TargetSelection>11</TargetSelection>
<SimDlls>
<CpuDll></CpuDll>
<CpuDllArguments></CpuDllArguments>
@@ -360,8 +363,10 @@
<uSurpInc>0</uSurpInc>
<uC99>0</uC99>
<useXO>0</useXO>
+ <v6Lang>0</v6Lang>
+ <v6LangP>0</v6LangP>
<VariousControls>
- <MiscControls>--c99</MiscControls>
+ <MiscControls>--c99 -USTM32F303xC</MiscControls>
<Define>__heap_base__=Image$$$$RW_IRAM1$$$$ZI$$$$Limit __heap_end__=Image$$$$RW_IRAM2$$$$Base</Define>
<Undefine></Undefine>
<IncludePath>..\;..\..\..\..\os\common\ports\ARMCMx\devices\STM32F3xx;..\..\..\..\os\ext\CMSIS\include;..\..\..\..\os\ext\CMSIS\ST;..\..\..\..\os\rt\ports\ARMCMx;..\..\..\..\os\rt\ports\ARMCMx\compilers\RVCT;..\..\..\..\os\rt\include;..\..\..\..\os\hal\osal\rt;..\..\..\..\os\hal\include;..\..\..\..\os\hal\boards\ST_STM32F3_DISCOVERY;..\..\..\..\os\hal\ports\common\ARMCMx;..\..\..\..\os\hal\ports\STM32\STM32F3xx;..\..\..\..\os\hal\ports\STM32\LLD;..\..\..\..\os\hal\ports\STM32\LLD\GPIOv2;..\..\..\..\os\hal\ports\STM32\LLD\I2Cv2;..\..\..\..\os\hal\ports\STM32\LLD\RTCv2;..\..\..\..\os\hal\ports\STM32\LLD\SPIv2;..\..\..\..\os\hal\ports\STM32\LLD\TIMv1;..\..\..\..\os\hal\ports\STM32\LLD\USARTv2;..\..\..\..\os\hal\ports\STM32\LLD\USBv1;..\..\..\..\test\rt</IncludePath>
diff --git a/doc/rt/reports/STM32F303-72-GCC-FPU.txt b/doc/rt/reports/STM32F303-72-GCC-FPU.txt
index 37520dbd9..b5583294e 100644
--- a/doc/rt/reports/STM32F303-72-GCC-FPU.txt
+++ b/doc/rt/reports/STM32F303-72-GCC-FPU.txt
@@ -1,10 +1,9 @@
*** ChibiOS/RT test suite
***
-*** Kernel: 3.0.0p3
-*** Compiled: Apr 13 2015 - 21:27:30
-*** Compiler: GCC 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision
- 221220]
+*** Kernel: 3.0.0
+*** Compiled: Jul 7 2015 - 10:40:22
+*** 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
@@ -100,51 +99,51 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.1 (Benchmark, messages #1)
---- Score : 221513 msgs/S, 443026 ctxswc/S
+--- Score : 224274 msgs/S, 448548 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.2 (Benchmark, messages #2)
---- Score : 179981 msgs/S, 359962 ctxswc/S
+--- Score : 187480 msgs/S, 374960 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.3 (Benchmark, messages #3)
---- Score : 179981 msgs/S, 359962 ctxswc/S
+--- Score : 187480 msgs/S, 374960 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.4 (Benchmark, context switch)
---- Score : 639224 ctxswc/S
+--- Score : 653736 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.5 (Benchmark, threads, full cycle)
---- Score : 135323 threads/S
+--- Score : 144562 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.6 (Benchmark, threads, create only)
---- Score : 193008 threads/S
+--- Score : 210503 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
---- Score : 57092 reschedules/S, 342552 ctxswc/S
+--- Score : 57411 reschedules/S, 344466 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.8 (Benchmark, round robin context switching)
---- Score : 449948 ctxswc/S
+--- Score : 425992 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.9 (Benchmark, I/O Queues throughput)
---- Score : 616632 bytes/S
+--- Score : 623308 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.10 (Benchmark, virtual timers set/reset)
---- Score : 431154 timers/S
+--- Score : 476848 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.11 (Benchmark, semaphores wait/signal)
---- Score : 1035852 wait+signal/S
+--- Score : 941072 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
---- Score : 597440 lock+unlock/S
+--- Score : 564644 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.13 (Benchmark, RAM footprint)
@@ -162,3 +161,4 @@
----------------------------------------------------------------------------
Final result: SUCCESS
+
diff --git a/doc/rt/reports/STM32F303-72-GCC.txt b/doc/rt/reports/STM32F303-72-GCC.txt
index ba6d2a7d3..20205c506 100644
--- a/doc/rt/reports/STM32F303-72-GCC.txt
+++ b/doc/rt/reports/STM32F303-72-GCC.txt
@@ -1,10 +1,9 @@
*** ChibiOS/RT test suite
***
-*** Kernel: 3.0.0p3
-*** Compiled: Apr 13 2015 - 21:24:50
-*** Compiler: GCC 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision
- 221220]
+*** Kernel: 3.0.0
+*** Compiled: Jul 7 2015 - 10:36:43
+*** Compiler: GCC 4.7.4 20140401 (release) [ARM/embedded-4_7-branch revision 209195]
*** Architecture: ARMv7-ME
*** Core Variant: Cortex-M4
*** Port Info: Advanced kernel mode
@@ -100,51 +99,51 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.1 (Benchmark, messages #1)
---- Score : 280128 msgs/S, 560256 ctxswc/S
+--- Score : 284558 msgs/S, 569116 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.2 (Benchmark, messages #2)
---- Score : 216847 msgs/S, 433694 ctxswc/S
+--- Score : 227828 msgs/S, 455656 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.3 (Benchmark, messages #3)
---- Score : 216847 msgs/S, 433694 ctxswc/S
+--- Score : 227828 msgs/S, 455656 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.4 (Benchmark, context switch)
---- Score : 915664 ctxswc/S
+--- Score : 945736 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.5 (Benchmark, threads, full cycle)
---- Score : 158227 threads/S
+--- Score : 167426 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.6 (Benchmark, threads, create only)
---- Score : 243221 threads/S
+--- Score : 263713 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
---- Score : 68112 reschedules/S, 408672 ctxswc/S
+--- Score : 68566 reschedules/S, 411396 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.8 (Benchmark, round robin context switching)
---- Score : 571380 ctxswc/S
+--- Score : 533280 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.9 (Benchmark, I/O Queues throughput)
---- Score : 616644 bytes/S
+--- Score : 623320 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.10 (Benchmark, virtual timers set/reset)
---- Score : 431168 timers/S
+--- Score : 476854 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.11 (Benchmark, semaphores wait/signal)
---- Score : 1035872 wait+signal/S
+--- Score : 941088 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
---- Score : 597452 lock+unlock/S
+--- Score : 564652 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.13 (Benchmark, RAM footprint)
@@ -162,3 +161,4 @@
----------------------------------------------------------------------------
Final result: SUCCESS
+
diff --git a/doc/rt/reports/STM32F303-72-IAR-FPU.txt b/doc/rt/reports/STM32F303-72-IAR-FPU.txt
new file mode 100644
index 000000000..355213cb1
--- /dev/null
+++ b/doc/rt/reports/STM32F303-72-IAR-FPU.txt
@@ -0,0 +1,164 @@
+
+*** ChibiOS/RT test suite
+***
+*** Kernel: 3.0.0
+*** Compiled: Jul 7 2015 - 11:24:03
+*** Compiler: IAR
+*** Architecture: ARMv7-ME
+*** Core Variant: Cortex-M4F
+*** Port Info: Advanced kernel mode
+*** Platform: STM32F303xC Analog & DSP
+*** Test Board: STMicroelectronics STM32F3-Discovery
+
+----------------------------------------------------------------------------
+--- 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 2.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.4 (Threads, delays)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.1 (Semaphores, enqueuing)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.2 (Semaphores, timeout)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.3 (Semaphores, atomic signal-wait)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Binary Semaphores, functionality)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Mutexes, priority enqueuing test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.2 (Mutexes, priority return)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.3 (Mutexes, status)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.4 (CondVar, signal test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.5 (CondVar, broadcast test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.6 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 5.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Mailboxes, queuing and timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.2 (Events, wait and broadcast)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Heap, allocation and fragmentation test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 9.1 (Memory Pools, queue/dequeue)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Dynamic APIs, threads creation from heap)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Dynamic APIs, threads creation from memory pool)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.3 (Dynamic APIs, registry and references)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- 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 : 209887 msgs/S, 419774 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 192491 msgs/S, 384982 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 192491 msgs/S, 384982 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 630808 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 129248 threads/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 177757 threads/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
+--- Score : 57918 reschedules/S, 347508 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, round robin context switching)
+--- Score : 373500 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, I/O Queues throughput)
+--- Score : 715884 bytes/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, virtual timers set/reset)
+--- Score : 549640 timers/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, semaphores wait/signal)
+--- Score : 992980 wait+signal/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
+--- Score : 679160 lock+unlock/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.13 (Benchmark, RAM footprint)
+--- System: 472 bytes
+--- Thread: 68 bytes
+--- Timer : 20 bytes
+--- Semaph: 12 bytes
+--- EventS: 4 bytes
+--- EventL: 20 bytes
+--- Mutex : 16 bytes
+--- CondV.: 8 bytes
+--- Queue : 36 bytes
+--- MailB.: 40 bytes
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+
+Final result: SUCCESS
+
diff --git a/doc/rt/reports/STM32F303-72-IAR.txt b/doc/rt/reports/STM32F303-72-IAR.txt
new file mode 100644
index 000000000..1dd6ddd88
--- /dev/null
+++ b/doc/rt/reports/STM32F303-72-IAR.txt
@@ -0,0 +1,164 @@
+
+*** ChibiOS/RT test suite
+***
+*** Kernel: 3.0.0
+*** Compiled: Jul 7 2015 - 11:17:11
+*** Compiler: IAR
+*** Architecture: ARMv7-ME
+*** Core Variant: Cortex-M4
+*** Port Info: Advanced kernel mode
+*** Platform: STM32F303xC Analog & DSP
+*** Test Board: STMicroelectronics STM32F3-Discovery
+
+----------------------------------------------------------------------------
+--- 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 2.2 (Threads, enqueuing test #2)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.3 (Threads, priority change)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 2.4 (Threads, delays)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.1 (Semaphores, enqueuing)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.2 (Semaphores, timeout)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.3 (Semaphores, atomic signal-wait)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 3.4 (Binary Semaphores, functionality)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.1 (Mutexes, priority enqueuing test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.2 (Mutexes, priority return)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.3 (Mutexes, status)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.4 (CondVar, signal test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.5 (CondVar, broadcast test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 4.6 (CondVar, boost test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 5.1 (Messages, loop)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 6.1 (Mailboxes, queuing and timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.1 (Events, registration and dispatch)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.2 (Events, wait and broadcast)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 7.3 (Events, timeouts)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 8.1 (Heap, allocation and fragmentation test)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 9.1 (Memory Pools, queue/dequeue)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Dynamic APIs, threads creation from heap)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Dynamic APIs, threads creation from memory pool)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.3 (Dynamic APIs, registry and references)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- 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 : 267630 msgs/S, 535260 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.2 (Benchmark, messages #2)
+--- Score : 239179 msgs/S, 478358 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.3 (Benchmark, messages #3)
+--- Score : 239179 msgs/S, 478358 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.4 (Benchmark, context switch)
+--- Score : 888808 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.5 (Benchmark, threads, full cycle)
+--- Score : 145147 threads/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.6 (Benchmark, threads, create only)
+--- Score : 208071 threads/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
+--- Score : 69358 reschedules/S, 416148 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.8 (Benchmark, round robin context switching)
+--- Score : 450660 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.9 (Benchmark, I/O Queues throughput)
+--- Score : 730888 bytes/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.10 (Benchmark, virtual timers set/reset)
+--- Score : 571430 timers/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.11 (Benchmark, semaphores wait/signal)
+--- Score : 999896 wait+signal/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
+--- Score : 695580 lock+unlock/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 12.13 (Benchmark, RAM footprint)
+--- System: 336 bytes
+--- Thread: 68 bytes
+--- Timer : 20 bytes
+--- Semaph: 12 bytes
+--- EventS: 4 bytes
+--- EventL: 20 bytes
+--- Mutex : 16 bytes
+--- CondV.: 8 bytes
+--- Queue : 36 bytes
+--- MailB.: 40 bytes
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+
+Final result: SUCCESS
+
diff --git a/doc/rt/reports/STM32F303-72-RVCT-FPU.txt b/doc/rt/reports/STM32F303-72-RVCT-FPU.txt
index b872c2074..02acd7ad9 100644
--- a/doc/rt/reports/STM32F303-72-RVCT-FPU.txt
+++ b/doc/rt/reports/STM32F303-72-RVCT-FPU.txt
@@ -1,8 +1,8 @@
*** ChibiOS/RT test suite
***
-*** Kernel: 3.0.0p3
-*** Compiled: Apr 13 2015 - 21:12:45
+*** Kernel: 3.0.0
+*** Compiled: Jul 7 2015 - 10:47:47
*** Compiler: RVCT
*** Architecture: ARMv7-ME
*** Core Variant: Cortex-M4F
@@ -99,47 +99,47 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.1 (Benchmark, messages #1)
---- Score : 201655 msgs/S, 403310 ctxswc/S
+--- Score : 201091 msgs/S, 402182 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.2 (Benchmark, messages #2)
---- Score : 179979 msgs/S, 359958 ctxswc/S
+--- Score : 178638 msgs/S, 357276 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.3 (Benchmark, messages #3)
---- Score : 179979 msgs/S, 359958 ctxswc/S
+--- Score : 178639 msgs/S, 357278 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.4 (Benchmark, context switch)
---- Score : 628064 ctxswc/S
+--- Score : 625336 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.5 (Benchmark, threads, full cycle)
---- Score : 137387 threads/S
+--- Score : 137913 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.6 (Benchmark, threads, create only)
---- Score : 196161 threads/S
+--- Score : 196697 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
---- Score : 57501 reschedules/S, 345006 ctxswc/S
+--- Score : 56776 reschedules/S, 340656 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.8 (Benchmark, round robin context switching)
---- Score : 415540 ctxswc/S
+--- Score : 403880 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.9 (Benchmark, I/O Queues throughput)
---- Score : 616624 bytes/S
+--- Score : 574776 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.10 (Benchmark, virtual timers set/reset)
---- Score : 380980 timers/S
+--- Score : 361832 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.11 (Benchmark, semaphores wait/signal)
---- Score : 854492 wait+signal/S
+--- Score : 864752 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
@@ -161,3 +161,4 @@
----------------------------------------------------------------------------
Final result: SUCCESS
+
diff --git a/doc/rt/reports/STM32F303-72-RVCT.txt b/doc/rt/reports/STM32F303-72-RVCT.txt
index a8cced9cb..302331b63 100644
--- a/doc/rt/reports/STM32F303-72-RVCT.txt
+++ b/doc/rt/reports/STM32F303-72-RVCT.txt
@@ -1,8 +1,8 @@
*** ChibiOS/RT test suite
***
-*** Kernel: 3.0.0p3
-*** Compiled: Apr 13 2015 - 21:16:35
+*** Kernel: 3.0.0
+*** Compiled: Jul 7 2015 - 10:55:14
*** Compiler: RVCT
*** Architecture: ARMv7-ME
*** Core Variant: Cortex-M4
@@ -99,51 +99,51 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.1 (Benchmark, messages #1)
---- Score : 248249 msgs/S, 496498 ctxswc/S
+--- Score : 247396 msgs/S, 494792 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.2 (Benchmark, messages #2)
---- Score : 216195 msgs/S, 432390 ctxswc/S
+--- Score : 214903 msgs/S, 429806 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.3 (Benchmark, messages #3)
---- Score : 216195 msgs/S, 432390 ctxswc/S
+--- Score : 214903 msgs/S, 429806 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.4 (Benchmark, context switch)
---- Score : 897104 ctxswc/S
+--- Score : 887432 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.5 (Benchmark, threads, full cycle)
---- Score : 158225 threads/S
+--- Score : 159275 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.6 (Benchmark, threads, create only)
---- Score : 241586 threads/S
+--- Score : 239177 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.7 (Benchmark, mass reschedule, 5 threads)
---- Score : 68827 reschedules/S, 412962 ctxswc/S
+--- Score : 68695 reschedules/S, 412170 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.8 (Benchmark, round robin context switching)
---- Score : 513320 ctxswc/S
+--- Score : 492260 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.9 (Benchmark, I/O Queues throughput)
---- Score : 635696 bytes/S
+--- Score : 580584 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.10 (Benchmark, virtual timers set/reset)
---- Score : 376964 timers/S
+--- Score : 363622 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.11 (Benchmark, semaphores wait/signal)
---- Score : 877956 wait+signal/S
+--- Score : 864772 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.12 (Benchmark, mutexes lock/unlock)
---- Score : 585304 lock+unlock/S
+--- Score : 584116 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 12.13 (Benchmark, RAM footprint)
@@ -161,3 +161,4 @@
----------------------------------------------------------------------------
Final result: SUCCESS
+
diff --git a/os/common/ports/ARMCMx/compilers/IAR/cstartup.s b/os/common/ports/ARMCMx/compilers/IAR/cstartup.s
index 999a6e25c..6e5236f73 100644
--- a/os/common/ports/ARMCMx/compilers/IAR/cstartup.s
+++ b/os/common/ports/ARMCMx/compilers/IAR/cstartup.s
@@ -70,6 +70,7 @@ __iar_program_start:
bl __iar_init_vfp
b __cmain
+ SECTION .text:CODE:NOROOT:REORDER(2)
PUBWEAK __early_init
__early_init:
bx lr
diff --git a/os/common/ports/ARMCMx/compilers/IAR/vectors.s b/os/common/ports/ARMCMx/compilers/IAR/vectors.s
index d6f4524c6..51110dda9 100644
--- a/os/common/ports/ARMCMx/compilers/IAR/vectors.s
+++ b/os/common/ports/ARMCMx/compilers/IAR/vectors.s
@@ -684,7 +684,7 @@ __vector_table:
#endif
PUBLIC _unhandled_exception
- SECTION .text:CODE:REORDER(1)
+ SECTION .text:CODE:NOROOT:REORDER(1)
THUMB
NMI_Handler