diff options
Diffstat (limited to 'platform/ext/target/mps2/fvp_sse300/device/source/iar/fvp_sse300_mps2_ns.icf')
-rw-r--r-- | platform/ext/target/mps2/fvp_sse300/device/source/iar/fvp_sse300_mps2_ns.icf | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/platform/ext/target/mps2/fvp_sse300/device/source/iar/fvp_sse300_mps2_ns.icf b/platform/ext/target/mps2/fvp_sse300/device/source/iar/fvp_sse300_mps2_ns.icf new file mode 100644 index 0000000000..1eb6137e39 --- /dev/null +++ b/platform/ext/target/mps2/fvp_sse300/device/source/iar/fvp_sse300_mps2_ns.icf @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2020 Arm Limited + * + * 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. + * + * + * This file is derivative of ../armclang/mps2_an521_ns.sct + */ + +/* Linker script to configure memory regions. */ +/* This file will be run trough the pre-processor. */ + +#include "region_defs.h" + +define block ER_CODE with fixed order, alignment = 8 { + section .intvec, + readonly}; +define block LR_CODE with fixed order, maximum size = NS_CODE_SIZE {block ER_CODE}; +place at address NS_CODE_START {block LR_CODE}; + +define block ER_DATA with alignment = 8 {readwrite}; +define block ARM_LIB_STACK_MSP with alignment = 8, size = NS_MSP_STACK_SIZE { }; +define block ARM_LIB_STACK with alignment = 8, size = NS_PSP_STACK_SIZE { }; +define block HEAP with alignment = 8, size = NS_HEAP_SIZE { }; +define block ARM_LIB_HEAP with alignment = 8, size = NS_HEAP_SIZE { }; +define overlay HEAP_OVL {block HEAP}; +define overlay HEAP_OVL {block ARM_LIB_HEAP}; +keep {block ARM_LIB_STACK_MSP, block ARM_LIB_STACK, + block HEAP, block ARM_LIB_HEAP}; + +do not initialize { section .noinit }; +initialize by copy { readwrite }; +if (isdefinedsymbol(__USE_DLIB_PERTHREAD)) +{ + // Required in a multi-threaded application + initialize by copy with packing = none { section __DLIB_PERTHREAD }; +} + +define block DATA with fixed order, maximum size = NS_DATA_SIZE { + block ER_DATA, + block ARM_LIB_STACK_MSP, + block ARM_LIB_STACK, + overlay HEAP_OVL +}; +place at address NS_DATA_START {block DATA}; |