aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/rt/reports/SPC56EC-120-GCC.txt22
-rw-r--r--doc/rt/reports/SPC56EC-120-GHS.txt32
-rw-r--r--doc/rt/reports/STM32F746-216-GCC.txt165
-rw-r--r--os/common/ports/e200/chcore.h4
-rw-r--r--os/common/startup/e200/compilers/GHS/ld/rules_z0.ld159
-rw-r--r--os/common/startup/e200/compilers/GHS/ld/rules_z3.ld156
-rw-r--r--os/common/startup/e200/compilers/GHS/ld/rules_z4.ld156
-rw-r--r--readme.txt1
-rw-r--r--test/rt/configuration.xml57
-rw-r--r--test/rt/source/test/rt_test_sequence_001.c71
10 files changed, 267 insertions, 556 deletions
diff --git a/doc/rt/reports/SPC56EC-120-GCC.txt b/doc/rt/reports/SPC56EC-120-GCC.txt
index ff038341f..70a4546f8 100644
--- a/doc/rt/reports/SPC56EC-120-GCC.txt
+++ b/doc/rt/reports/SPC56EC-120-GCC.txt
@@ -1,14 +1,22 @@
*** ChibiOS/RT Test Suite
***
-*** Compiled: Dec 7 2017 - 08:49:34
+*** Compiled: Dec 7 2017 - 09:48:31
*** Platform: SPC56ECxx Gateway
*** Test Board: EVB with SPC56ECxx Mini Module
============================================================================
=== Test Sequence 1 (Information)
----------------------------------------------------------------------------
---- Test Case 1.1 (Kernel Info)
+--- Test Case 1.1 (Port Info)
+--- Architecture: Power Architecture e200
+--- Compiler: GCC 4.6.3 build on 2013-01-07
+--- Natural alignment: 4
+--- Stack alignment: 8
+--- Working area alignment: 8
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Kernel Info)
--- Product: ChibiOS/RT
--- Stable Flag: 0
--- Version String: 5.0.0
@@ -17,7 +25,7 @@
--- Patch Number: 0
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Kernel Settings)
+--- Test Case 1.3 (Kernel Settings)
--- CH_CFG_ST_RESOLUTION: 32
--- CH_CFG_ST_FREQUENCY: 1000
--- CH_CFG_ST_TIMEDELTA: 0
@@ -176,7 +184,7 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.2 (Messages performance #2)
---- Score : 305736 msgs/S, 611472 ctxswc/S
+--- Score : 305735 msgs/S, 611470 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.3 (Messages performance #3)
@@ -192,7 +200,7 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.6 (Threads performance, create/exit only)
---- Score : 317909 threads/S
+--- Score : 317908 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.7 (Mass reschedule performance)
@@ -212,7 +220,7 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.11 (Mutexes lock/unlock performance)
---- Score : 1318240 lock+unlock/S
+--- Score : 1318244 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.12 (RAM Footprint)
@@ -232,7 +240,7 @@ Final result: SUCCESS
*** ChibiOS OS Library Test Suite
***
-*** Compiled: Dec 7 2017 - 08:49:34
+*** Compiled: Dec 7 2017 - 09:48:31
*** Platform: SPC56ECxx Gateway
*** Test Board: EVB with SPC56ECxx Mini Module
diff --git a/doc/rt/reports/SPC56EC-120-GHS.txt b/doc/rt/reports/SPC56EC-120-GHS.txt
index e1ed7586f..7600c418d 100644
--- a/doc/rt/reports/SPC56EC-120-GHS.txt
+++ b/doc/rt/reports/SPC56EC-120-GHS.txt
@@ -1,14 +1,22 @@
*** ChibiOS/RT Test Suite
***
-*** Compiled: Dec 7 2017 - 08:47:19
+*** Compiled: Dec 7 2017 - 09:42:16
*** Platform: SPC56ECxx Gateway
*** Test Board: EVB with SPC56ECxx Mini Module
============================================================================
=== Test Sequence 1 (Information)
----------------------------------------------------------------------------
---- Test Case 1.1 (Kernel Info)
+--- Test Case 1.1 (Port Info)
+--- Architecture: Power Architecture e200
+--- Compiler: GHS
+--- Natural alignment: 4
+--- Stack alignment: 8
+--- Working area alignment: 8
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Kernel Info)
--- Product: ChibiOS/RT
--- Stable Flag: 0
--- Version String: 5.0.0
@@ -17,7 +25,7 @@
--- Patch Number: 0
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Kernel Settings)
+--- Test Case 1.3 (Kernel Settings)
--- CH_CFG_ST_RESOLUTION: 32
--- CH_CFG_ST_FREQUENCY: 1000
--- CH_CFG_ST_TIMEDELTA: 0
@@ -172,11 +180,11 @@
=== Test Sequence 10 (Benchmarks)
----------------------------------------------------------------------------
--- Test Case 10.1 (Messages performance #1)
---- Score : 368797 msgs/S, 737594 ctxswc/S
+--- Score : 368798 msgs/S, 737596 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.2 (Messages performance #2)
---- Score : 324839 msgs/S, 649678 ctxswc/S
+--- Score : 324836 msgs/S, 649672 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.3 (Messages performance #3)
@@ -188,7 +196,7 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.5 (Threads performance, full cycle)
---- Score : 268113 threads/S
+--- Score : 268142 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.6 (Threads performance, create/exit only)
@@ -196,23 +204,23 @@
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.7 (Mass reschedule performance)
---- Score : 99059 reschedules/S, 594354 ctxswc/S
+--- Score : 99061 reschedules/S, 594366 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.8 (Round-Robin voluntary reschedule)
---- Score : 635160 ctxswc/S
+--- Score : 635180 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.9 (Virtual Timers set/reset performance)
---- Score : 1774952 timers/S
+--- Score : 1774954 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.10 (Semaphores wait/signal performance)
---- Score : 1728804 wait+signal/S
+--- Score : 1728808 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.11 (Mutexes lock/unlock performance)
---- Score : 1473752 lock+unlock/S
+--- Score : 1473756 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.12 (RAM Footprint)
@@ -232,7 +240,7 @@ Final result: SUCCESS
*** ChibiOS OS Library Test Suite
***
-*** Compiled: Dec 7 2017 - 08:47:19
+*** Compiled: Dec 7 2017 - 09:42:16
*** Platform: SPC56ECxx Gateway
*** Test Board: EVB with SPC56ECxx Mini Module
diff --git a/doc/rt/reports/STM32F746-216-GCC.txt b/doc/rt/reports/STM32F746-216-GCC.txt
index d32dbc505..064585432 100644
--- a/doc/rt/reports/STM32F746-216-GCC.txt
+++ b/doc/rt/reports/STM32F746-216-GCC.txt
@@ -1,25 +1,31 @@
*** ChibiOS/RT Test Suite
***
-*** Compiled: Sep 19 2017 - 12:17:36
+*** Compiled: Dec 7 2017 - 09:22:24
*** Platform: STM32F746 Very High Performance with DSP and FPU
*** Test Board: STMicroelectronics STM32F746G-Discovery
-*** Compiler: GCC 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]
-*** Architecture: ARMv7E-M
-*** Core Variant: Cortex-M7
-*** Port Info: Advanced kernel mode
+============================================================================
+=== Test Sequence 1 (Information)
----------------------------------------------------------------------------
---- Test Case 1.1 (Kernel Info)
+--- Test Case 1.1 (Port Info)
+--- Architecture: ARMv7E-M
+--- Compiler: GCC 5.4.1 20160609 (release) [ARM/embedded-5-branch revision 237715]
+--- Natural alignment: 4
+--- Stack alignment: 8
+--- Working area alignment: 8
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 1.2 (Kernel Info)
--- Product: ChibiOS/RT
---- Stable Flag: 1
---- Version String: 4.0.1
---- Major Number: 4
+--- Stable Flag: 0
+--- Version String: 5.0.0
+--- Major Number: 5
--- Minor Number: 0
---- Patch Number: 1
+--- Patch Number: 0
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 1.2 (Kernel Settings)
+--- Test Case 1.3 (Kernel Settings)
--- CH_CFG_ST_RESOLUTION: 32
--- CH_CFG_ST_FREQUENCY: 10000
--- CH_CFG_ST_TIMEDELTA: 2
@@ -49,12 +55,14 @@
--- CH_DBG_SYSTEM_STATE_CHECK: 0
--- CH_DBG_ENABLE_CHECKS: 0
--- CH_DBG_ENABLE_ASSERTS: 0
---- CH_DBG_TRACE_MASK: 255
+--- CH_DBG_TRACE_MASK: 0
--- CH_DBG_TRACE_BUFFER_SIZE: 128
--- CH_DBG_ENABLE_STACK_CHECK: 0
--- CH_DBG_FILL_THREADS: 0
--- CH_DBG_THREADS_PROFILING: 0
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 2 (System layer and port interface)
----------------------------------------------------------------------------
--- Test Case 2.1 (System integrity functionality)
--- Result: SUCCESS
@@ -67,6 +75,8 @@
----------------------------------------------------------------------------
--- Test Case 2.4 (System Tick Counter functionality)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 3 (Threads Functionality)
----------------------------------------------------------------------------
--- Test Case 3.1 (Thread Sleep functionality)
--- Result: SUCCESS
@@ -79,9 +89,13 @@
----------------------------------------------------------------------------
--- Test Case 3.4 (Priority change test with Priority Inheritance)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 4 (Suspend/Resume)
----------------------------------------------------------------------------
--- Test Case 4.1 (Suspend and Resume functionality)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 5 (Counter Semaphores)
----------------------------------------------------------------------------
--- Test Case 5.1 (Semaphore primitives, no state change)
--- Result: SUCCESS
@@ -100,6 +114,8 @@
----------------------------------------------------------------------------
--- Test Case 5.6 (Testing Binary Semaphores special case)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 6 (Mutexes, Condition Variables and Priority Inheritance)
----------------------------------------------------------------------------
--- Test Case 6.1 (Priority enqueuing test)
--- Result: SUCCESS
@@ -118,9 +134,13 @@
----------------------------------------------------------------------------
--- Test Case 6.6 (Condition Variable priority boost test)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 7 (Synchronous Messages)
----------------------------------------------------------------------------
--- Test Case 7.1 (Messages Server loop)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 8 (Event Sources and Event Flags)
----------------------------------------------------------------------------
--- Test Case 8.1 (Events registration)
--- Result: SUCCESS
@@ -142,91 +162,128 @@
----------------------------------------------------------------------------
--- Test Case 8.7 (Broadcasting using chEvtBroadcast())
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 9 (Dynamic threads)
+----------------------------------------------------------------------------
+--- Test Case 9.1 (Threads creation from Memory Heap)
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 9.2 (Threads creation from Memory Pool)
+--- Result: SUCCESS
+============================================================================
+=== Test Sequence 10 (Benchmarks)
+----------------------------------------------------------------------------
+--- Test Case 10.1 (Messages performance #1)
+--- Score : 931025 msgs/S, 1862050 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.2 (Messages performance #2)
+--- Score : 818174 msgs/S, 1636348 ctxswc/S
+--- Result: SUCCESS
+----------------------------------------------------------------------------
+--- Test Case 10.3 (Messages performance #3)
+--- Score : 818173 msgs/S, 1636346 ctxswc/S
+--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.1 (Mailbox normal API, non-blocking tests)
+--- Test Case 10.4 (Context Switch performance)
+--- Score : 3483848 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.2 (Mailbox I-Class API, non-blocking tests)
+--- Test Case 10.5 (Threads performance, full cycle)
+--- Score : 606734 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 9.3 (Mailbox timeouts)
+--- Test Case 10.6 (Threads performance, create/exit only)
+--- Score : 760555 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.1 (Loading and emptying a memory pool)
+--- Test Case 10.7 (Mass reschedule performance)
+--- Score : 291889 reschedules/S, 1751334 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.2 (Loading and emptying a guarded memory pool without waiting)
+--- Test Case 10.8 (Round-Robin voluntary reschedule)
+--- Score : 2102168 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 10.3 (Guarded Memory Pools timeout)
+--- Test Case 10.9 (Virtual Timers set/reset performance)
+--- Score : 1928652 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.1 (Allocation and fragmentation)
+--- Test Case 10.10 (Semaphores wait/signal performance)
+--- Score : 2918896 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 11.2 (Default Heap)
+--- Test Case 10.11 (Mutexes lock/unlock performance)
+--- Score : 2399976 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 12.1 (Threads creation from Memory Heap)
+--- Test Case 10.12 (RAM Footprint)
+--- System: 2176 bytes
+--- Thread: 68 bytes
+--- Timer : 20 bytes
+--- Semaph: 12 bytes
+--- Mutex : 16 bytes
+--- CondV.: 8 bytes
+--- EventS: 4 bytes
+--- EventL: 20 bytes
+--- MailB.: 40 bytes
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 12.2 (Threads creation from Memory Pool)
+
+Final result: SUCCESS
+
+*** ChibiOS OS Library Test Suite
+***
+*** Compiled: Dec 7 2017 - 09:22:24
+*** Platform: STM32F746 Very High Performance with DSP and FPU
+*** Test Board: STMicroelectronics STM32F746G-Discovery
+
+============================================================================
+=== Test Sequence 1 (Mailboxes)
+----------------------------------------------------------------------------
+--- Test Case 1.1 (Mailbox normal API, non-blocking tests)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.1 (Messages performance #1)
---- Score : 1079993 msgs/S, 2159986 ctxswc/S
+--- Test Case 1.2 (Mailbox I-Class API, non-blocking tests)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.2 (Messages performance #2)
---- Score : 915249 msgs/S, 1830498 ctxswc/S
+--- Test Case 1.3 (Mailbox timeouts)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 2 (Memory Pools)
----------------------------------------------------------------------------
---- Test Case 13.3 (Messages performance #3)
---- Score : 915248 msgs/S, 1830496 ctxswc/S
+--- Test Case 2.1 (Loading and emptying a memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.4 (Context Switch performance)
---- Score : 4645136 ctxswc/S
+--- Test Case 2.2 (Loading and emptying a guarded memory pool without waiting)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.5 (Threads performance, full cycle)
---- Score : 674996 threads/S
+--- Test Case 2.3 (Guarded Memory Pools timeout)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 3 (Memory Heaps)
----------------------------------------------------------------------------
---- Test Case 13.6 (Threads performance, create/exit only)
---- Score : 885241 threads/S
+--- Test Case 3.1 (Allocation and fragmentation)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.7 (Mass reschedule performance)
---- Score : 346153 reschedules/S, 2076918 ctxswc/S
+--- Test Case 3.2 (Default Heap)
--- Result: SUCCESS
+============================================================================
+=== Test Sequence 4 (Objects Factory)
----------------------------------------------------------------------------
---- Test Case 13.8 (Round-Robin voluntary reschedule)
---- Score : 2489900 ctxswc/S
+--- Test Case 4.1 (Objects Registry)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.9 (Virtual Timers set/reset performance)
---- Score : 2203294 timers/S
+--- Test Case 4.2 (Dynamic Buffers Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.10 (Semaphores wait/signal performance)
---- Score : 3176464 wait+signal/S
+--- Test Case 4.3 (Dynamic Semaphores Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.11 (Mutexes lock/unlock performance)
---- Score : 2602404 lock+unlock/S
+--- Test Case 4.4 (Dynamic Mailboxes Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------
---- Test Case 13.12 (RAM Footprint)
---- System: 120 bytes
---- Thread: 68 bytes
---- Timer : 20 bytes
---- Semaph: 12 bytes
---- Mutex : 16 bytes
---- CondV.: 8 bytes
---- EventS: 4 bytes
---- EventL: 20 bytes
---- MailB.: 40 bytes
+--- Test Case 4.5 (Dynamic Objects FIFOs Factory)
--- Result: SUCCESS
----------------------------------------------------------------------------
diff --git a/os/common/ports/e200/chcore.h b/os/common/ports/e200/chcore.h
index 328f39eb1..84b065c68 100644
--- a/os/common/ports/e200/chcore.h
+++ b/os/common/ports/e200/chcore.h
@@ -83,12 +83,12 @@
/**
* @brief Name of the implemented architecture.
*/
-#define PORT_ARCHITECTURE_NAME "Power Architecture"
+#define PORT_ARCHITECTURE_NAME "Power Architecture e200"
/**
* @brief Compiler name and version.
*/
-#if defined(__GNUC__) || defined(__DOXYGEN__)
+#if (defined(__GNUC__) && !defined(__ghs__)) || defined(__DOXYGEN__)
#define PORT_COMPILER_NAME "GCC " __VERSION__
#elif defined(__MWERKS__)
diff --git a/os/common/startup/e200/compilers/GHS/ld/rules_z0.ld b/os/common/startup/e200/compilers/GHS/ld/rules_z0.ld
deleted file mode 100644
index 4b421b842..000000000
--- a/os/common/startup/e200/compilers/GHS/ld/rules_z0.ld
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-__ram_size__ = LENGTH(ram);
-__ram_start__ = ORIGIN(ram);
-__ram_end__ = ORIGIN(ram) + LENGTH(ram);
-
-ENTRY(_reset_address)
-
-SECTIONS
-{
- . = ORIGIN(flash);
- .boot0 : ALIGN(16) SUBALIGN(16)
- {
- KEEP(*(.boot))
- } > flash
-
- .boot1 : ALIGN(16) SUBALIGN(16)
- {
- KEEP(*(.handlers))
- KEEP(*(.crt0))
- /* The vectors table requires a 2kB alignment.*/
- . = ALIGN(0x800);
- KEEP(*(.vectors))
- /* The IVPR register requires a 4kB alignment.*/
- . = ALIGN(0x1000);
- __ivpr_base__ = .;
- KEEP(*(.ivors))
- } > flash
-
- constructors : ALIGN(4) SUBALIGN(4)
- {
- PROVIDE(__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE(__init_array_end = .);
- } > flash
-
- destructors : ALIGN(4) SUBALIGN(4)
- {
- PROVIDE(__fini_array_start = .);
- KEEP(*(.fini_array))
- KEEP(*(SORT(.fini_array.*)))
- PROVIDE(__fini_array_end = .);
- } > flash
-
- .text_vle : ALIGN(16) SUBALIGN(16)
- {
- *(.text_vle)
- *(.text_vle.*)
- *(.gnu.linkonce.t_vle.*)
- } > flash
-
- .text : ALIGN(16) SUBALIGN(16)
- {
- *(.text)
- *(.text.*)
- *(.gnu.linkonce.t.*)
- } > flash
-
- .rodata : ALIGN(16) SUBALIGN(16)
- {
- *(.glue_7t)
- *(.glue_7)
- *(.gcc*)
- *(.rodata)
- *(.rodata.*)
- *(.rodata1)
- } > flash
-
- .sdata2 : ALIGN(16) SUBALIGN(16)
- {
- __sdata2_start__ = . + 0x8000;
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- } > flash
-
- .eh_frame_hdr :
- {
- *(.eh_frame_hdr)
- } > flash
-
- .eh_frame : ONLY_IF_RO
- {
- *(.eh_frame)
- } > flash
-
- .romdata : ALIGN(16) SUBALIGN(16)
- {
- __romdata_start__ = .;
- } > flash
-
- .stacks : ALIGN(16) SUBALIGN(16)
- {
- . = ALIGN(8);
- __irq_stack_base__ = .;
- . += __irq_stack_size__;
- . = ALIGN(8);
- __irq_stack_end__ = .;
- __process_stack_base__ = .;
- __main_thread_stack_base__ = .;
- . += __process_stack_size__;
- . = ALIGN(8);
- __process_stack_end__ = .;
- __main_thread_stack_end__ = .;
- } > ram
-
- .data : AT(__romdata_start__)
- {
- . = ALIGN(4);
- __data_start__ = .;
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- __sdata_start__ = . + 0x8000;
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- __data_end__ = .;
- } > ram
-
- .sbss :
- {
- __bss_start__ = .;
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- } > ram
-
- .bss :
- {
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- __bss_end__ = .;
- } > ram
-
- __heap_base__ = __bss_end__;
- __heap_end__ = __ram_end__;
-}
diff --git a/os/common/startup/e200/compilers/GHS/ld/rules_z3.ld b/os/common/startup/e200/compilers/GHS/ld/rules_z3.ld
deleted file mode 100644
index f69a01ff4..000000000
--- a/os/common/startup/e200/compilers/GHS/ld/rules_z3.ld
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-__ram_size__ = LENGTH(ram);
-__ram_start__ = ORIGIN(ram);
-__ram_end__ = ORIGIN(ram) + LENGTH(ram);
-
-ENTRY(_reset_address)
-
-SECTIONS
-{
- . = ORIGIN(flash);
- .boot0 : ALIGN(16) SUBALIGN(16)
- {
- __ivpr_base__ = .;
- KEEP(*(.boot))
- } > flash
-
- .boot1 : ALIGN(16) SUBALIGN(16)
- {
- KEEP(*(.handlers))
- KEEP(*(.crt0))
- /* The vectors table requires a 2kB alignment.*/
- . = ALIGN(0x800);
- KEEP(*(.vectors))
- } > flash
-
- constructors : ALIGN(4) SUBALIGN(4)
- {
- PROVIDE(__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE(__init_array_end = .);
- } > flash
-
- destructors : ALIGN(4) SUBALIGN(4)
- {
- PROVIDE(__fini_array_start = .);
- KEEP(*(.fini_array))
- KEEP(*(SORT(.fini_array.*)))
- PROVIDE(__fini_array_end = .);
- } > flash
-
- .text_vle : ALIGN(16) SUBALIGN(16)
- {
- *(.text_vle)
- *(.text_vle.*)
- *(.gnu.linkonce.t_vle.*)
- } > flash
-
- .text : ALIGN(16) SUBALIGN(16)
- {
- *(.text)
- *(.text.*)
- *(.gnu.linkonce.t.*)
- } > flash
-
- .rodata : ALIGN(16) SUBALIGN(16)
- {
- *(.glue_7t)
- *(.glue_7)
- *(.gcc*)
- *(.rodata)
- *(.rodata.*)
- *(.rodata1)
- } > flash
-
- .sdata2 : ALIGN(16) SUBALIGN(16)
- {
- __sdata2_start__ = . + 0x8000;
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- } > flash
-
- .eh_frame_hdr :
- {
- *(.eh_frame_hdr)
- } > flash
-
- .eh_frame : ONLY_IF_RO
- {
- *(.eh_frame)
- } > flash
-
- .romdata : ALIGN(16) SUBALIGN(16)
- {
- __romdata_start__ = .;
- } > flash
-
- .stacks : ALIGN(16) SUBALIGN(16)
- {
- . = ALIGN(8);
- __irq_stack_base__ = .;
- . += __irq_stack_size__;
- . = ALIGN(8);
- __irq_stack_end__ = .;
- __process_stack_base__ = .;
- __main_thread_stack_base__ = .;
- . += __process_stack_size__;
- . = ALIGN(8);
- __process_stack_end__ = .;
- __main_thread_stack_end__ = .;
- } > ram
-
- .data : AT(__romdata_start__)
- {
- . = ALIGN(4);
- __data_start__ = .;
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- __sdata_start__ = . + 0x8000;
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- __data_end__ = .;
- } > ram
-
- .sbss :
- {
- __bss_start__ = .;
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- } > ram
-
- .bss :
- {
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- __bss_end__ = .;
- } > ram
-
- __heap_base__ = __bss_end__;
- __heap_end__ = __ram_end__;
-}
diff --git a/os/common/startup/e200/compilers/GHS/ld/rules_z4.ld b/os/common/startup/e200/compilers/GHS/ld/rules_z4.ld
deleted file mode 100644
index f69a01ff4..000000000
--- a/os/common/startup/e200/compilers/GHS/ld/rules_z4.ld
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-__ram_size__ = LENGTH(ram);
-__ram_start__ = ORIGIN(ram);
-__ram_end__ = ORIGIN(ram) + LENGTH(ram);
-
-ENTRY(_reset_address)
-
-SECTIONS
-{
- . = ORIGIN(flash);
- .boot0 : ALIGN(16) SUBALIGN(16)
- {
- __ivpr_base__ = .;
- KEEP(*(.boot))
- } > flash
-
- .boot1 : ALIGN(16) SUBALIGN(16)
- {
- KEEP(*(.handlers))
- KEEP(*(.crt0))
- /* The vectors table requires a 2kB alignment.*/
- . = ALIGN(0x800);
- KEEP(*(.vectors))
- } > flash
-
- constructors : ALIGN(4) SUBALIGN(4)
- {
- PROVIDE(__init_array_start = .);
- KEEP(*(SORT(.init_array.*)))
- KEEP(*(.init_array))
- PROVIDE(__init_array_end = .);
- } > flash
-
- destructors : ALIGN(4) SUBALIGN(4)
- {
- PROVIDE(__fini_array_start = .);
- KEEP(*(.fini_array))
- KEEP(*(SORT(.fini_array.*)))
- PROVIDE(__fini_array_end = .);
- } > flash
-
- .text_vle : ALIGN(16) SUBALIGN(16)
- {
- *(.text_vle)
- *(.text_vle.*)
- *(.gnu.linkonce.t_vle.*)
- } > flash
-
- .text : ALIGN(16) SUBALIGN(16)
- {
- *(.text)
- *(.text.*)
- *(.gnu.linkonce.t.*)
- } > flash
-
- .rodata : ALIGN(16) SUBALIGN(16)
- {
- *(.glue_7t)
- *(.glue_7)
- *(.gcc*)
- *(.rodata)
- *(.rodata.*)
- *(.rodata1)
- } > flash
-
- .sdata2 : ALIGN(16) SUBALIGN(16)
- {
- __sdata2_start__ = . + 0x8000;
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- } > flash
-
- .eh_frame_hdr :
- {
- *(.eh_frame_hdr)
- } > flash
-
- .eh_frame : ONLY_IF_RO
- {
- *(.eh_frame)
- } > flash
-
- .romdata : ALIGN(16) SUBALIGN(16)
- {
- __romdata_start__ = .;
- } > flash
-
- .stacks : ALIGN(16) SUBALIGN(16)
- {
- . = ALIGN(8);
- __irq_stack_base__ = .;
- . += __irq_stack_size__;
- . = ALIGN(8);
- __irq_stack_end__ = .;
- __process_stack_base__ = .;
- __main_thread_stack_base__ = .;
- . += __process_stack_size__;
- . = ALIGN(8);
- __process_stack_end__ = .;
- __main_thread_stack_end__ = .;
- } > ram
-
- .data : AT(__romdata_start__)
- {
- . = ALIGN(4);
- __data_start__ = .;
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- __sdata_start__ = . + 0x8000;
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- __data_end__ = .;
- } > ram
-
- .sbss :
- {
- __bss_start__ = .;
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- } > ram
-
- .bss :
- {
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- __bss_end__ = .;
- } > ram
-
- __heap_base__ = __bss_end__;
- __heap_end__ = __ram_end__;
-}
diff --git a/readme.txt b/readme.txt
index 8324b04c4..8afb89cd3 100644
--- a/readme.txt
+++ b/readme.txt
@@ -89,6 +89,7 @@
*****************************************************************************
*** Next ***
+- NEW: Added GHS compiler support to the Power e200 port.
- NEW: Added tool for board files generation from command line.
- NEW: Added STM32L496xx/STM32L4A6xx support.
- NEW: Added STM32F030x4 support.
diff --git a/test/rt/configuration.xml b/test/rt/configuration.xml
index 3aca04d0a..20fc7ea0b 100644
--- a/test/rt/configuration.xml
+++ b/test/rt/configuration.xml
@@ -170,6 +170,63 @@ systime_t test_wait_tick(void) {
<cases>
<case>
<brief>
+ <value>Port Info.</value>
+ </brief>
+ <description>
+ <value>Port-related info are reported.</value>
+ </description>
+ <condition>
+ <value />
+ </condition>
+ <various_code>
+ <setup_code>
+ <value />
+ </setup_code>
+ <teardown_code>
+ <value />
+ </teardown_code>
+ <local_variables>
+ <value />
+ </local_variables>
+ </various_code>
+ <steps>
+ <step>
+ <description>
+ <value>Prints the version string.</value>
+ </description>
+ <tags>
+ <value />
+ </tags>
+ <code>
+ <value><![CDATA[#if defined(PORT_ARCHITECTURE_NAME)
+test_print("--- Architecture: ");
+test_println(PORT_ARCHITECTURE_NAME);
+#endif
+#if defined(PORT_COMPILER_NAME)
+test_print("--- Compiler: ");
+test_println(PORT_COMPILER_NAME);
+#endif
+#if defined(PORT_NATURAL_ALIGN)
+test_print("--- Natural alignment: ");
+test_printn(PORT_NATURAL_ALIGN);
+test_println("");
+#endif
+#if defined(PORT_STACK_ALIGN)
+test_print("--- Stack alignment: ");
+test_printn(PORT_STACK_ALIGN);
+test_println("");
+#endif
+#if defined(PORT_WORKING_AREA_ALIGN)
+test_print("--- Working area alignment: ");
+test_printn(PORT_WORKING_AREA_ALIGN);
+test_println("");
+#endif]]></value>
+ </code>
+ </step>
+ </steps>
+ </case>
+ <case>
+ <brief>
<value>Kernel Info.</value>
</brief>
<description>
diff --git a/test/rt/source/test/rt_test_sequence_001.c b/test/rt/source/test/rt_test_sequence_001.c
index f5f726414..3e07198a4 100644
--- a/test/rt/source/test/rt_test_sequence_001.c
+++ b/test/rt/source/test/rt_test_sequence_001.c
@@ -32,6 +32,7 @@
* <h2>Test Cases</h2>
* - @subpage rt_test_001_001
* - @subpage rt_test_001_002
+ * - @subpage rt_test_001_003
* .
*/
@@ -46,10 +47,10 @@
****************************************************************************/
/**
- * @page rt_test_001_001 [1.1] Kernel Info
+ * @page rt_test_001_001 [1.1] Port Info
*
* <h2>Description</h2>
- * The version numbers are reported.
+ * Port-related info are reported.
*
* <h2>Test Steps</h2>
* - [1.1.1] Prints the version string.
@@ -61,6 +62,55 @@ static void rt_test_001_001_execute(void) {
/* [1.1.1] Prints the version string.*/
test_set_step(1);
{
+#if defined(PORT_ARCHITECTURE_NAME)
+ test_print("--- Architecture: ");
+ test_println(PORT_ARCHITECTURE_NAME);
+#endif
+#if defined(PORT_COMPILER_NAME)
+ test_print("--- Compiler: ");
+ test_println(PORT_COMPILER_NAME);
+#endif
+#if defined(PORT_NATURAL_ALIGN)
+ test_print("--- Natural alignment: ");
+ test_printn(PORT_NATURAL_ALIGN);
+ test_println("");
+#endif
+#if defined(PORT_STACK_ALIGN)
+ test_print("--- Stack alignment: ");
+ test_printn(PORT_STACK_ALIGN);
+ test_println("");
+#endif
+#if defined(PORT_WORKING_AREA_ALIGN)
+ test_print("--- Working area alignment: ");
+ test_printn(PORT_WORKING_AREA_ALIGN);
+ test_println("");
+#endif
+ }
+}
+
+static const testcase_t rt_test_001_001 = {
+ "Port Info",
+ NULL,
+ NULL,
+ rt_test_001_001_execute
+};
+
+/**
+ * @page rt_test_001_002 [1.2] Kernel Info
+ *
+ * <h2>Description</h2>
+ * The version numbers are reported.
+ *
+ * <h2>Test Steps</h2>
+ * - [1.2.1] Prints the version string.
+ * .
+ */
+
+static void rt_test_001_002_execute(void) {
+
+ /* [1.2.1] Prints the version string.*/
+ test_set_step(1);
+ {
test_println("--- Product: ChibiOS/RT");
test_print("--- Stable Flag: ");
test_printn(CH_KERNEL_STABLE);
@@ -79,27 +129,27 @@ static void rt_test_001_001_execute(void) {
}
}
-static const testcase_t rt_test_001_001 = {
+static const testcase_t rt_test_001_002 = {
"Kernel Info",
NULL,
NULL,
- rt_test_001_001_execute
+ rt_test_001_002_execute
};
/**
- * @page rt_test_001_002 [1.2] Kernel Settings
+ * @page rt_test_001_003 [1.3] Kernel Settings
*
* <h2>Description</h2>
* The static kernel settings are reported.
*
* <h2>Test Steps</h2>
- * - [1.2.1] Prints the configuration options settings.
+ * - [1.3.1] Prints the configuration options settings.
* .
*/
-static void rt_test_001_002_execute(void) {
+static void rt_test_001_003_execute(void) {
- /* [1.2.1] Prints the configuration options settings.*/
+ /* [1.3.1] Prints the configuration options settings.*/
test_set_step(1);
{
test_print("--- CH_CFG_ST_RESOLUTION: ");
@@ -207,11 +257,11 @@ static void rt_test_001_002_execute(void) {
}
}
-static const testcase_t rt_test_001_002 = {
+static const testcase_t rt_test_001_003 = {
"Kernel Settings",
NULL,
NULL,
- rt_test_001_002_execute
+ rt_test_001_003_execute
};
/****************************************************************************
@@ -224,6 +274,7 @@ static const testcase_t rt_test_001_002 = {
const testcase_t * const rt_test_sequence_001_array[] = {
&rt_test_001_001,
&rt_test_001_002,
+ &rt_test_001_003,
NULL
};