1#!armclang --target=arm-arm-none-eabi -march=armv8-m.main -E -x c
2/*
3** ###################################################################
4**     Processors:          LPC55S16JBD100
5**                          LPC55S16JBD64
6**                          LPC55S16JEV59
7**                          LPC55S16JEV98
8**
9**     Compiler:            Keil ARM C/C++ Compiler
10**     Reference manual:    LPC55S1x/LPC551x User manual Rev.0.6  15 November 2019
11**     Version:             rev. 1.1, 2019-12-03
12**     Build:               b220622
13**
14**     Abstract:
15**         Linker file for the Keil ARM C/C++ Compiler
16**
17**     Copyright 2016 Freescale Semiconductor, Inc.
18**     Copyright 2016-2022 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
30/* USB BDT size */
31#define usb_bdt_size                   0x0
32/* Sizes */
33#if (defined(__stack_size__))
34  #define Stack_Size                   __stack_size__
35#else
36  #define Stack_Size                   0x0400
37#endif
38
39#if (defined(__heap_size__))
40  #define Heap_Size                    __heap_size__
41#else
42  #define Heap_Size                    0x0400
43#endif
44
45#define  m_interrupts_start            0x00000000
46#define  m_interrupts_size             0x00000200
47
48#define m_text_start                   0x00000200
49#define m_text_size                    0x0003CE00
50
51#define  m_data_start                  0x20000000
52#define  m_data_size                   0x00010000
53
54#define  m_sramx_start                 0x04000000
55#define  m_sramx_size                  0x00004000
56
57#define  m_usb_sram_start              0x20010000
58#define  m_usb_sram_size               0x00004000
59
60LR_m_text m_interrupts_start m_interrupts_size+m_text_size {   ; load region size_region
61
62  VECTOR_ROM m_interrupts_start m_interrupts_size { ; load address = execution address
63    * (.isr_vector,+FIRST)
64  }
65
66  ER_m_text m_text_start FIXED m_text_size { ; load address = execution address
67    * (InRoot$$Sections)
68    .ANY (+RO)
69  }
70
71  RW_m_data m_data_start m_data_size-Stack_Size-Heap_Size { ; RW data
72    .ANY (+RW +ZI)
73  }
74  ARM_LIB_HEAP +0 EMPTY Heap_Size {    ; Heap region growing up
75  }
76  ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down
77  }
78
79  RW_m_usb_bdt m_usb_sram_start UNINIT usb_bdt_size {
80    * (*m_usb_bdt)
81  }
82
83  RW_m_usb_ram (m_usb_sram_start + usb_bdt_size) UNINIT (m_usb_sram_size - usb_bdt_size) {
84    * (*m_usb_global)
85  }
86}
87