From 2cf8a7897b9bd9b38cdde479a71f7980bb753d3f Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Thu, 7 Dec 2017 08:55:48 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11128 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- doc/rt/reports/SPC56EC-120-GCC.txt | 22 ++- doc/rt/reports/SPC56EC-120-GHS.txt | 32 ++-- doc/rt/reports/STM32F746-216-GCC.txt | 165 ++++++++++++++------- os/common/ports/e200/chcore.h | 4 +- .../startup/e200/compilers/GHS/ld/rules_z0.ld | 159 -------------------- .../startup/e200/compilers/GHS/ld/rules_z3.ld | 156 ------------------- .../startup/e200/compilers/GHS/ld/rules_z4.ld | 156 ------------------- readme.txt | 1 + test/rt/configuration.xml | 57 +++++++ test/rt/source/test/rt_test_sequence_001.c | 71 +++++++-- 10 files changed, 267 insertions(+), 556 deletions(-) delete mode 100644 os/common/startup/e200/compilers/GHS/ld/rules_z0.ld delete mode 100644 os/common/startup/e200/compilers/GHS/ld/rules_z3.ld delete mode 100644 os/common/startup/e200/compilers/GHS/ld/rules_z4.ld 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 @@ -168,6 +168,63 @@ systime_t test_wait_tick(void) { + + + Port Info. + + + Port-related info are reported. + + + + + + + + + + + + + + + + + + + Prints the version string. + + + + + + + + + + Kernel Info. 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 @@ *

Test Cases

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

Description

- * The version numbers are reported. + * Port-related info are reported. * *

Test Steps

* - [1.1.1] Prints the version string. @@ -60,6 +61,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 + * + *

Description

+ * The version numbers are reported. + * + *

Test Steps

+ * - [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: "); @@ -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 * *

Description

* The static kernel settings are reported. * *

Test Steps

- * - [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 }; -- cgit v1.2.3