Guest User

Untitled

a guest
Oct 1st, 2023
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.28 KB | None | 0 0
  1. /*
  2. * GENERATED FILE - DO NOT EDIT
  3. * Copyright (c) 2008-2013 Code Red Technologies Ltd,
  4. * Copyright 2015, 2018-2019 NXP
  5. * (c) NXP Semiconductors 2013-2023
  6. * Generated linker script file for LPC845
  7. * Created from linkscript.ldt by FMCreateLinkLibraries
  8. * Using Freemarker v2.3.30
  9. * MCUXpresso IDE v11.7.1 [Build 9221] [2023-03-28] on Aug 26, 2023, 12:57:30 PM
  10. */
  11.  
  12. /*INCLUDE "GPIO_Debug_library.ld"*/
  13. /*INCLUDE "GPIO_Debug_memory.ld"*/
  14.  
  15. GROUP (
  16. "libgcc.a"
  17. "libc.a"
  18. "libstdc++.a"
  19. "libm.a"
  20. "libcr_newlib_nohost.a"
  21. "crti.o"
  22. "crtn.o"
  23. "crtbegin.o"
  24. "crtend.o"
  25. )
  26.  
  27. MEMORY
  28. {
  29. /* Define each memory region */
  30. MFlash64 (rx) : ORIGIN = 0x0, LENGTH = 0x10000 /* 64K bytes (alias Flash) */
  31. RamLoc16 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x4000 /* 16K bytes (alias RAM) */
  32. }
  33.  
  34. /* Define a symbol for the top of each memory region */
  35. __base_MFlash64 = 0x0 ; /* MFlash64 */
  36. __base_Flash = 0x0 ; /* Flash */
  37. __top_MFlash64 = 0x0 + 0x10000 ; /* 64K bytes */
  38. __top_Flash = 0x0 + 0x10000 ; /* 64K bytes */
  39. __base_RamLoc16 = 0x10000000 ; /* RamLoc16 */
  40. __base_RAM = 0x10000000 ; /* RAM */
  41. __top_RamLoc16 = 0x10000000 + 0x4000 ; /* 16K bytes */
  42. __top_RAM = 0x10000000 + 0x4000 ; /* 16K bytes */
  43.  
  44.  
  45. ENTRY(ResetISR)
  46.  
  47. SECTIONS
  48. {
  49. /* MAIN TEXT SECTION */
  50. .text : ALIGN(4)
  51. {
  52. FILL(0xff)
  53. __vectors_start__ = ABSOLUTE(.) ;
  54. KEEP(*(.isr_vector))
  55. /* Global Section Table */
  56. . = ALIGN(4) ;
  57. __section_table_start = .;
  58. __data_section_table = .;
  59. LONG(LOADADDR(.data));
  60. LONG( ADDR(.data));
  61. LONG( SIZEOF(.data));
  62. __data_section_table_end = .;
  63. __bss_section_table = .;
  64. LONG( ADDR(.bss));
  65. LONG( SIZEOF(.bss));
  66. __bss_section_table_end = .;
  67. __section_table_end = . ;
  68. /* End of Global Section Table */
  69.  
  70. *(.after_vectors*)
  71.  
  72. /* Code Read Protection data */
  73. . = 0x000002FC ;
  74. PROVIDE(__CRP_WORD_START__ = .) ;
  75. KEEP(*(.crp))
  76. PROVIDE(__CRP_WORD_END__ = .) ;
  77. ASSERT(!(__CRP_WORD_START__ == __CRP_WORD_END__), "Linker CRP Enabled, but no CRP_WORD provided within application");
  78. /* End of Code Read Protection */
  79. *(.text*)
  80. *(.rodata .rodata.* .constdata .constdata.*)
  81. . = ALIGN(4);
  82. /* C++ constructors etc */
  83. . = ALIGN(4);
  84. KEEP(*(.init))
  85.  
  86. . = ALIGN(4);
  87. __preinit_array_start = .;
  88. KEEP (*(.preinit_array))
  89. __preinit_array_end = .;
  90.  
  91. . = ALIGN(4);
  92. __init_array_start = .;
  93. KEEP (*(SORT(.init_array.*)))
  94. KEEP (*(.init_array))
  95. __init_array_end = .;
  96.  
  97. KEEP(*(.fini));
  98.  
  99. . = ALIGN(4);
  100. KEEP (*crtbegin.o(.ctors))
  101. KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
  102. KEEP (*(SORT(.ctors.*)))
  103. KEEP (*crtend.o(.ctors))
  104.  
  105. . = ALIGN(4);
  106. KEEP (*crtbegin.o(.dtors))
  107. KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
  108. KEEP (*(SORT(.dtors.*)))
  109. KEEP (*crtend.o(.dtors))
  110. . = ALIGN(4);
  111. /* End C++ */
  112. } > MFlash64
  113. /*
  114. * for exception handling/unwind - some Newlib functions (in common
  115. * with C++ and STDC++) use this.
  116. */
  117. .ARM.extab : ALIGN(4)
  118. {
  119. *(.ARM.extab* .gnu.linkonce.armextab.*)
  120. } > MFlash64
  121.  
  122. .ARM.exidx : ALIGN(4)
  123. {
  124. __exidx_start = .;
  125. *(.ARM.exidx* .gnu.linkonce.armexidx.*)
  126. __exidx_end = .;
  127. } > MFlash64
  128.  
  129. _etext = .;
  130.  
  131. /* MAIN DATA SECTION */
  132. /* Default MTB section */
  133. .mtb_buffer_default (NOLOAD) :
  134. {
  135. KEEP(*(.mtb*))
  136. } > RamLoc16 AT > RamLoc16
  137. .uninit_RESERVED (NOLOAD) : ALIGN(4)
  138. {
  139. _start_uninit_RESERVED = .;
  140. KEEP(*(.bss.$RESERVED*))
  141. . = ALIGN(4) ;
  142. _end_uninit_RESERVED = .;
  143. } > RamLoc16 AT> RamLoc16
  144.  
  145. /* Main DATA section (RamLoc16) */
  146. .data : ALIGN(4)
  147. {
  148. FILL(0xff)
  149. _data = . ;
  150. PROVIDE(__start_data_RAM = .) ;
  151. PROVIDE(__start_data_RamLoc16 = .) ;
  152. *(vtable)
  153. *(.ramfunc*)
  154. KEEP(*(CodeQuickAccess))
  155. KEEP(*(DataQuickAccess))
  156. *(RamFunction)
  157. *(.data*)
  158. . = ALIGN(4) ;
  159. _edata = . ;
  160. PROVIDE(__end_data_RAM = .) ;
  161. PROVIDE(__end_data_RamLoc16 = .) ;
  162. } > RamLoc16 AT>MFlash64
  163.  
  164. /* MAIN BSS SECTION */
  165. .bss : ALIGN(4)
  166. {
  167. _bss = .;
  168. PROVIDE(__start_bss_RAM = .) ;
  169. PROVIDE(__start_bss_RamLoc16 = .) ;
  170. *(.bss*)
  171. *(COMMON)
  172. . = ALIGN(4) ;
  173. _ebss = .;
  174. PROVIDE(__end_bss_RAM = .) ;
  175. PROVIDE(__end_bss_RamLoc16 = .) ;
  176. PROVIDE(end = .);
  177. } > RamLoc16 AT> RamLoc16
  178.  
  179. /* DEFAULT NOINIT SECTION */
  180. .noinit (NOLOAD): ALIGN(4)
  181. {
  182. _noinit = .;
  183. PROVIDE(__start_noinit_RAM = .) ;
  184. PROVIDE(__start_noinit_RamLoc16 = .) ;
  185. *(.noinit*)
  186. . = ALIGN(4) ;
  187. _end_noinit = .;
  188. PROVIDE(__end_noinit_RAM = .) ;
  189. PROVIDE(__end_noinit_RamLoc16 = .) ;
  190. } > RamLoc16 AT> RamLoc16
  191.  
  192. PROVIDE(_pvHeapStart = DEFINED(__user_heap_base) ? __user_heap_base : .);
  193.  
  194. PROVIDE(_vStackTop = DEFINED(__user_stack_top) ? __user_stack_top : __top_RamLoc16 - 0);
  195.  
  196. /* ## Create checksum value (used in startup) ## */
  197. PROVIDE(__valid_user_code_checksum = 0 -
  198. (_vStackTop
  199. + (ResetISR + 1)
  200. + (( DEFINED(NMI_Handler) ? NMI_Handler : M0_NMI_Handler ) + 1)
  201. + (( DEFINED(HardFault_Handler) ? HardFault_Handler : M0_HardFault_Handler ) + 1)
  202. )
  203. );
  204.  
  205. /* Provide basic symbols giving location and size of main text
  206. * block, including initial values of RW data sections. Note that
  207. * these will need extending to give a complete picture with
  208. * complex images (e.g multiple Flash banks).
  209. */
  210. _image_start = LOADADDR(.text);
  211. _image_end = LOADADDR(.data) + SIZEOF(.data);
  212. _image_size = _image_end - _image_start;
  213. }
Advertisement
Add Comment
Please, Sign In to add comment