]> begriffs open source - cmsis-driver-validation/blob - Boards/WIZnet/WizFi360-EVB/RTE/Device/MIMXRT1064DVL6A/MIMXRT1064xxxxx_flexspi_nor_sdram.scf
Update validation examples for Espressif ESP32, ESP8266 and WizNet WizFi360 and add...
[cmsis-driver-validation] / Boards / WIZnet / WizFi360-EVB / RTE / Device / MIMXRT1064DVL6A / MIMXRT1064xxxxx_flexspi_nor_sdram.scf
1 #!armclang --target=arm-arm-none-eabi -mcpu=cortex-m7 -E -x c
2 /*
3 ** ###################################################################
4 **     Processors:          MIMXRT1064CVJ5A
5 **                          MIMXRT1064CVL5A
6 **                          MIMXRT1064DVJ6A
7 **                          MIMXRT1064DVL6A
8 **
9 **     Compiler:            Keil ARM C/C++ Compiler
10 **     Reference manual:    IMXRT1064RM Rev.0.1, 12/2018 | IMXRT1064SRM Rev.3
11 **     Version:             rev. 0.1, 2018-06-22
12 **     Build:               b210709
13 **
14 **     Abstract:
15 **         Linker file for the Keil ARM C/C++ Compiler
16 **
17 **     Copyright 2016 Freescale Semiconductor, Inc.
18 **     Copyright 2016-2021 NXP
19 **     All rights reserved.
20 **
21 **     SPDX-License-Identifier: BSD-3-Clause
22 **
23 **     http:                 www.nxp.com
24 **     mail:                 support@nxp.com
25 **
26 ** ###################################################################
27 */
28
29 #if (defined(__ram_vector_table__))
30   #define __ram_vector_table_size__    0x00000400
31 #else
32   #define __ram_vector_table_size__    0x00000000
33 #endif
34
35 #define m_flash_config_start           0x70000000
36 #define m_flash_config_size            0x00001000
37
38 #define m_ivt_start                    0x70001000
39 #define m_ivt_size                     0x00001000
40
41 #define m_interrupts_start             0x70002000
42 #define m_interrupts_size              0x00000400
43
44 #define m_text_start                   0x70002400
45 #define m_text_size                    0x003FDC00
46
47 #define m_qacode_start                 0x00000000
48 #define m_qacode_size                  0x00020000
49
50 #define m_interrupts_ram_start         0x80000000
51 #define m_interrupts_ram_size          __ram_vector_table_size__
52
53 #define m_data_start                   (m_interrupts_ram_start + m_interrupts_ram_size)
54 #define m_data_size                    (0x01E00000 - m_interrupts_ram_size)
55
56 #define m_ncache_start                 0x81E00000
57 #define m_ncache_size                  0x00200000
58
59 #define m_data2_start                  0x20000000
60 #define m_data2_size                   0x00020000
61
62 #define m_data3_start                  0x20200000
63 #define m_data3_size                   0x000C0000
64
65 /* Sizes */
66 #if (defined(__stack_size__))
67   #define Stack_Size                   __stack_size__
68 #else
69   #define Stack_Size                   0x0400
70 #endif
71
72 #if (defined(__heap_size__))
73   #define Heap_Size                    __heap_size__
74 #else
75   #define Heap_Size                    0x0400
76 #endif
77
78 #if defined(XIP_BOOT_HEADER_ENABLE) && (XIP_BOOT_HEADER_ENABLE == 1)
79 LR_m_text m_flash_config_start m_text_start+m_text_size-m_flash_config_start {   ; load region size_region
80   RW_m_config_text m_flash_config_start FIXED m_flash_config_size { ; load address = execution address
81     * (.boot_hdr.conf, +FIRST)
82   }
83
84   RW_m_ivt_text m_ivt_start FIXED m_ivt_size { ; load address = execution address
85     * (.boot_hdr.ivt, +FIRST)
86     * (.boot_hdr.boot_data)
87     * (.boot_hdr.dcd_data)
88   }
89 #else
90 LR_m_text m_interrupts_start m_text_start+m_text_size-m_interrupts_start {   ; load region size_region
91 #endif
92   VECTOR_ROM m_interrupts_start FIXED m_interrupts_size { ; load address = execution address
93     * (.isr_vector,+FIRST)
94   }
95   ER_m_text m_text_start FIXED m_text_size { ; load address = execution address
96     * (InRoot$$Sections)
97     .ANY (+RO)
98   }
99 #if (defined(__ram_vector_table__))
100   VECTOR_RAM m_interrupts_ram_start EMPTY m_interrupts_ram_size {
101   }
102 #else
103   VECTOR_RAM m_interrupts_start EMPTY 0 {
104   }
105 #endif
106   RW_m_data2 m_data2_start m_data2_size {
107     * (RamFunction)
108     * (DataQuickAccess)
109   }
110 #if (defined(__heap_noncacheable__))
111   RW_m_data m_data_start m_data_size-Stack_Size { ; RW data
112 #else
113   RW_m_data m_data_start m_data_size-Stack_Size-Heap_Size { ; RW data
114 #endif
115     .ANY (+RW +ZI)
116     * (*m_usb_dma_init_data)
117     * (*m_usb_dma_noninit_data)
118   }
119 #if (!defined(__heap_noncacheable__))
120   ARM_LIB_HEAP +0 EMPTY Heap_Size {    ; Heap region growing up
121   }
122 #endif
123   ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down
124   }
125   RW_m_ram_text m_qacode_start m_qacode_size { ;
126     * (CodeQuickAccess)
127   }
128 #if (defined(__heap_noncacheable__))
129   RW_m_ncache m_ncache_start m_ncache_size - Heap_Size { ; ncache RW data
130 #else
131   RW_m_ncache m_ncache_start m_ncache_size { ; ncache RW data
132 #endif
133     * (NonCacheable.init)
134     * (*NonCacheable)
135   }
136 #if (defined(__heap_noncacheable__))
137   ARM_LIB_HEAP +0 EMPTY Heap_Size {    ; Heap region growing up
138   }
139   RW_m_ncache_unused +0 EMPTY m_ncache_size-ImageLength(RW_m_ncache)-Heap_Size { ; Empty region added for MPU configuration
140 #else
141   RW_m_ncache_unused +0 EMPTY m_ncache_size-ImageLength(RW_m_ncache) { ; Empty region added for MPU configuration
142 #endif
143   }
144 }