summaryrefslogtreecommitdiff
path: root/DSP/DSP_Lib_TestSuite/Common/platform
diff options
context:
space:
mode:
authorrihab kouki <rihab.kouki@st.com>2020-07-28 11:24:49 +0100
committerrihab kouki <rihab.kouki@st.com>2020-07-28 11:24:49 +0100
commit96d6da4e252b06dcfdc041e7df23e86161c33007 (patch)
treea262f59bb1db7ec7819acae435f5049cbe5e2354 /DSP/DSP_Lib_TestSuite/Common/platform
parent9f95ff5b6ba01db09552b84a0ab79607060a2666 (diff)
downloadst-cmsis-core-lowfat-master.tar.gz
st-cmsis-core-lowfat-master.tar.bz2
st-cmsis-core-lowfat-master.zip
Official ARM version: v5.6.0HEADmaster
Diffstat (limited to 'DSP/DSP_Lib_TestSuite/Common/platform')
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/armcc5_arm.sct70
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s88
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s.noSCT195
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s88
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s.noSCT218
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/armcc6_arm.sct70
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S80
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S.noSCT203
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S82
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S.noSCT235
-rw-r--r--DSP/DSP_Lib_TestSuite/Common/platform/startup_generic.S48
11 files changed, 1027 insertions, 350 deletions
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/armcc5_arm.sct b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/armcc5_arm.sct
new file mode 100644
index 0000000..987f554
--- /dev/null
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/armcc5_arm.sct
@@ -0,0 +1,70 @@
+#! armcc -E
+; command above MUST be in first line (no comment above!)
+
+/*
+;-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
+*/
+
+/*--------------------- Flash Configuration -------------------------
+; <h> Flash Configuration
+; <o0> Flash Base Address <0x0-0xFFFFFFFF:8>
+; <o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+ *----------------------------------------------------------------------------*/
+#define __ROM_BASE 0x00000000
+#define __ROM_SIZE 0x00200000
+
+/*--------------------- Embedded RAM Configuration ---------------------------
+; <h> RAM Configuration
+; <o0> RAM Base Address <0x0-0xFFFFFFFF:8>
+; <o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+ *----------------------------------------------------------------------------*/
+#define __RAM_BASE 0x20000000
+#define __RAM_SIZE 0x00200000
+
+/*--------------------- Stack / Heap Configuration ---------------------------
+; <h> Stack / Heap Configuration
+; <o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; <o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+ *----------------------------------------------------------------------------*/
+#define __STACK_SIZE 0x00000400
+#define __HEAP_SIZE 0x00000C00
+
+
+/*----------------------------------------------------------------------------
+ User Stack & Heap boundery definition
+ *----------------------------------------------------------------------------*/
+#define __STACK_TOP (__RAM_BASE + __RAM_SIZE)
+#define __HEAP_BASE (__RAM_BASE + __RAM_SIZE - __STACK_SIZE - __HEAP_SIZE)
+
+
+/*----------------------------------------------------------------------------
+ Scatter File Definitions definition
+ *----------------------------------------------------------------------------*/
+#define __RO_BASE __ROM_BASE
+#define __RO_SIZE __ROM_SIZE
+
+#define __RW_BASE (__RAM_BASE )
+#define __RW_SIZE (__RAM_SIZE - __STACK_SIZE - __HEAP_SIZE)
+
+
+
+LR_ROM __RO_BASE __RO_SIZE { ; load region size_region
+ ER_ROM __RO_BASE __RO_SIZE { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ }
+
+ RW_RAM __RW_BASE __RW_SIZE { ; RW data
+ .ANY (+RW +ZI)
+ }
+
+ ARM_LIB_HEAP __HEAP_BASE EMPTY __HEAP_SIZE { ; Reserve empty region for heap
+ }
+
+ ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
+ }
+}
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s
index e9731e3..056174c 100644
--- a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s
@@ -31,33 +31,6 @@
; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
; POSSIBILITY OF SUCH DAMAGE.
; ---------------------------------------------------------------------------*/
-;/*
-; //-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
-;*/
-
-
-; <h> Stack Configuration
-; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
-
-Stack_Size EQU 0x00000400
-
- AREA STACK, NOINIT, READWRITE, ALIGN=3
-Stack_Mem SPACE Stack_Size
-__initial_sp
-
-
-; <h> Heap Configuration
-; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
-
-Heap_Size EQU 0x00000C00
-
- AREA HEAP, NOINIT, READWRITE, ALIGN=3
-__heap_base
-Heap_Mem SPACE Heap_Size
-__heap_limit
-
PRESERVE8
THUMB
@@ -66,11 +39,12 @@ __heap_limit
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
+ IMPORT ||Image$$ARM_LIB_STACK$$ZI$$Limit||
EXPORT __Vectors
EXPORT __Vectors_End
EXPORT __Vectors_Size
-__Vectors DCD __initial_sp ; Top of Stack
+__Vectors DCD ||Image$$ARM_LIB_STACK$$ZI$$Limit|| ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
@@ -134,62 +108,4 @@ SysTick_Handler PROC
ALIGN
-; User Initial Stack & Heap
- IF :DEF:__MICROLIB
-
- EXPORT __initial_sp
- EXPORT __heap_base
- EXPORT __heap_limit
-
- ELSE
-
- IMPORT __use_two_region_memory
-
-;/*
-; __user_setup_stackheap() returns the:
-; - heap base in r0 (if the program uses the heap)
-; - stack base in sp
-; - heap limit in r2 (if the program uses the heap and uses two-region memory).
-; */
- EXPORT __user_setup_stackheap
-
-__user_setup_stackheap PROC
- LDR R0, = __initial_sp
- MOV SP, R0
- IF Heap_Size > 0
- LDR R2, = __heap_limit
- LDR R0, = __heap_base
- ELSE
- MOV R0, #0
- MOV R2, #0
- ENDIF
- BX LR
- ENDP
-
-
-;/*
-;__user_initial_stackheap() returns the:
-; - heap base in r0
-; - stack base in r1, that is, the highest address in the stack region
-; - heap limit in r2
-; - stack limit in r3, that is, the lowest address in the stack region.
-; */
-;
-;/* DEPRICATED
-; EXPORT __user_initial_stackheap
-;
-;__user_initial_stackheap PROC
-; LDR R0, = Heap_Mem
-; LDR R1, =(Stack_Mem + Stack_Size)
-; LDR R2, = (Heap_Mem + Heap_Size)
-; LDR R3, = Stack_Mem
-; BX LR
-; ENDP
-; */
-
- ALIGN
-
- ENDIF
-
-
END
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s.noSCT b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s.noSCT
new file mode 100644
index 0000000..e9731e3
--- /dev/null
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv6-m.s.noSCT
@@ -0,0 +1,195 @@
+;/* File: startup_armv6-m.s
+; * Purpose: startup file for armv7-m architecture devices.
+; * Should be used with ARMCC
+; * Version: V2.00
+; * Date: 16 November 2015
+; *
+; */
+;/* Copyright (c) 2011 - 2014 ARM LIMITED
+;
+; All rights reserved.
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are met:
+; - Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+; - Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the distribution.
+; - Neither the name of ARM nor the names of its contributors may be used
+; to endorse or promote products derived from this software without
+; specific prior written permission.
+; *
+; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
+; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+; POSSIBILITY OF SUCH DAMAGE.
+; ---------------------------------------------------------------------------*/
+;/*
+; //-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
+;*/
+
+
+; <h> Stack Configuration
+; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+
+Stack_Size EQU 0x00000400
+
+ AREA STACK, NOINIT, READWRITE, ALIGN=3
+Stack_Mem SPACE Stack_Size
+__initial_sp
+
+
+; <h> Heap Configuration
+; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+
+Heap_Size EQU 0x00000C00
+
+ AREA HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+Heap_Mem SPACE Heap_Size
+__heap_limit
+
+
+ PRESERVE8
+ THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+
+ AREA RESET, DATA, READONLY
+ EXPORT __Vectors
+ EXPORT __Vectors_End
+ EXPORT __Vectors_Size
+
+__Vectors DCD __initial_sp ; Top of Stack
+ DCD Reset_Handler ; Reset Handler
+ DCD NMI_Handler ; NMI Handler
+ DCD HardFault_Handler ; Hard Fault Handler
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD SVC_Handler ; SVCall Handler
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD PendSV_Handler ; PendSV Handler
+ DCD SysTick_Handler ; SysTick Handler
+__Vectors_End
+
+__Vectors_Size EQU __Vectors_End - __Vectors
+
+ AREA |.text|, CODE, READONLY
+
+
+; Reset Handler
+
+Reset_Handler PROC
+ EXPORT Reset_Handler [WEAK]
+ IMPORT SystemInit
+ IMPORT __main
+ LDR R0, =SystemInit
+ BLX R0
+ LDR R0, =__main
+ BX R0
+ ENDP
+
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler PROC
+ EXPORT NMI_Handler [WEAK]
+ BKPT #0
+ B .
+ ENDP
+HardFault_Handler\
+ PROC
+ EXPORT HardFault_Handler [WEAK]
+ BKPT #0
+ B .
+ ENDP
+SVC_Handler PROC
+ EXPORT SVC_Handler [WEAK]
+ B .
+ ENDP
+PendSV_Handler PROC
+ EXPORT PendSV_Handler [WEAK]
+ B .
+ ENDP
+SysTick_Handler PROC
+ EXPORT SysTick_Handler [WEAK]
+ B .
+ ENDP
+
+ ALIGN
+
+; User Initial Stack & Heap
+ IF :DEF:__MICROLIB
+
+ EXPORT __initial_sp
+ EXPORT __heap_base
+ EXPORT __heap_limit
+
+ ELSE
+
+ IMPORT __use_two_region_memory
+
+;/*
+; __user_setup_stackheap() returns the:
+; - heap base in r0 (if the program uses the heap)
+; - stack base in sp
+; - heap limit in r2 (if the program uses the heap and uses two-region memory).
+; */
+ EXPORT __user_setup_stackheap
+
+__user_setup_stackheap PROC
+ LDR R0, = __initial_sp
+ MOV SP, R0
+ IF Heap_Size > 0
+ LDR R2, = __heap_limit
+ LDR R0, = __heap_base
+ ELSE
+ MOV R0, #0
+ MOV R2, #0
+ ENDIF
+ BX LR
+ ENDP
+
+
+;/*
+;__user_initial_stackheap() returns the:
+; - heap base in r0
+; - stack base in r1, that is, the highest address in the stack region
+; - heap limit in r2
+; - stack limit in r3, that is, the lowest address in the stack region.
+; */
+;
+;/* DEPRICATED
+; EXPORT __user_initial_stackheap
+;
+;__user_initial_stackheap PROC
+; LDR R0, = Heap_Mem
+; LDR R1, =(Stack_Mem + Stack_Size)
+; LDR R2, = (Heap_Mem + Heap_Size)
+; LDR R3, = Stack_Mem
+; BX LR
+; ENDP
+; */
+
+ ALIGN
+
+ ENDIF
+
+
+ END
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s
index 2b00ab9..b40c565 100644
--- a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s
@@ -31,33 +31,6 @@
; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
; POSSIBILITY OF SUCH DAMAGE.
; ---------------------------------------------------------------------------*/
-;/*
-; //-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
-;*/
-
-
-; <h> Stack Configuration
-; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
-
-Stack_Size EQU 0x00000400
-
- AREA STACK, NOINIT, READWRITE, ALIGN=3
-Stack_Mem SPACE Stack_Size
-__initial_sp
-
-
-; <h> Heap Configuration
-; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
-; </h>
-
-Heap_Size EQU 0x00000C00
-
- AREA HEAP, NOINIT, READWRITE, ALIGN=3
-__heap_base
-Heap_Mem SPACE Heap_Size
-__heap_limit
-
PRESERVE8
THUMB
@@ -66,11 +39,12 @@ __heap_limit
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
+ IMPORT ||Image$$ARM_LIB_STACK$$ZI$$Limit||
EXPORT __Vectors
EXPORT __Vectors_End
EXPORT __Vectors_Size
-__Vectors DCD __initial_sp ; Top of Stack
+__Vectors DCD ||Image$$ARM_LIB_STACK$$ZI$$Limit|| ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
@@ -157,62 +131,4 @@ SysTick_Handler PROC
ALIGN
-; User Initial Stack & Heap
- IF :DEF:__MICROLIB
-
- EXPORT __initial_sp
- EXPORT __heap_base
- EXPORT __heap_limit
-
- ELSE
-
- IMPORT __use_two_region_memory
-
-;/*
-; __user_setup_stackheap() returns the:
-; - heap base in r0 (if the program uses the heap)
-; - stack base in sp
-; - heap limit in r2 (if the program uses the heap and uses two-region memory).
-; */
- EXPORT __user_setup_stackheap
-
-__user_setup_stackheap PROC
- LDR R0, = __initial_sp
- MOV SP, R0
- IF Heap_Size > 0
- LDR R2, = __heap_limit
- LDR R0, = __heap_base
- ELSE
- MOV R0, #0
- MOV R2, #0
- ENDIF
- BX LR
- ENDP
-
-
-;/*
-;__user_initial_stackheap() returns the:
-; - heap base in r0
-; - stack base in r1, that is, the highest address in the stack region
-; - heap limit in r2
-; - stack limit in r3, that is, the lowest address in the stack region.
-; */
-;
-;/* DEPRICATED
-; EXPORT __user_initial_stackheap
-;
-;__user_initial_stackheap PROC
-; LDR R0, = Heap_Mem
-; LDR R1, =(Stack_Mem + Stack_Size)
-; LDR R2, = (Heap_Mem + Heap_Size)
-; LDR R3, = Stack_Mem
-; BX LR
-; ENDP
-; */
-
- ALIGN
-
- ENDIF
-
-
END
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s.noSCT b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s.noSCT
new file mode 100644
index 0000000..2b00ab9
--- /dev/null
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCC/startup_armv7-m.s.noSCT
@@ -0,0 +1,218 @@
+;/* File: startup_armv7-m.s
+; * Purpose: startup file for armv7-m architecture devices.
+; * Should be used with ARMCC
+; * Version: V2.00
+; * Date: 16 November 2015
+; *
+; */
+;/* Copyright (c) 2011 - 2014 ARM LIMITED
+;
+; All rights reserved.
+; Redistribution and use in source and binary forms, with or without
+; modification, are permitted provided that the following conditions are met:
+; - Redistributions of source code must retain the above copyright
+; notice, this list of conditions and the following disclaimer.
+; - Redistributions in binary form must reproduce the above copyright
+; notice, this list of conditions and the following disclaimer in the
+; documentation and/or other materials provided with the distribution.
+; - Neither the name of ARM nor the names of its contributors may be used
+; to endorse or promote products derived from this software without
+; specific prior written permission.
+; *
+; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+; ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
+; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+; POSSIBILITY OF SUCH DAMAGE.
+; ---------------------------------------------------------------------------*/
+;/*
+; //-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
+;*/
+
+
+; <h> Stack Configuration
+; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+
+Stack_Size EQU 0x00000400
+
+ AREA STACK, NOINIT, READWRITE, ALIGN=3
+Stack_Mem SPACE Stack_Size
+__initial_sp
+
+
+; <h> Heap Configuration
+; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+
+Heap_Size EQU 0x00000C00
+
+ AREA HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+Heap_Mem SPACE Heap_Size
+__heap_limit
+
+
+ PRESERVE8
+ THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+
+ AREA RESET, DATA, READONLY
+ EXPORT __Vectors
+ EXPORT __Vectors_End
+ EXPORT __Vectors_Size
+
+__Vectors DCD __initial_sp ; Top of Stack
+ DCD Reset_Handler ; Reset Handler
+ DCD NMI_Handler ; NMI Handler
+ DCD HardFault_Handler ; Hard Fault Handler
+ DCD MemManage_Handler ; MPU Fault Handler
+ DCD BusFault_Handler ; Bus Fault Handler
+ DCD UsageFault_Handler ; Usage Fault Handler
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD SVC_Handler ; SVCall Handler
+ DCD DebugMon_Handler ; Debug Monitor Handler
+ DCD 0 ; Reserved
+ DCD PendSV_Handler ; PendSV Handler
+ DCD SysTick_Handler ; SysTick Handler
+__Vectors_End
+
+__Vectors_Size EQU __Vectors_End - __Vectors
+
+ AREA |.text|, CODE, READONLY
+
+
+; Reset Handler
+
+Reset_Handler PROC
+ EXPORT Reset_Handler [WEAK]
+ IMPORT SystemInit
+ IMPORT __main
+ LDR R0, =SystemInit
+ BLX R0
+ LDR R0, =__main
+ BX R0
+ ENDP
+
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler PROC
+ EXPORT NMI_Handler [WEAK]
+ BKPT #0
+ B .
+ ENDP
+HardFault_Handler\
+ PROC
+ EXPORT HardFault_Handler [WEAK]
+ BKPT #0
+ B .
+ ENDP
+MemManage_Handler\
+ PROC
+ EXPORT MemManage_Handler [WEAK]
+ BKPT #0
+ B .
+ ENDP
+BusFault_Handler\
+ PROC
+ EXPORT BusFault_Handler [WEAK]
+ BKPT #0
+ B .
+ ENDP
+UsageFault_Handler\
+ PROC
+ EXPORT UsageFault_Handler [WEAK]
+ BKPT #0
+ B .
+ ENDP
+SVC_Handler PROC
+ EXPORT SVC_Handler [WEAK]
+ B .
+ ENDP
+DebugMon_Handler\
+ PROC
+ EXPORT DebugMon_Handler [WEAK]
+ B .
+ ENDP
+PendSV_Handler PROC
+ EXPORT PendSV_Handler [WEAK]
+ B .
+ ENDP
+SysTick_Handler PROC
+ EXPORT SysTick_Handler [WEAK]
+ B .
+ ENDP
+
+ ALIGN
+
+; User Initial Stack & Heap
+ IF :DEF:__MICROLIB
+
+ EXPORT __initial_sp
+ EXPORT __heap_base
+ EXPORT __heap_limit
+
+ ELSE
+
+ IMPORT __use_two_region_memory
+
+;/*
+; __user_setup_stackheap() returns the:
+; - heap base in r0 (if the program uses the heap)
+; - stack base in sp
+; - heap limit in r2 (if the program uses the heap and uses two-region memory).
+; */
+ EXPORT __user_setup_stackheap
+
+__user_setup_stackheap PROC
+ LDR R0, = __initial_sp
+ MOV SP, R0
+ IF Heap_Size > 0
+ LDR R2, = __heap_limit
+ LDR R0, = __heap_base
+ ELSE
+ MOV R0, #0
+ MOV R2, #0
+ ENDIF
+ BX LR
+ ENDP
+
+
+;/*
+;__user_initial_stackheap() returns the:
+; - heap base in r0
+; - stack base in r1, that is, the highest address in the stack region
+; - heap limit in r2
+; - stack limit in r3, that is, the lowest address in the stack region.
+; */
+;
+;/* DEPRICATED
+; EXPORT __user_initial_stackheap
+;
+;__user_initial_stackheap PROC
+; LDR R0, = Heap_Mem
+; LDR R1, =(Stack_Mem + Stack_Size)
+; LDR R2, = (Heap_Mem + Heap_Size)
+; LDR R3, = Stack_Mem
+; BX LR
+; ENDP
+; */
+
+ ALIGN
+
+ ENDIF
+
+
+ END
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/armcc6_arm.sct b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/armcc6_arm.sct
new file mode 100644
index 0000000..8de3ce7
--- /dev/null
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/armcc6_arm.sct
@@ -0,0 +1,70 @@
+#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m0 -xc
+; command above MUST be in first line (no comment above!)
+
+/*
+;-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
+*/
+
+/*--------------------- Flash Configuration -------------------------
+; <h> Flash Configuration
+; <o0> Flash Base Address <0x0-0xFFFFFFFF:8>
+; <o1> Flash Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+ *----------------------------------------------------------------------------*/
+#define __ROM_BASE 0x00000000
+#define __ROM_SIZE 0x00200000
+
+/*--------------------- Embedded RAM Configuration ---------------------------
+; <h> RAM Configuration
+; <o0> RAM Base Address <0x0-0xFFFFFFFF:8>
+; <o1> RAM Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+ *----------------------------------------------------------------------------*/
+#define __RAM_BASE 0x20000000
+#define __RAM_SIZE 0x00200000
+
+/*--------------------- Stack / Heap Configuration ---------------------------
+; <h> Stack / Heap Configuration
+; <o0> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; <o1> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+ *----------------------------------------------------------------------------*/
+#define __STACK_SIZE 0x00000400
+#define __HEAP_SIZE 0x00000C00
+
+
+/*----------------------------------------------------------------------------
+ User Stack & Heap boundery definition
+ *----------------------------------------------------------------------------*/
+#define __STACK_TOP (__RAM_BASE + __RAM_SIZE)
+#define __HEAP_BASE (__RAM_BASE + __RAM_SIZE - __STACK_SIZE - __HEAP_SIZE)
+
+
+/*----------------------------------------------------------------------------
+ Scatter File Definitions definition
+ *----------------------------------------------------------------------------*/
+#define __RO_BASE __ROM_BASE
+#define __RO_SIZE __ROM_SIZE
+
+#define __RW_BASE (__RAM_BASE )
+#define __RW_SIZE (__RAM_SIZE - __STACK_SIZE - __HEAP_SIZE)
+
+
+
+LR_ROM __RO_BASE __RO_SIZE { ; load region size_region
+ ER_ROM __RO_BASE __RO_SIZE { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ }
+
+ RW_RAM __RW_BASE __RW_SIZE { ; RW data
+ .ANY (+RW +ZI)
+ }
+
+ ARM_LIB_HEAP __HEAP_BASE EMPTY __HEAP_SIZE { ; Reserve empty region for heap
+ }
+
+ ARM_LIB_STACK __STACK_TOP EMPTY -__STACK_SIZE { ; Reserve empty region for stack
+ }
+}
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S
index 3d18268..d3499af 100644
--- a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S
@@ -42,39 +42,7 @@
/* .eabi_attribute Tag_ABI_align8_preserved,1 www.support.code-red-tech.com/CodeRedWiki/Preserve8 */
.eabi_attribute 25, 1 /* Tag_ABI_align_preserved */
-
-/*
- ;<h> Stack Configuration
- ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
- ;</h>
-*/
- .equ Stack_Size, 0x00000400
-
- .section STACK, "w"
- .align 3
- .globl __StackTop
- .globl __StackLimit
-__StackLimit:
- .space Stack_Size
-__StackTop: /* formerly known as __initial_sp */
-
-
-/*
- ;<h> Heap Configuration
- ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
- ;</h>
-*/
- .equ Heap_Size, 0x00000C00
-
- .section HEAP, "w"
- .align 3
- .globl __HeapBase
- .globl __HeapLimit
-__HeapBase:
- .if Heap_Size
- .space Heap_Size
- .endif
-__HeapLimit:
+ .global Image$$ARM_LIB_STACK$$ZI$$Limit
.section RESET, "x"
@@ -83,7 +51,7 @@ __HeapLimit:
.globl __Vectors_End
.globl __Vectors_Size
__Vectors:
- .long __StackTop /* Top of Stack */
+ .long Image$$ARM_LIB_STACK$$ZI$$Limit /* Top of Stack */
.long Reset_Handler /* Reset Handler */
.long NMI_Handler /* NMI Handler */
.long HardFault_Handler /* Hard Fault Handler */
@@ -156,48 +124,4 @@ SysTick_Handler:
bkpt #0
b .
-
- .global __use_two_region_memory
-
-/*
- __user_setup_stackheap() returns the:
- - heap base in r0 (if the program uses the heap)
- - stack base in sp
- - heap limit in r2 (if the program uses the heap and uses two-region memory).
- */
- .globl __user_setup_stackheap
- .type __user_setup_stackheap, %function
- .thumb_func
-__user_setup_stackheap:
- ldr r0, =__StackTop
- mov sp, r0
- .if Heap_Size
- ldr r0, =__HeapBase
- ldr r2, =__HeapLimit
- .else
- mov r0, #0
- mov r2, #0
- .endif
- bx lr
-
-
-/*
-__user_initial_stackheap() returns the:
- - heap base in r0
- - stack base in r1, that is, the highest address in the stack region
- - heap limit in r2
- - stack limit in r3, that is, the lowest address in the stack region.
- */
-/* DEPRICATED
- .globl __user_initial_stackheap
- .type __user_initial_stackheap, %function
- .thumb_func
-__user_initial_stackheap:
- ldr r0, = __HeapBase
- ldr r1, = __StackTop
- ldr r2, = __HeapLimit
- ldr r3, = __StackLimit
- bx lr
-*/
-
.end
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S.noSCT b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S.noSCT
new file mode 100644
index 0000000..3d18268
--- /dev/null
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv6-m.S.noSCT
@@ -0,0 +1,203 @@
+/* File: startup_armv6-m.S
+ * Purpose: startup file for armv6-m architecture devices.
+ * Should be used with ARMCLANG
+ * Version: V2.00
+ * Date: 16 November 2015
+ *
+ */
+/* Copyright (c) 2011 - 2015 ARM LIMITED
+
+ All rights reserved.
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of ARM nor the names of its contributors may be used
+ to endorse or promote products derived from this software without
+ specific prior written permission.
+ *
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ ---------------------------------------------------------------------------*/
+/*
+ ;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
+*/
+
+
+ .syntax unified
+ .arch armv6-m
+
+/* .eabi_attribute Tag_ABI_align8_preserved,1 www.support.code-red-tech.com/CodeRedWiki/Preserve8 */
+.eabi_attribute 25, 1 /* Tag_ABI_align_preserved */
+
+
+/*
+ ;<h> Stack Configuration
+ ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+ ;</h>
+*/
+ .equ Stack_Size, 0x00000400
+
+ .section STACK, "w"
+ .align 3
+ .globl __StackTop
+ .globl __StackLimit
+__StackLimit:
+ .space Stack_Size
+__StackTop: /* formerly known as __initial_sp */
+
+
+/*
+ ;<h> Heap Configuration
+ ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+ ;</h>
+*/
+ .equ Heap_Size, 0x00000C00
+
+ .section HEAP, "w"
+ .align 3
+ .globl __HeapBase
+ .globl __HeapLimit
+__HeapBase:
+ .if Heap_Size
+ .space Heap_Size
+ .endif
+__HeapLimit:
+
+
+ .section RESET, "x"
+ .align 2
+ .globl __Vectors
+ .globl __Vectors_End
+ .globl __Vectors_Size
+__Vectors:
+ .long __StackTop /* Top of Stack */
+ .long Reset_Handler /* Reset Handler */
+ .long NMI_Handler /* NMI Handler */
+ .long HardFault_Handler /* Hard Fault Handler */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long SVC_Handler /* SVCall Handler */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long PendSV_Handler /* PendSV Handler */
+ .long SysTick_Handler /* SysTick Handler */
+__Vectors_End:
+
+ .equ __Vectors_Size, __Vectors_End - __Vectors
+
+
+ .text
+ .thumb
+ .align 2
+
+ .globl Reset_Handler
+ .weak Reset_Handler
+ .type Reset_Handler, %function
+ .thumb_func
+Reset_Handler:
+ bl SystemInit
+ bl __main
+
+ .globl NMI_Handler
+ .weak NMI_Handler
+ .type NMI_Handler, %function
+ .thumb_func
+NMI_Handler:
+ bkpt #0
+ b .
+
+ .globl HardFault_Handler
+ .weak HardFault_Handler
+ .type HardFault_Handler, %function
+ .thumb_func
+HardFault_Handler:
+ bkpt #0
+ b .
+
+ .globl SVC_Handler
+ .weak SVC_Handler
+ .type SVC_Handler, %function
+ .thumb_func
+SVC_Handler:
+ bkpt #0
+ b .
+
+ .globl PendSV_Handler
+ .weak PendSV_Handler
+ .type PendSV_Handler, %function
+ .thumb_func
+PendSV_Handler:
+ bkpt #0
+ b .
+
+ .globl SysTick_Handler
+ .weak SysTick_Handler
+ .type SysTick_Handler, %function
+ .thumb_func
+SysTick_Handler:
+ bkpt #0
+ b .
+
+
+ .global __use_two_region_memory
+
+/*
+ __user_setup_stackheap() returns the:
+ - heap base in r0 (if the program uses the heap)
+ - stack base in sp
+ - heap limit in r2 (if the program uses the heap and uses two-region memory).
+ */
+ .globl __user_setup_stackheap
+ .type __user_setup_stackheap, %function
+ .thumb_func
+__user_setup_stackheap:
+ ldr r0, =__StackTop
+ mov sp, r0
+ .if Heap_Size
+ ldr r0, =__HeapBase
+ ldr r2, =__HeapLimit
+ .else
+ mov r0, #0
+ mov r2, #0
+ .endif
+ bx lr
+
+
+/*
+__user_initial_stackheap() returns the:
+ - heap base in r0
+ - stack base in r1, that is, the highest address in the stack region
+ - heap limit in r2
+ - stack limit in r3, that is, the lowest address in the stack region.
+ */
+/* DEPRICATED
+ .globl __user_initial_stackheap
+ .type __user_initial_stackheap, %function
+ .thumb_func
+__user_initial_stackheap:
+ ldr r0, = __HeapBase
+ ldr r1, = __StackTop
+ ldr r2, = __HeapLimit
+ ldr r3, = __StackLimit
+ bx lr
+*/
+
+ .end
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S
index 4bdb549..53a307e 100644
--- a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S
@@ -37,44 +37,12 @@
.syntax unified
- .arch armv6-m
+ .arch armv7-m
/* .eabi_attribute Tag_ABI_align8_preserved,1 www.support.code-red-tech.com/CodeRedWiki/Preserve8 */
.eabi_attribute 25, 1 /* Tag_ABI_align_preserved */
-
-/*
- ;<h> Stack Configuration
- ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
- ;</h>
-*/
- .equ Stack_Size, 0x00000400
-
- .section STACK, "w"
- .align 3
- .globl __StackTop
- .globl __StackLimit
-__StackLimit:
- .space Stack_Size
-__StackTop: /* formerly known as __initial_sp */
-
-
-/*
- ;<h> Heap Configuration
- ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
- ;</h>
-*/
- .equ Heap_Size, 0x00000C00
-
- .section HEAP, "w"
- .align 3
- .globl __HeapBase
- .globl __HeapLimit
-__HeapBase:
- .if Heap_Size
- .space Heap_Size
- .endif
-__HeapLimit:
+ .global Image$$ARM_LIB_STACK$$ZI$$Limit
.section RESET, "x"
@@ -83,7 +51,7 @@ __HeapLimit:
.globl __Vectors_End
.globl __Vectors_Size
__Vectors:
- .long __StackTop /* Top of Stack */
+ .long Image$$ARM_LIB_STACK$$ZI$$Limit /* Top of Stack */
.long Reset_Handler /* Reset Handler */
.long NMI_Handler /* NMI Handler */
.long HardFault_Handler /* Hard Fault Handler */
@@ -188,48 +156,4 @@ SysTick_Handler:
bkpt #0
b .
-
- .global __use_two_region_memory
-
-/*
- __user_setup_stackheap() returns the:
- - heap base in r0 (if the program uses the heap)
- - stack base in sp
- - heap limit in r2 (if the program uses the heap and uses two-region memory).
- */
- .globl __user_setup_stackheap
- .type __user_setup_stackheap, %function
- .thumb_func
-__user_setup_stackheap:
- ldr r0, =__StackTop
- mov sp, r0
- .if Heap_Size
- ldr r0, =__HeapBase
- ldr r2, =__HeapLimit
- .else
- mov r0, #0
- mov r2, #0
- .endif
- bx lr
-
-
-/*
-__user_initial_stackheap() returns the:
- - heap base in r0
- - stack base in r1, that is, the highest address in the stack region
- - heap limit in r2
- - stack limit in r3, that is, the lowest address in the stack region.
- */
-/* DEPRICATED
- .globl __user_initial_stackheap
- .type __user_initial_stackheap, %function
- .thumb_func
-__user_initial_stackheap:
- ldr r0, = __HeapBase
- ldr r1, = __StackTop
- ldr r2, = __HeapLimit
- ldr r3, = __StackLimit
- bx lr
-*/
-
.end
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S.noSCT b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S.noSCT
new file mode 100644
index 0000000..4bdb549
--- /dev/null
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/ARMCLANG/startup_armv7-m.S.noSCT
@@ -0,0 +1,235 @@
+/* File: startup_armv7-m.S
+ * Purpose: startup file for armv7-m architecture devices.
+ * Should be used with ARMCLANG
+ * Version: V2.00
+ * Date: 16 November 2015
+ *
+ */
+/* Copyright (c) 2011 - 2015 ARM LIMITED
+
+ All rights reserved.
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ - Neither the name of ARM nor the names of its contributors may be used
+ to endorse or promote products derived from this software without
+ specific prior written permission.
+ *
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ ---------------------------------------------------------------------------*/
+/*
+ ;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
+*/
+
+
+ .syntax unified
+ .arch armv6-m
+
+/* .eabi_attribute Tag_ABI_align8_preserved,1 www.support.code-red-tech.com/CodeRedWiki/Preserve8 */
+.eabi_attribute 25, 1 /* Tag_ABI_align_preserved */
+
+
+/*
+ ;<h> Stack Configuration
+ ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+ ;</h>
+*/
+ .equ Stack_Size, 0x00000400
+
+ .section STACK, "w"
+ .align 3
+ .globl __StackTop
+ .globl __StackLimit
+__StackLimit:
+ .space Stack_Size
+__StackTop: /* formerly known as __initial_sp */
+
+
+/*
+ ;<h> Heap Configuration
+ ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+ ;</h>
+*/
+ .equ Heap_Size, 0x00000C00
+
+ .section HEAP, "w"
+ .align 3
+ .globl __HeapBase
+ .globl __HeapLimit
+__HeapBase:
+ .if Heap_Size
+ .space Heap_Size
+ .endif
+__HeapLimit:
+
+
+ .section RESET, "x"
+ .align 2
+ .globl __Vectors
+ .globl __Vectors_End
+ .globl __Vectors_Size
+__Vectors:
+ .long __StackTop /* Top of Stack */
+ .long Reset_Handler /* Reset Handler */
+ .long NMI_Handler /* NMI Handler */
+ .long HardFault_Handler /* Hard Fault Handler */
+ .long MemManage_Handler /* MPU Fault Handler */
+ .long BusFault_Handler /* Bus Fault Handler */
+ .long UsageFault_Handler /* Usage Fault Handler */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long 0 /* Reserved */
+ .long SVC_Handler /* SVCall Handler */
+ .long DebugMon_Handler /* Debug Monitor Handler */
+ .long 0 /* Reserved */
+ .long PendSV_Handler /* PendSV Handler */
+ .long SysTick_Handler /* SysTick Handler */
+__Vectors_End:
+
+ .equ __Vectors_Size, __Vectors_End - __Vectors
+
+
+ .text
+ .thumb
+ .align 2
+
+ .globl Reset_Handler
+ .weak Reset_Handler
+ .type Reset_Handler, %function
+ .thumb_func
+Reset_Handler:
+ bl SystemInit
+ bl __main
+
+ .globl NMI_Handler
+ .weak NMI_Handler
+ .type NMI_Handler, %function
+ .thumb_func
+NMI_Handler:
+ bkpt #0
+ b .
+
+ .globl HardFault_Handler
+ .weak HardFault_Handler
+ .type HardFault_Handler, %function
+ .thumb_func
+HardFault_Handler:
+ bkpt #0
+ b .
+
+ .globl MemManage_Handler
+ .weak MemManage_Handler
+ .type MemManage_Handler, %function
+ .thumb_func
+MemManage_Handler:
+ bkpt #0
+ b .
+
+ .globl BusFault_Handler
+ .weak BusFault_Handler
+ .type BusFault_Handler, %function
+ .thumb_func
+BusFault_Handler:
+ bkpt #0
+ b .
+
+ .globl UsageFault_Handler
+ .weak UsageFault_Handler
+ .type UsageFault_Handler, %function
+ .thumb_func
+UsageFault_Handler:
+ bkpt #0
+ b .
+
+ .globl SVC_Handler
+ .weak SVC_Handler
+ .type SVC_Handler, %function
+ .thumb_func
+SVC_Handler:
+ bkpt #0
+ b .
+
+ .globl DebugMon_Handler
+ .weak DebugMon_Handler
+ .type DebugMon_Handler, %function
+ .thumb_func
+DebugMon_Handler:
+ bkpt #0
+ b .
+
+ .globl PendSV_Handler
+ .weak PendSV_Handler
+ .type PendSV_Handler, %function
+ .thumb_func
+PendSV_Handler:
+ bkpt #0
+ b .
+
+ .globl SysTick_Handler
+ .weak SysTick_Handler
+ .type SysTick_Handler, %function
+ .thumb_func
+SysTick_Handler:
+ bkpt #0
+ b .
+
+
+ .global __use_two_region_memory
+
+/*
+ __user_setup_stackheap() returns the:
+ - heap base in r0 (if the program uses the heap)
+ - stack base in sp
+ - heap limit in r2 (if the program uses the heap and uses two-region memory).
+ */
+ .globl __user_setup_stackheap
+ .type __user_setup_stackheap, %function
+ .thumb_func
+__user_setup_stackheap:
+ ldr r0, =__StackTop
+ mov sp, r0
+ .if Heap_Size
+ ldr r0, =__HeapBase
+ ldr r2, =__HeapLimit
+ .else
+ mov r0, #0
+ mov r2, #0
+ .endif
+ bx lr
+
+
+/*
+__user_initial_stackheap() returns the:
+ - heap base in r0
+ - stack base in r1, that is, the highest address in the stack region
+ - heap limit in r2
+ - stack limit in r3, that is, the lowest address in the stack region.
+ */
+/* DEPRICATED
+ .globl __user_initial_stackheap
+ .type __user_initial_stackheap, %function
+ .thumb_func
+__user_initial_stackheap:
+ ldr r0, = __HeapBase
+ ldr r1, = __StackTop
+ ldr r2, = __HeapLimit
+ ldr r3, = __StackLimit
+ bx lr
+*/
+
+ .end
diff --git a/DSP/DSP_Lib_TestSuite/Common/platform/startup_generic.S b/DSP/DSP_Lib_TestSuite/Common/platform/startup_generic.S
index 6d68355..91a9ea3 100644
--- a/DSP/DSP_Lib_TestSuite/Common/platform/startup_generic.S
+++ b/DSP/DSP_Lib_TestSuite/Common/platform/startup_generic.S
@@ -1,56 +1,62 @@
#if defined (__CC_ARM)
- #if (defined (ARM_MATH_CM0))
+ #if (defined (ARMCM0))
#include "ARMCC\startup_armv6-m.s"
- #elif (defined (ARM_MATH_CM0P))
+ #elif (defined (ARMCM0P) || defined (ARMCM0P_MPU))
#include "ARMCC\startup_armv6-m.s"
- #elif (defined (ARM_MATH_CM3))
+ #elif (defined (ARMCM3))
#include "ARMCC\startup_armv7-m.s"
- #elif (defined (ARM_MATH_CM4))
+ #elif (defined (ARMCM4) || defined (ARMCM4_FP))
#include "ARMCC\startup_armv7-m.s"
- #elif (defined (ARM_MATH_CM7))
+ #elif (defined (ARMCM7) || defined (ARMCM7_SP) || defined (ARMCM7_DP))
#include "ARMCC\startup_armv7-m.s"
- #elif (defined (ARM_MATH_ARMV8MBL))
+ #elif (defined (ARMv8MBL))
#include "ARMCC\startup_armv6-m.s"
- #elif (defined (ARM_MATH_ARMV8MML))
+ #elif (defined (ARMv8MML) || defined (ARMv8MML_DSP) || \
+ defined (ARMv8MML_SP) || defined (ARMv8MML_DSP_SP) || \
+ defined (ARMv8MML_DP) || defined (ARMv8MML_DSP_DP) )
#include "ARMCC\startup_armv7-m.s"
#else
#error "No appropriate startup file found!"
#endif
#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
- #if (defined (ARM_MATH_CM0))
+ #if (defined (ARMCM0))
#include "ARMCLANG\startup_armv6-m.S"
- #elif (defined (ARM_MATH_CM0P))
+ #elif (defined (ARMCM0P) || defined (ARMCM0P_MPU))
#include "ARMCLANG\startup_armv6-m.S"
- #elif (defined (ARM_MATH_CM3))
+ #elif (defined (ARMCM3))
#include "ARMCLANG\startup_armv7-m.S"
- #elif (defined (ARM_MATH_CM4))
+ #elif (defined (ARMCM4) || defined (ARMCM4_FP))
#include "ARMCLANG\startup_armv7-m.S"
- #elif (defined (ARM_MATH_CM7))
+ #elif (defined (ARMCM7) || defined (ARMCM7_SP) || defined (ARMCM7_DP))
#include "ARMCLANG\startup_armv7-m.S"
- #elif (defined (ARM_MATH_ARMV8MBL))
+ #elif (defined (ARMv8MBL))
#include "ARMCLANG\startup_armv6-m.S"
- #elif (defined (ARM_MATH_ARMV8MML))
+ #elif (defined (ARMv8MML) || defined (ARMv8MML_DSP) || \
+ defined (ARMv8MML_SP) || defined (ARMv8MML_DSP_SP) || \
+ defined (ARMv8MML_DP) || defined (ARMv8MML_DSP_DP) )
#include "ARMCLANG\startup_armv7-m.S"
#else
#error "No appropriate startup file found!"
#endif
#elif defined (__GNUC__)
- #if (defined (ARM_MATH_CM0))
+ #if (defined (ARMCM0))
#include "GCC\startup_armv6-m.S"
- #elif (defined (ARM_MATH_CM0P))
+ #elif (defined (ARMCM0P) || defined (ARMCM0P_MPU))
#include "GCC\startup_armv6-m.S"
- #elif (defined (ARM_MATH_CM3))
+ #elif (defined (ARMCM3))
#include "GCC\startup_armv7-m.S"
- #elif (defined (ARM_MATH_CM4))
+ #elif (defined (ARMCM4) || defined (ARMCM4_FP))
#include "GCC\startup_armv7-m.S"
- #elif (defined (ARM_MATH_CM7))
+ #elif (defined (ARMCM7) || defined (ARMCM7_SP) || defined (ARMCM7_DP))
#include "GCC\startup_armv7-m.S"
- #elif (defined (ARM_MATH_ARMV8MBL))
+ #elif (defined (ARMv8MBL))
#include "GCC\startup_armv6-m.S"
- #elif (defined (ARM_MATH_ARMV8MML))
+ #elif (defined (ARMv8MML) || defined (ARMv8MML_DSP) || \
+ defined (ARMv8MML_SP) || defined (ARMv8MML_DSP_SP) || \
+ defined (ARMv8MML_DP) || defined (ARMv8MML_DSP_DP) )
#include "GCC\startup_armv7-m.S"
#else
#error "No appropriate startup file found!"