Advertisement
Guest User

Untitled

a guest
Nov 13th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.61 KB | None | 0 0
  1. /*--------------------------------------------------------------------------
  2. * MPLAB XC Compiler - PIC32MZ Application linker script
  3. *
  4. * This software is developed by Microchip Technology Inc. and its
  5. * subsidiaries ("Microchip").
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions are
  9. * met:
  10. *
  11. * 1. Redistributions of source code must retain the above copyright
  12. * notice, this list of conditions and the following disclaimer.
  13. * 2. Redistributions in binary form must reproduce the above
  14. * copyright notice, this list of conditions and the following
  15. * disclaimer in the documentation and/or other materials provided
  16. * with the distribution.
  17. * 3. Microchip's name may not be used to endorse or promote products
  18. * derived from this software without specific prior written
  19. * permission.
  20. *
  21. * THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED
  22. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  23. * MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED. IN NO EVENT
  24. * SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  25. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
  26. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS;
  27. * OR BUSINESS INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  28. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  29. * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  30. * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. *
  32. *-------------------------------------------------------------------------*/
  33.  
  34.  
  35. /* Custom linker script, for applications programmed through a bootloader */
  36.  
  37. /* NOTE: This single-file linker script replaces the two-file system used
  38. * for older PIC32 devices.
  39. */
  40.  
  41. OUTPUT_FORMAT("elf32-tradlittlemips")
  42. OUTPUT_ARCH(pic32mx)
  43. ENTRY(_reset)
  44. /*
  45. * Provide for a minimum stack and heap size
  46. * - _min_stack_size - represents the minimum space that must be made
  47. * available for the stack. Can be overridden from
  48. * the command line using the linker's --defsym option.
  49. * - _min_heap_size - represents the minimum space that must be made
  50. * available for the heap. Must be specified on
  51. * the command line using the linker's --defsym option.
  52. */
  53. EXTERN (_min_stack_size _min_heap_size)
  54.  
  55. /*************************************************************************
  56. * Processor-specific object file. Contains SFR definitions.
  57. *************************************************************************/
  58. INPUT("processor.o")
  59.  
  60. /*************************************************************************
  61. * Processor-specific peripheral libraries are optional
  62. *************************************************************************/
  63. OPTIONAL("libmchp_peripheral.a")
  64.  
  65.  
  66. /*************************************************************************
  67. * Vector-offset initialization
  68. *************************************************************************/
  69. OPTIONAL("vector_offset_init.o")
  70.  
  71. /*************************************************************************
  72. * For interrupt vector handling
  73. *************************************************************************/
  74. PROVIDE(_vector_spacing = 0x00000001);
  75. PROVIDE(_ebase_address = 0x9D001000);
  76.  
  77. /*************************************************************************
  78. * Memory Address Equates
  79. * _RESET_ADDR -- Reset Vector
  80. * _BEV_EXCPT_ADDR -- Boot exception Vector
  81. * _DBG_EXCPT_ADDR -- In-circuit Debugging Exception Vector
  82. * _SIMPLE_TLB_REFILL_EXCPT_ADDR -- Simple TLB-Refill Exception Vector
  83. * _CACHE_ERR_EXCPT_ADDR -- Cache-error Exception Vector
  84. * _GEN_EXCPT_ADDR -- General Exception Vector
  85. *************************************************************************/
  86.  
  87. _RESET_ADDR = 0x9D000000;
  88. _SIMPLE_TLB_REFILL_EXCPT_ADDR = _ebase_address + 0;
  89. _CACHE_ERR_EXCPT_ADDR = _ebase_address + 0x100;
  90. _GEN_EXCPT_ADDR = _ebase_address + 0x180;
  91.  
  92. /*************************************************************************
  93. * Memory Regions
  94. *
  95. * Memory regions without attributes cannot be used for orphaned sections.
  96. * Only sections specifically assigned to these regions can be allocated
  97. * into these regions.
  98. *
  99. * The Debug exception vector is located at 0x9FC00480.
  100. * The config_<address> sections are used to locate the config words at
  101. * their absolute addresses.
  102. *************************************************************************/
  103. MEMORY
  104. {
  105. kseg1_boot_mem : ORIGIN = 0x9D000000, LENGTH = 0x480
  106. kseg0_program_mem (rx) : ORIGIN = 0x9D000000 + 0x480, LENGTH = 0x200000 - 0x480 /* All C files will be located here */
  107. kseg0_boot_mem : ORIGIN = 0x9D000000, LENGTH = 0x0
  108. kseg0_data_mem (w!x) : ORIGIN = 0x80000000, LENGTH = 0x80000
  109. sfrs : ORIGIN = 0xBF800000, LENGTH = 0x100000
  110.  
  111. kseg2_sqi_data_mem : ORIGIN = 0xD0000000, LENGTH = 0x4000000
  112.  
  113. kseg3_sqi_data_mem : ORIGIN = 0xF0000000, LENGTH = 0x4000000
  114. }
  115.  
  116. /*************************************************************************
  117. * Configuration-word sections. Map the config-pragma input sections to
  118. * absolute-address output sections.
  119. *************************************************************************/
  120. SECTIONS
  121. {
  122. /* Boot Sections */
  123. .reset _RESET_ADDR :
  124. {
  125. KEEP(*(.reset))
  126. KEEP(*(.reset.startup))
  127. } > kseg1_boot_mem
  128. .simple_tlb_refill_excpt _SIMPLE_TLB_REFILL_EXCPT_ADDR :
  129. {
  130. KEEP(*(.simple_tlb_refill_vector))
  131. } > kseg0_program_mem
  132. .cache_err_excpt _CACHE_ERR_EXCPT_ADDR :
  133. {
  134. KEEP(*(.cache_err_vector))
  135. } > kseg0_program_mem
  136. .app_excpt _GEN_EXCPT_ADDR :
  137. {
  138. KEEP(*(.gen_handler))
  139. } > kseg0_program_mem
  140.  
  141. /* Interrupt vector table with vector offsets */
  142. .vectors _ebase_address + 0x200 :
  143. {
  144. /* Symbol __vector_offset_n points to .vector_n if it exists,
  145. * otherwise points to the default handler. The
  146. * vector_offset_init.o module then provides a .data section
  147. * containing values used to initialize the vector-offset SFRs
  148. * in the crt0 startup code.
  149. */
  150. __vector_offset_0 = (DEFINED(__vector_dispatch_0) ? (. - _ebase_address) : __vector_offset_default);
  151. KEEP(*(.vector_0))
  152. __vector_offset_1 = (DEFINED(__vector_dispatch_1) ? (. - _ebase_address) : __vector_offset_default);
  153. KEEP(*(.vector_1))
  154. __vector_offset_2 = (DEFINED(__vector_dispatch_2) ? (. - _ebase_address) : __vector_offset_default);
  155. KEEP(*(.vector_2))
  156. __vector_offset_3 = (DEFINED(__vector_dispatch_3) ? (. - _ebase_address) : __vector_offset_default);
  157. KEEP(*(.vector_3))
  158. __vector_offset_4 = (DEFINED(__vector_dispatch_4) ? (. - _ebase_address) : __vector_offset_default);
  159. KEEP(*(.vector_4))
  160. __vector_offset_5 = (DEFINED(__vector_dispatch_5) ? (. - _ebase_address) : __vector_offset_default);
  161. KEEP(*(.vector_5))
  162. __vector_offset_6 = (DEFINED(__vector_dispatch_6) ? (. - _ebase_address) : __vector_offset_default);
  163. KEEP(*(.vector_6))
  164. __vector_offset_7 = (DEFINED(__vector_dispatch_7) ? (. - _ebase_address) : __vector_offset_default);
  165. KEEP(*(.vector_7))
  166. __vector_offset_8 = (DEFINED(__vector_dispatch_8) ? (. - _ebase_address) : __vector_offset_default);
  167. KEEP(*(.vector_8))
  168. __vector_offset_9 = (DEFINED(__vector_dispatch_9) ? (. - _ebase_address) : __vector_offset_default);
  169. KEEP(*(.vector_9))
  170. __vector_offset_10 = (DEFINED(__vector_dispatch_10) ? (. - _ebase_address) : __vector_offset_default);
  171. KEEP(*(.vector_10))
  172. __vector_offset_11 = (DEFINED(__vector_dispatch_11) ? (. - _ebase_address) : __vector_offset_default);
  173. KEEP(*(.vector_11))
  174. __vector_offset_12 = (DEFINED(__vector_dispatch_12) ? (. - _ebase_address) : __vector_offset_default);
  175. KEEP(*(.vector_12))
  176. __vector_offset_13 = (DEFINED(__vector_dispatch_13) ? (. - _ebase_address) : __vector_offset_default);
  177. KEEP(*(.vector_13))
  178. __vector_offset_14 = (DEFINED(__vector_dispatch_14) ? (. - _ebase_address) : __vector_offset_default);
  179. KEEP(*(.vector_14))
  180. __vector_offset_15 = (DEFINED(__vector_dispatch_15) ? (. - _ebase_address) : __vector_offset_default);
  181. KEEP(*(.vector_15))
  182. __vector_offset_16 = (DEFINED(__vector_dispatch_16) ? (. - _ebase_address) : __vector_offset_default);
  183. KEEP(*(.vector_16))
  184. __vector_offset_17 = (DEFINED(__vector_dispatch_17) ? (. - _ebase_address) : __vector_offset_default);
  185. KEEP(*(.vector_17))
  186. __vector_offset_18 = (DEFINED(__vector_dispatch_18) ? (. - _ebase_address) : __vector_offset_default);
  187. KEEP(*(.vector_18))
  188. __vector_offset_19 = (DEFINED(__vector_dispatch_19) ? (. - _ebase_address) : __vector_offset_default);
  189. KEEP(*(.vector_19))
  190. __vector_offset_20 = (DEFINED(__vector_dispatch_20) ? (. - _ebase_address) : __vector_offset_default);
  191. KEEP(*(.vector_20))
  192. __vector_offset_21 = (DEFINED(__vector_dispatch_21) ? (. - _ebase_address) : __vector_offset_default);
  193. KEEP(*(.vector_21))
  194. __vector_offset_22 = (DEFINED(__vector_dispatch_22) ? (. - _ebase_address) : __vector_offset_default);
  195. KEEP(*(.vector_22))
  196. __vector_offset_23 = (DEFINED(__vector_dispatch_23) ? (. - _ebase_address) : __vector_offset_default);
  197. KEEP(*(.vector_23))
  198. __vector_offset_24 = (DEFINED(__vector_dispatch_24) ? (. - _ebase_address) : __vector_offset_default);
  199. KEEP(*(.vector_24))
  200. __vector_offset_25 = (DEFINED(__vector_dispatch_25) ? (. - _ebase_address) : __vector_offset_default);
  201. KEEP(*(.vector_25))
  202. __vector_offset_26 = (DEFINED(__vector_dispatch_26) ? (. - _ebase_address) : __vector_offset_default);
  203. KEEP(*(.vector_26))
  204. __vector_offset_27 = (DEFINED(__vector_dispatch_27) ? (. - _ebase_address) : __vector_offset_default);
  205. KEEP(*(.vector_27))
  206. __vector_offset_28 = (DEFINED(__vector_dispatch_28) ? (. - _ebase_address) : __vector_offset_default);
  207. KEEP(*(.vector_28))
  208. __vector_offset_29 = (DEFINED(__vector_dispatch_29) ? (. - _ebase_address) : __vector_offset_default);
  209. KEEP(*(.vector_29))
  210. __vector_offset_30 = (DEFINED(__vector_dispatch_30) ? (. - _ebase_address) : __vector_offset_default);
  211. KEEP(*(.vector_30))
  212. __vector_offset_31 = (DEFINED(__vector_dispatch_31) ? (. - _ebase_address) : __vector_offset_default);
  213. KEEP(*(.vector_31))
  214. __vector_offset_32 = (DEFINED(__vector_dispatch_32) ? (. - _ebase_address) : __vector_offset_default);
  215. KEEP(*(.vector_32))
  216. __vector_offset_33 = (DEFINED(__vector_dispatch_33) ? (. - _ebase_address) : __vector_offset_default);
  217. KEEP(*(.vector_33))
  218. __vector_offset_34 = (DEFINED(__vector_dispatch_34) ? (. - _ebase_address) : __vector_offset_default);
  219. KEEP(*(.vector_34))
  220. __vector_offset_35 = (DEFINED(__vector_dispatch_35) ? (. - _ebase_address) : __vector_offset_default);
  221. KEEP(*(.vector_35))
  222. __vector_offset_36 = (DEFINED(__vector_dispatch_36) ? (. - _ebase_address) : __vector_offset_default);
  223. KEEP(*(.vector_36))
  224. __vector_offset_37 = (DEFINED(__vector_dispatch_37) ? (. - _ebase_address) : __vector_offset_default);
  225. KEEP(*(.vector_37))
  226. __vector_offset_38 = (DEFINED(__vector_dispatch_38) ? (. - _ebase_address) : __vector_offset_default);
  227. KEEP(*(.vector_38))
  228. __vector_offset_39 = (DEFINED(__vector_dispatch_39) ? (. - _ebase_address) : __vector_offset_default);
  229. KEEP(*(.vector_39))
  230. __vector_offset_40 = (DEFINED(__vector_dispatch_40) ? (. - _ebase_address) : __vector_offset_default);
  231. KEEP(*(.vector_40))
  232. __vector_offset_41 = (DEFINED(__vector_dispatch_41) ? (. - _ebase_address) : __vector_offset_default);
  233. KEEP(*(.vector_41))
  234. __vector_offset_42 = (DEFINED(__vector_dispatch_42) ? (. - _ebase_address) : __vector_offset_default);
  235. KEEP(*(.vector_42))
  236. __vector_offset_43 = (DEFINED(__vector_dispatch_43) ? (. - _ebase_address) : __vector_offset_default);
  237. KEEP(*(.vector_43))
  238. __vector_offset_44 = (DEFINED(__vector_dispatch_44) ? (. - _ebase_address) : __vector_offset_default);
  239. KEEP(*(.vector_44))
  240. __vector_offset_45 = (DEFINED(__vector_dispatch_45) ? (. - _ebase_address) : __vector_offset_default);
  241. KEEP(*(.vector_45))
  242. __vector_offset_46 = (DEFINED(__vector_dispatch_46) ? (. - _ebase_address) : __vector_offset_default);
  243. KEEP(*(.vector_46))
  244. __vector_offset_47 = (DEFINED(__vector_dispatch_47) ? (. - _ebase_address) : __vector_offset_default);
  245. KEEP(*(.vector_47))
  246. __vector_offset_48 = (DEFINED(__vector_dispatch_48) ? (. - _ebase_address) : __vector_offset_default);
  247. KEEP(*(.vector_48))
  248. __vector_offset_49 = (DEFINED(__vector_dispatch_49) ? (. - _ebase_address) : __vector_offset_default);
  249. KEEP(*(.vector_49))
  250. __vector_offset_50 = (DEFINED(__vector_dispatch_50) ? (. - _ebase_address) : __vector_offset_default);
  251. KEEP(*(.vector_50))
  252. __vector_offset_51 = (DEFINED(__vector_dispatch_51) ? (. - _ebase_address) : __vector_offset_default);
  253. KEEP(*(.vector_51))
  254. __vector_offset_52 = (DEFINED(__vector_dispatch_52) ? (. - _ebase_address) : __vector_offset_default);
  255. KEEP(*(.vector_52))
  256. __vector_offset_53 = (DEFINED(__vector_dispatch_53) ? (. - _ebase_address) : __vector_offset_default);
  257. KEEP(*(.vector_53))
  258. __vector_offset_54 = (DEFINED(__vector_dispatch_54) ? (. - _ebase_address) : __vector_offset_default);
  259. KEEP(*(.vector_54))
  260. __vector_offset_55 = (DEFINED(__vector_dispatch_55) ? (. - _ebase_address) : __vector_offset_default);
  261. KEEP(*(.vector_55))
  262. __vector_offset_56 = (DEFINED(__vector_dispatch_56) ? (. - _ebase_address) : __vector_offset_default);
  263. KEEP(*(.vector_56))
  264. __vector_offset_57 = (DEFINED(__vector_dispatch_57) ? (. - _ebase_address) : __vector_offset_default);
  265. KEEP(*(.vector_57))
  266. __vector_offset_58 = (DEFINED(__vector_dispatch_58) ? (. - _ebase_address) : __vector_offset_default);
  267. KEEP(*(.vector_58))
  268. __vector_offset_59 = (DEFINED(__vector_dispatch_59) ? (. - _ebase_address) : __vector_offset_default);
  269. KEEP(*(.vector_59))
  270. __vector_offset_60 = (DEFINED(__vector_dispatch_60) ? (. - _ebase_address) : __vector_offset_default);
  271. KEEP(*(.vector_60))
  272. __vector_offset_61 = (DEFINED(__vector_dispatch_61) ? (. - _ebase_address) : __vector_offset_default);
  273. KEEP(*(.vector_61))
  274. __vector_offset_62 = (DEFINED(__vector_dispatch_62) ? (. - _ebase_address) : __vector_offset_default);
  275. KEEP(*(.vector_62))
  276. __vector_offset_63 = (DEFINED(__vector_dispatch_63) ? (. - _ebase_address) : __vector_offset_default);
  277. KEEP(*(.vector_63))
  278. __vector_offset_64 = (DEFINED(__vector_dispatch_64) ? (. - _ebase_address) : __vector_offset_default);
  279. KEEP(*(.vector_64))
  280. __vector_offset_65 = (DEFINED(__vector_dispatch_65) ? (. - _ebase_address) : __vector_offset_default);
  281. KEEP(*(.vector_65))
  282. __vector_offset_66 = (DEFINED(__vector_dispatch_66) ? (. - _ebase_address) : __vector_offset_default);
  283. KEEP(*(.vector_66))
  284. __vector_offset_67 = (DEFINED(__vector_dispatch_67) ? (. - _ebase_address) : __vector_offset_default);
  285. KEEP(*(.vector_67))
  286. __vector_offset_68 = (DEFINED(__vector_dispatch_68) ? (. - _ebase_address) : __vector_offset_default);
  287. KEEP(*(.vector_68))
  288. __vector_offset_69 = (DEFINED(__vector_dispatch_69) ? (. - _ebase_address) : __vector_offset_default);
  289. KEEP(*(.vector_69))
  290. __vector_offset_70 = (DEFINED(__vector_dispatch_70) ? (. - _ebase_address) : __vector_offset_default);
  291. KEEP(*(.vector_70))
  292. __vector_offset_71 = (DEFINED(__vector_dispatch_71) ? (. - _ebase_address) : __vector_offset_default);
  293. KEEP(*(.vector_71))
  294. __vector_offset_72 = (DEFINED(__vector_dispatch_72) ? (. - _ebase_address) : __vector_offset_default);
  295. KEEP(*(.vector_72))
  296. __vector_offset_73 = (DEFINED(__vector_dispatch_73) ? (. - _ebase_address) : __vector_offset_default);
  297. KEEP(*(.vector_73))
  298. __vector_offset_74 = (DEFINED(__vector_dispatch_74) ? (. - _ebase_address) : __vector_offset_default);
  299. KEEP(*(.vector_74))
  300. __vector_offset_75 = (DEFINED(__vector_dispatch_75) ? (. - _ebase_address) : __vector_offset_default);
  301. KEEP(*(.vector_75))
  302. __vector_offset_76 = (DEFINED(__vector_dispatch_76) ? (. - _ebase_address) : __vector_offset_default);
  303. KEEP(*(.vector_76))
  304. __vector_offset_77 = (DEFINED(__vector_dispatch_77) ? (. - _ebase_address) : __vector_offset_default);
  305. KEEP(*(.vector_77))
  306. __vector_offset_78 = (DEFINED(__vector_dispatch_78) ? (. - _ebase_address) : __vector_offset_default);
  307. KEEP(*(.vector_78))
  308. __vector_offset_79 = (DEFINED(__vector_dispatch_79) ? (. - _ebase_address) : __vector_offset_default);
  309. KEEP(*(.vector_79))
  310. __vector_offset_80 = (DEFINED(__vector_dispatch_80) ? (. - _ebase_address) : __vector_offset_default);
  311. KEEP(*(.vector_80))
  312. __vector_offset_81 = (DEFINED(__vector_dispatch_81) ? (. - _ebase_address) : __vector_offset_default);
  313. KEEP(*(.vector_81))
  314. __vector_offset_82 = (DEFINED(__vector_dispatch_82) ? (. - _ebase_address) : __vector_offset_default);
  315. KEEP(*(.vector_82))
  316. __vector_offset_83 = (DEFINED(__vector_dispatch_83) ? (. - _ebase_address) : __vector_offset_default);
  317. KEEP(*(.vector_83))
  318. __vector_offset_84 = (DEFINED(__vector_dispatch_84) ? (. - _ebase_address) : __vector_offset_default);
  319. KEEP(*(.vector_84))
  320. __vector_offset_85 = (DEFINED(__vector_dispatch_85) ? (. - _ebase_address) : __vector_offset_default);
  321. KEEP(*(.vector_85))
  322. __vector_offset_86 = (DEFINED(__vector_dispatch_86) ? (. - _ebase_address) : __vector_offset_default);
  323. KEEP(*(.vector_86))
  324. __vector_offset_87 = (DEFINED(__vector_dispatch_87) ? (. - _ebase_address) : __vector_offset_default);
  325. KEEP(*(.vector_87))
  326. __vector_offset_88 = (DEFINED(__vector_dispatch_88) ? (. - _ebase_address) : __vector_offset_default);
  327. KEEP(*(.vector_88))
  328. __vector_offset_89 = (DEFINED(__vector_dispatch_89) ? (. - _ebase_address) : __vector_offset_default);
  329. KEEP(*(.vector_89))
  330. __vector_offset_90 = (DEFINED(__vector_dispatch_90) ? (. - _ebase_address) : __vector_offset_default);
  331. KEEP(*(.vector_90))
  332. __vector_offset_91 = (DEFINED(__vector_dispatch_91) ? (. - _ebase_address) : __vector_offset_default);
  333. KEEP(*(.vector_91))
  334. __vector_offset_92 = (DEFINED(__vector_dispatch_92) ? (. - _ebase_address) : __vector_offset_default);
  335. KEEP(*(.vector_92))
  336. __vector_offset_93 = (DEFINED(__vector_dispatch_93) ? (. - _ebase_address) : __vector_offset_default);
  337. KEEP(*(.vector_93))
  338. __vector_offset_94 = (DEFINED(__vector_dispatch_94) ? (. - _ebase_address) : __vector_offset_default);
  339. KEEP(*(.vector_94))
  340. __vector_offset_95 = (DEFINED(__vector_dispatch_95) ? (. - _ebase_address) : __vector_offset_default);
  341. KEEP(*(.vector_95))
  342. __vector_offset_96 = (DEFINED(__vector_dispatch_96) ? (. - _ebase_address) : __vector_offset_default);
  343. KEEP(*(.vector_96))
  344. __vector_offset_97 = (DEFINED(__vector_dispatch_97) ? (. - _ebase_address) : __vector_offset_default);
  345. KEEP(*(.vector_97))
  346. __vector_offset_98 = (DEFINED(__vector_dispatch_98) ? (. - _ebase_address) : __vector_offset_default);
  347. KEEP(*(.vector_98))
  348. __vector_offset_99 = (DEFINED(__vector_dispatch_99) ? (. - _ebase_address) : __vector_offset_default);
  349. KEEP(*(.vector_99))
  350. __vector_offset_100 = (DEFINED(__vector_dispatch_100) ? (. - _ebase_address) : __vector_offset_default);
  351. KEEP(*(.vector_100))
  352. __vector_offset_101 = (DEFINED(__vector_dispatch_101) ? (. - _ebase_address) : __vector_offset_default);
  353. KEEP(*(.vector_101))
  354. __vector_offset_102 = (DEFINED(__vector_dispatch_102) ? (. - _ebase_address) : __vector_offset_default);
  355. KEEP(*(.vector_102))
  356. __vector_offset_103 = (DEFINED(__vector_dispatch_103) ? (. - _ebase_address) : __vector_offset_default);
  357. KEEP(*(.vector_103))
  358. __vector_offset_104 = (DEFINED(__vector_dispatch_104) ? (. - _ebase_address) : __vector_offset_default);
  359. KEEP(*(.vector_104))
  360. __vector_offset_105 = (DEFINED(__vector_dispatch_105) ? (. - _ebase_address) : __vector_offset_default);
  361. KEEP(*(.vector_105))
  362. __vector_offset_106 = (DEFINED(__vector_dispatch_106) ? (. - _ebase_address) : __vector_offset_default);
  363. KEEP(*(.vector_106))
  364. __vector_offset_107 = (DEFINED(__vector_dispatch_107) ? (. - _ebase_address) : __vector_offset_default);
  365. KEEP(*(.vector_107))
  366. __vector_offset_108 = (DEFINED(__vector_dispatch_108) ? (. - _ebase_address) : __vector_offset_default);
  367. KEEP(*(.vector_108))
  368. __vector_offset_109 = (DEFINED(__vector_dispatch_109) ? (. - _ebase_address) : __vector_offset_default);
  369. KEEP(*(.vector_109))
  370. __vector_offset_110 = (DEFINED(__vector_dispatch_110) ? (. - _ebase_address) : __vector_offset_default);
  371. KEEP(*(.vector_110))
  372. __vector_offset_111 = (DEFINED(__vector_dispatch_111) ? (. - _ebase_address) : __vector_offset_default);
  373. KEEP(*(.vector_111))
  374. __vector_offset_112 = (DEFINED(__vector_dispatch_112) ? (. - _ebase_address) : __vector_offset_default);
  375. KEEP(*(.vector_112))
  376. __vector_offset_113 = (DEFINED(__vector_dispatch_113) ? (. - _ebase_address) : __vector_offset_default);
  377. KEEP(*(.vector_113))
  378. __vector_offset_114 = (DEFINED(__vector_dispatch_114) ? (. - _ebase_address) : __vector_offset_default);
  379. KEEP(*(.vector_114))
  380. __vector_offset_115 = (DEFINED(__vector_dispatch_115) ? (. - _ebase_address) : __vector_offset_default);
  381. KEEP(*(.vector_115))
  382. __vector_offset_116 = (DEFINED(__vector_dispatch_116) ? (. - _ebase_address) : __vector_offset_default);
  383. KEEP(*(.vector_116))
  384. __vector_offset_117 = (DEFINED(__vector_dispatch_117) ? (. - _ebase_address) : __vector_offset_default);
  385. KEEP(*(.vector_117))
  386. __vector_offset_118 = (DEFINED(__vector_dispatch_118) ? (. - _ebase_address) : __vector_offset_default);
  387. KEEP(*(.vector_118))
  388. __vector_offset_119 = (DEFINED(__vector_dispatch_119) ? (. - _ebase_address) : __vector_offset_default);
  389. KEEP(*(.vector_119))
  390. __vector_offset_120 = (DEFINED(__vector_dispatch_120) ? (. - _ebase_address) : __vector_offset_default);
  391. KEEP(*(.vector_120))
  392. __vector_offset_121 = (DEFINED(__vector_dispatch_121) ? (. - _ebase_address) : __vector_offset_default);
  393. KEEP(*(.vector_121))
  394. __vector_offset_122 = (DEFINED(__vector_dispatch_122) ? (. - _ebase_address) : __vector_offset_default);
  395. KEEP(*(.vector_122))
  396. __vector_offset_123 = (DEFINED(__vector_dispatch_123) ? (. - _ebase_address) : __vector_offset_default);
  397. KEEP(*(.vector_123))
  398. __vector_offset_124 = (DEFINED(__vector_dispatch_124) ? (. - _ebase_address) : __vector_offset_default);
  399. KEEP(*(.vector_124))
  400. __vector_offset_125 = (DEFINED(__vector_dispatch_125) ? (. - _ebase_address) : __vector_offset_default);
  401. KEEP(*(.vector_125))
  402. __vector_offset_126 = (DEFINED(__vector_dispatch_126) ? (. - _ebase_address) : __vector_offset_default);
  403. KEEP(*(.vector_126))
  404. __vector_offset_127 = (DEFINED(__vector_dispatch_127) ? (. - _ebase_address) : __vector_offset_default);
  405. KEEP(*(.vector_127))
  406. __vector_offset_128 = (DEFINED(__vector_dispatch_128) ? (. - _ebase_address) : __vector_offset_default);
  407. KEEP(*(.vector_128))
  408. __vector_offset_129 = (DEFINED(__vector_dispatch_129) ? (. - _ebase_address) : __vector_offset_default);
  409. KEEP(*(.vector_129))
  410. __vector_offset_130 = (DEFINED(__vector_dispatch_130) ? (. - _ebase_address) : __vector_offset_default);
  411. KEEP(*(.vector_130))
  412. __vector_offset_131 = (DEFINED(__vector_dispatch_131) ? (. - _ebase_address) : __vector_offset_default);
  413. KEEP(*(.vector_131))
  414. __vector_offset_132 = (DEFINED(__vector_dispatch_132) ? (. - _ebase_address) : __vector_offset_default);
  415. KEEP(*(.vector_132))
  416. __vector_offset_133 = (DEFINED(__vector_dispatch_133) ? (. - _ebase_address) : __vector_offset_default);
  417. KEEP(*(.vector_133))
  418. __vector_offset_134 = (DEFINED(__vector_dispatch_134) ? (. - _ebase_address) : __vector_offset_default);
  419. KEEP(*(.vector_134))
  420. __vector_offset_135 = (DEFINED(__vector_dispatch_135) ? (. - _ebase_address) : __vector_offset_default);
  421. KEEP(*(.vector_135))
  422. __vector_offset_136 = (DEFINED(__vector_dispatch_136) ? (. - _ebase_address) : __vector_offset_default);
  423. KEEP(*(.vector_136))
  424. __vector_offset_137 = (DEFINED(__vector_dispatch_137) ? (. - _ebase_address) : __vector_offset_default);
  425. KEEP(*(.vector_137))
  426. __vector_offset_138 = (DEFINED(__vector_dispatch_138) ? (. - _ebase_address) : __vector_offset_default);
  427. KEEP(*(.vector_138))
  428. __vector_offset_139 = (DEFINED(__vector_dispatch_139) ? (. - _ebase_address) : __vector_offset_default);
  429. KEEP(*(.vector_139))
  430. __vector_offset_140 = (DEFINED(__vector_dispatch_140) ? (. - _ebase_address) : __vector_offset_default);
  431. KEEP(*(.vector_140))
  432. __vector_offset_141 = (DEFINED(__vector_dispatch_141) ? (. - _ebase_address) : __vector_offset_default);
  433. KEEP(*(.vector_141))
  434. __vector_offset_142 = (DEFINED(__vector_dispatch_142) ? (. - _ebase_address) : __vector_offset_default);
  435. KEEP(*(.vector_142))
  436. __vector_offset_143 = (DEFINED(__vector_dispatch_143) ? (. - _ebase_address) : __vector_offset_default);
  437. KEEP(*(.vector_143))
  438. __vector_offset_144 = (DEFINED(__vector_dispatch_144) ? (. - _ebase_address) : __vector_offset_default);
  439. KEEP(*(.vector_144))
  440. __vector_offset_145 = (DEFINED(__vector_dispatch_145) ? (. - _ebase_address) : __vector_offset_default);
  441. KEEP(*(.vector_145))
  442. __vector_offset_146 = (DEFINED(__vector_dispatch_146) ? (. - _ebase_address) : __vector_offset_default);
  443. KEEP(*(.vector_146))
  444. __vector_offset_147 = (DEFINED(__vector_dispatch_147) ? (. - _ebase_address) : __vector_offset_default);
  445. KEEP(*(.vector_147))
  446. __vector_offset_148 = (DEFINED(__vector_dispatch_148) ? (. - _ebase_address) : __vector_offset_default);
  447. KEEP(*(.vector_148))
  448. __vector_offset_149 = (DEFINED(__vector_dispatch_149) ? (. - _ebase_address) : __vector_offset_default);
  449. KEEP(*(.vector_149))
  450. __vector_offset_150 = (DEFINED(__vector_dispatch_150) ? (. - _ebase_address) : __vector_offset_default);
  451. KEEP(*(.vector_150))
  452. __vector_offset_151 = (DEFINED(__vector_dispatch_151) ? (. - _ebase_address) : __vector_offset_default);
  453. KEEP(*(.vector_151))
  454. __vector_offset_152 = (DEFINED(__vector_dispatch_152) ? (. - _ebase_address) : __vector_offset_default);
  455. KEEP(*(.vector_152))
  456. __vector_offset_153 = (DEFINED(__vector_dispatch_153) ? (. - _ebase_address) : __vector_offset_default);
  457. KEEP(*(.vector_153))
  458. __vector_offset_154 = (DEFINED(__vector_dispatch_154) ? (. - _ebase_address) : __vector_offset_default);
  459. KEEP(*(.vector_154))
  460. __vector_offset_155 = (DEFINED(__vector_dispatch_155) ? (. - _ebase_address) : __vector_offset_default);
  461. KEEP(*(.vector_155))
  462. __vector_offset_156 = (DEFINED(__vector_dispatch_156) ? (. - _ebase_address) : __vector_offset_default);
  463. KEEP(*(.vector_156))
  464. __vector_offset_157 = (DEFINED(__vector_dispatch_157) ? (. - _ebase_address) : __vector_offset_default);
  465. KEEP(*(.vector_157))
  466. __vector_offset_158 = (DEFINED(__vector_dispatch_158) ? (. - _ebase_address) : __vector_offset_default);
  467. KEEP(*(.vector_158))
  468. __vector_offset_159 = (DEFINED(__vector_dispatch_159) ? (. - _ebase_address) : __vector_offset_default);
  469. KEEP(*(.vector_159))
  470. __vector_offset_160 = (DEFINED(__vector_dispatch_160) ? (. - _ebase_address) : __vector_offset_default);
  471. KEEP(*(.vector_160))
  472. __vector_offset_161 = (DEFINED(__vector_dispatch_161) ? (. - _ebase_address) : __vector_offset_default);
  473. KEEP(*(.vector_161))
  474. __vector_offset_162 = (DEFINED(__vector_dispatch_162) ? (. - _ebase_address) : __vector_offset_default);
  475. KEEP(*(.vector_162))
  476. __vector_offset_163 = (DEFINED(__vector_dispatch_163) ? (. - _ebase_address) : __vector_offset_default);
  477. KEEP(*(.vector_163))
  478. __vector_offset_164 = (DEFINED(__vector_dispatch_164) ? (. - _ebase_address) : __vector_offset_default);
  479. KEEP(*(.vector_164))
  480. __vector_offset_165 = (DEFINED(__vector_dispatch_165) ? (. - _ebase_address) : __vector_offset_default);
  481. KEEP(*(.vector_165))
  482. __vector_offset_166 = (DEFINED(__vector_dispatch_166) ? (. - _ebase_address) : __vector_offset_default);
  483. KEEP(*(.vector_166))
  484. __vector_offset_167 = (DEFINED(__vector_dispatch_167) ? (. - _ebase_address) : __vector_offset_default);
  485. KEEP(*(.vector_167))
  486. __vector_offset_168 = (DEFINED(__vector_dispatch_168) ? (. - _ebase_address) : __vector_offset_default);
  487. KEEP(*(.vector_168))
  488. __vector_offset_169 = (DEFINED(__vector_dispatch_169) ? (. - _ebase_address) : __vector_offset_default);
  489. KEEP(*(.vector_169))
  490. __vector_offset_170 = (DEFINED(__vector_dispatch_170) ? (. - _ebase_address) : __vector_offset_default);
  491. KEEP(*(.vector_170))
  492. __vector_offset_171 = (DEFINED(__vector_dispatch_171) ? (. - _ebase_address) : __vector_offset_default);
  493. KEEP(*(.vector_171))
  494. __vector_offset_172 = (DEFINED(__vector_dispatch_172) ? (. - _ebase_address) : __vector_offset_default);
  495. KEEP(*(.vector_172))
  496. __vector_offset_173 = (DEFINED(__vector_dispatch_173) ? (. - _ebase_address) : __vector_offset_default);
  497. KEEP(*(.vector_173))
  498. __vector_offset_174 = (DEFINED(__vector_dispatch_174) ? (. - _ebase_address) : __vector_offset_default);
  499. KEEP(*(.vector_174))
  500. __vector_offset_175 = (DEFINED(__vector_dispatch_175) ? (. - _ebase_address) : __vector_offset_default);
  501. KEEP(*(.vector_175))
  502. __vector_offset_176 = (DEFINED(__vector_dispatch_176) ? (. - _ebase_address) : __vector_offset_default);
  503. KEEP(*(.vector_176))
  504. __vector_offset_177 = (DEFINED(__vector_dispatch_177) ? (. - _ebase_address) : __vector_offset_default);
  505. KEEP(*(.vector_177))
  506. __vector_offset_178 = (DEFINED(__vector_dispatch_178) ? (. - _ebase_address) : __vector_offset_default);
  507. KEEP(*(.vector_178))
  508. __vector_offset_179 = (DEFINED(__vector_dispatch_179) ? (. - _ebase_address) : __vector_offset_default);
  509. KEEP(*(.vector_179))
  510. __vector_offset_180 = (DEFINED(__vector_dispatch_180) ? (. - _ebase_address) : __vector_offset_default);
  511. KEEP(*(.vector_180))
  512. __vector_offset_181 = (DEFINED(__vector_dispatch_181) ? (. - _ebase_address) : __vector_offset_default);
  513. KEEP(*(.vector_181))
  514. __vector_offset_182 = (DEFINED(__vector_dispatch_182) ? (. - _ebase_address) : __vector_offset_default);
  515. KEEP(*(.vector_182))
  516. __vector_offset_183 = (DEFINED(__vector_dispatch_183) ? (. - _ebase_address) : __vector_offset_default);
  517. KEEP(*(.vector_183))
  518. __vector_offset_184 = (DEFINED(__vector_dispatch_184) ? (. - _ebase_address) : __vector_offset_default);
  519. KEEP(*(.vector_184))
  520. __vector_offset_185 = (DEFINED(__vector_dispatch_185) ? (. - _ebase_address) : __vector_offset_default);
  521. KEEP(*(.vector_185))
  522. __vector_offset_186 = (DEFINED(__vector_dispatch_186) ? (. - _ebase_address) : __vector_offset_default);
  523. KEEP(*(.vector_186))
  524. __vector_offset_187 = (DEFINED(__vector_dispatch_187) ? (. - _ebase_address) : __vector_offset_default);
  525. KEEP(*(.vector_187))
  526. __vector_offset_188 = (DEFINED(__vector_dispatch_188) ? (. - _ebase_address) : __vector_offset_default);
  527. KEEP(*(.vector_188))
  528. __vector_offset_189 = (DEFINED(__vector_dispatch_189) ? (. - _ebase_address) : __vector_offset_default);
  529. KEEP(*(.vector_189))
  530. __vector_offset_190 = (DEFINED(__vector_dispatch_190) ? (. - _ebase_address) : __vector_offset_default);
  531. KEEP(*(.vector_190))
  532. __vector_offset_191 = (DEFINED(__vector_dispatch_191) ? (. - _ebase_address) : __vector_offset_default);
  533. KEEP(*(.vector_191))
  534. __vector_offset_192 = (DEFINED(__vector_dispatch_192) ? (. - _ebase_address) : __vector_offset_default);
  535. KEEP(*(.vector_192))
  536. __vector_offset_193 = (DEFINED(__vector_dispatch_193) ? (. - _ebase_address) : __vector_offset_default);
  537. KEEP(*(.vector_193))
  538. __vector_offset_194 = (DEFINED(__vector_dispatch_194) ? (. - _ebase_address) : __vector_offset_default);
  539. KEEP(*(.vector_194))
  540. __vector_offset_195 = (DEFINED(__vector_dispatch_195) ? (. - _ebase_address) : __vector_offset_default);
  541. KEEP(*(.vector_195))
  542. __vector_offset_196 = (DEFINED(__vector_dispatch_196) ? (. - _ebase_address) : __vector_offset_default);
  543. KEEP(*(.vector_196))
  544. __vector_offset_197 = (DEFINED(__vector_dispatch_197) ? (. - _ebase_address) : __vector_offset_default);
  545. KEEP(*(.vector_197))
  546. __vector_offset_198 = (DEFINED(__vector_dispatch_198) ? (. - _ebase_address) : __vector_offset_default);
  547. KEEP(*(.vector_198))
  548. __vector_offset_199 = (DEFINED(__vector_dispatch_199) ? (. - _ebase_address) : __vector_offset_default);
  549. KEEP(*(.vector_199))
  550. __vector_offset_200 = (DEFINED(__vector_dispatch_200) ? (. - _ebase_address) : __vector_offset_default);
  551. KEEP(*(.vector_200))
  552. __vector_offset_201 = (DEFINED(__vector_dispatch_201) ? (. - _ebase_address) : __vector_offset_default);
  553. KEEP(*(.vector_201))
  554. __vector_offset_202 = (DEFINED(__vector_dispatch_202) ? (. - _ebase_address) : __vector_offset_default);
  555. KEEP(*(.vector_202))
  556. __vector_offset_203 = (DEFINED(__vector_dispatch_203) ? (. - _ebase_address) : __vector_offset_default);
  557. KEEP(*(.vector_203))
  558. __vector_offset_204 = (DEFINED(__vector_dispatch_204) ? (. - _ebase_address) : __vector_offset_default);
  559. KEEP(*(.vector_204))
  560. __vector_offset_205 = (DEFINED(__vector_dispatch_205) ? (. - _ebase_address) : __vector_offset_default);
  561. KEEP(*(.vector_205))
  562. __vector_offset_206 = (DEFINED(__vector_dispatch_206) ? (. - _ebase_address) : __vector_offset_default);
  563. KEEP(*(.vector_206))
  564. __vector_offset_207 = (DEFINED(__vector_dispatch_207) ? (. - _ebase_address) : __vector_offset_default);
  565. KEEP(*(.vector_207))
  566. __vector_offset_208 = (DEFINED(__vector_dispatch_208) ? (. - _ebase_address) : __vector_offset_default);
  567. KEEP(*(.vector_208))
  568. __vector_offset_209 = (DEFINED(__vector_dispatch_209) ? (. - _ebase_address) : __vector_offset_default);
  569. KEEP(*(.vector_209))
  570. __vector_offset_210 = (DEFINED(__vector_dispatch_210) ? (. - _ebase_address) : __vector_offset_default);
  571. KEEP(*(.vector_210))
  572. __vector_offset_211 = (DEFINED(__vector_dispatch_211) ? (. - _ebase_address) : __vector_offset_default);
  573. KEEP(*(.vector_211))
  574. __vector_offset_212 = (DEFINED(__vector_dispatch_212) ? (. - _ebase_address) : __vector_offset_default);
  575. KEEP(*(.vector_212))
  576. __vector_offset_213 = (DEFINED(__vector_dispatch_213) ? (. - _ebase_address) : __vector_offset_default);
  577. KEEP(*(.vector_213))
  578. __vector_offset_214 = (DEFINED(__vector_dispatch_214) ? (. - _ebase_address) : __vector_offset_default);
  579. KEEP(*(.vector_214))
  580. __vector_offset_215 = (DEFINED(__vector_dispatch_215) ? (. - _ebase_address) : __vector_offset_default);
  581. KEEP(*(.vector_215))
  582. __vector_offset_216 = (DEFINED(__vector_dispatch_216) ? (. - _ebase_address) : __vector_offset_default);
  583. KEEP(*(.vector_216))
  584. __vector_offset_217 = (DEFINED(__vector_dispatch_217) ? (. - _ebase_address) : __vector_offset_default);
  585. KEEP(*(.vector_217))
  586. __vector_offset_218 = (DEFINED(__vector_dispatch_218) ? (. - _ebase_address) : __vector_offset_default);
  587. KEEP(*(.vector_218))
  588. __vector_offset_219 = (DEFINED(__vector_dispatch_219) ? (. - _ebase_address) : __vector_offset_default);
  589. KEEP(*(.vector_219))
  590. __vector_offset_220 = (DEFINED(__vector_dispatch_220) ? (. - _ebase_address) : __vector_offset_default);
  591. KEEP(*(.vector_220))
  592. __vector_offset_221 = (DEFINED(__vector_dispatch_221) ? (. - _ebase_address) : __vector_offset_default);
  593. KEEP(*(.vector_221))
  594. __vector_offset_222 = (DEFINED(__vector_dispatch_222) ? (. - _ebase_address) : __vector_offset_default);
  595. KEEP(*(.vector_222))
  596. __vector_offset_223 = (DEFINED(__vector_dispatch_223) ? (. - _ebase_address) : __vector_offset_default);
  597. KEEP(*(.vector_223))
  598. __vector_offset_224 = (DEFINED(__vector_dispatch_224) ? (. - _ebase_address) : __vector_offset_default);
  599. KEEP(*(.vector_224))
  600. __vector_offset_225 = (DEFINED(__vector_dispatch_225) ? (. - _ebase_address) : __vector_offset_default);
  601. KEEP(*(.vector_225))
  602. __vector_offset_226 = (DEFINED(__vector_dispatch_226) ? (. - _ebase_address) : __vector_offset_default);
  603. KEEP(*(.vector_226))
  604. __vector_offset_227 = (DEFINED(__vector_dispatch_227) ? (. - _ebase_address) : __vector_offset_default);
  605. KEEP(*(.vector_227))
  606. __vector_offset_228 = (DEFINED(__vector_dispatch_228) ? (. - _ebase_address) : __vector_offset_default);
  607. KEEP(*(.vector_228))
  608. __vector_offset_229 = (DEFINED(__vector_dispatch_229) ? (. - _ebase_address) : __vector_offset_default);
  609. KEEP(*(.vector_229))
  610. __vector_offset_230 = (DEFINED(__vector_dispatch_230) ? (. - _ebase_address) : __vector_offset_default);
  611. KEEP(*(.vector_230))
  612. __vector_offset_231 = (DEFINED(__vector_dispatch_231) ? (. - _ebase_address) : __vector_offset_default);
  613. KEEP(*(.vector_231))
  614. __vector_offset_232 = (DEFINED(__vector_dispatch_232) ? (. - _ebase_address) : __vector_offset_default);
  615. KEEP(*(.vector_232))
  616. __vector_offset_233 = (DEFINED(__vector_dispatch_233) ? (. - _ebase_address) : __vector_offset_default);
  617. KEEP(*(.vector_233))
  618. __vector_offset_234 = (DEFINED(__vector_dispatch_234) ? (. - _ebase_address) : __vector_offset_default);
  619. KEEP(*(.vector_234))
  620. __vector_offset_235 = (DEFINED(__vector_dispatch_235) ? (. - _ebase_address) : __vector_offset_default);
  621. KEEP(*(.vector_235))
  622. __vector_offset_236 = (DEFINED(__vector_dispatch_236) ? (. - _ebase_address) : __vector_offset_default);
  623. KEEP(*(.vector_236))
  624. __vector_offset_237 = (DEFINED(__vector_dispatch_237) ? (. - _ebase_address) : __vector_offset_default);
  625. KEEP(*(.vector_237))
  626. __vector_offset_238 = (DEFINED(__vector_dispatch_238) ? (. - _ebase_address) : __vector_offset_default);
  627. KEEP(*(.vector_238))
  628. __vector_offset_239 = (DEFINED(__vector_dispatch_239) ? (. - _ebase_address) : __vector_offset_default);
  629. KEEP(*(.vector_239))
  630. __vector_offset_240 = (DEFINED(__vector_dispatch_240) ? (. - _ebase_address) : __vector_offset_default);
  631. KEEP(*(.vector_240))
  632. __vector_offset_241 = (DEFINED(__vector_dispatch_241) ? (. - _ebase_address) : __vector_offset_default);
  633. KEEP(*(.vector_241))
  634. __vector_offset_242 = (DEFINED(__vector_dispatch_242) ? (. - _ebase_address) : __vector_offset_default);
  635. KEEP(*(.vector_242))
  636. __vector_offset_243 = (DEFINED(__vector_dispatch_243) ? (. - _ebase_address) : __vector_offset_default);
  637. KEEP(*(.vector_243))
  638. __vector_offset_244 = (DEFINED(__vector_dispatch_244) ? (. - _ebase_address) : __vector_offset_default);
  639. KEEP(*(.vector_244))
  640. __vector_offset_245 = (DEFINED(__vector_dispatch_245) ? (. - _ebase_address) : __vector_offset_default);
  641. KEEP(*(.vector_245))
  642. __vector_offset_246 = (DEFINED(__vector_dispatch_246) ? (. - _ebase_address) : __vector_offset_default);
  643. KEEP(*(.vector_246))
  644. __vector_offset_247 = (DEFINED(__vector_dispatch_247) ? (. - _ebase_address) : __vector_offset_default);
  645. KEEP(*(.vector_247))
  646. __vector_offset_248 = (DEFINED(__vector_dispatch_248) ? (. - _ebase_address) : __vector_offset_default);
  647. KEEP(*(.vector_248))
  648. __vector_offset_249 = (DEFINED(__vector_dispatch_249) ? (. - _ebase_address) : __vector_offset_default);
  649. KEEP(*(.vector_249))
  650. __vector_offset_250 = (DEFINED(__vector_dispatch_250) ? (. - _ebase_address) : __vector_offset_default);
  651. KEEP(*(.vector_250))
  652. __vector_offset_251 = (DEFINED(__vector_dispatch_251) ? (. - _ebase_address) : __vector_offset_default);
  653. KEEP(*(.vector_251))
  654. __vector_offset_252 = (DEFINED(__vector_dispatch_252) ? (. - _ebase_address) : __vector_offset_default);
  655. KEEP(*(.vector_252))
  656. __vector_offset_253 = (DEFINED(__vector_dispatch_253) ? (. - _ebase_address) : __vector_offset_default);
  657. KEEP(*(.vector_253))
  658. __vector_offset_254 = (DEFINED(__vector_dispatch_254) ? (. - _ebase_address) : __vector_offset_default);
  659. KEEP(*(.vector_254))
  660. __vector_offset_255 = (DEFINED(__vector_dispatch_255) ? (. - _ebase_address) : __vector_offset_default);
  661. KEEP(*(.vector_255))
  662. /* Default interrupt handler */
  663. __vector_offset_default = . - _ebase_address;
  664. KEEP(*(.vector_default))
  665. } > kseg0_program_mem
  666.  
  667. /* The startup code is in the .reset.startup section.
  668. * Keep this here for backwards compatibility with older
  669. * C32 v1.xx releases.
  670. */
  671. .startup ORIGIN(kseg0_boot_mem) :
  672. {
  673. KEEP(*(.startup))
  674. } > kseg0_boot_mem
  675. /* Code Sections - Note that input sections *(.text) and *(.text.*)
  676. ** are not mapped here. The best-fit allocator locates them,
  677. ** so that .text may flow around absolute sections as needed.
  678. */
  679. .text :
  680. {
  681. *(.stub .gnu.linkonce.t.*)
  682. KEEP (*(.text.*personality*))
  683. *(.mips16.fn.*)
  684. *(.mips16.call.*)
  685. *(.gnu.warning)
  686. . = ALIGN(4) ;
  687. } >kseg0_program_mem
  688. /* Global-namespace object initialization */
  689. .init :
  690. {
  691. KEEP (*crti.o(.init))
  692. KEEP (*crtbegin.o(.init))
  693. KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o *crtn.o ).init))
  694. KEEP (*crtend.o(.init))
  695. KEEP (*crtn.o(.init))
  696. . = ALIGN(4) ;
  697. } >kseg0_program_mem
  698. .fini :
  699. {
  700. KEEP (*(.fini))
  701. . = ALIGN(4) ;
  702. } >kseg0_program_mem
  703. .preinit_array :
  704. {
  705. PROVIDE_HIDDEN (__preinit_array_start = .);
  706. KEEP (*(.preinit_array))
  707. PROVIDE_HIDDEN (__preinit_array_end = .);
  708. . = ALIGN(4) ;
  709. } >kseg0_program_mem
  710. .init_array :
  711. {
  712. PROVIDE_HIDDEN (__init_array_start = .);
  713. KEEP (*(SORT(.init_array.*)))
  714. KEEP (*(.init_array))
  715. PROVIDE_HIDDEN (__init_array_end = .);
  716. . = ALIGN(4) ;
  717. } >kseg0_program_mem
  718. .fini_array :
  719. {
  720. PROVIDE_HIDDEN (__fini_array_start = .);
  721. KEEP (*(SORT(.fini_array.*)))
  722. KEEP (*(.fini_array))
  723. PROVIDE_HIDDEN (__fini_array_end = .);
  724. . = ALIGN(4) ;
  725. } >kseg0_program_mem
  726. .ctors :
  727. {
  728. /* XC32 uses crtbegin.o to find the start of
  729. the constructors, so we make sure it is
  730. first. Because this is a wildcard, it
  731. doesn't matter if the user does not
  732. actually link against crtbegin.o; the
  733. linker won't look for a file to match a
  734. wildcard. The wildcard also means that it
  735. doesn't matter which directory crtbegin.o
  736. is in. */
  737. KEEP (*crtbegin.o(.ctors))
  738. KEEP (*crtbegin?.o(.ctors))
  739. /* We don't want to include the .ctor section from
  740. the crtend.o file until after the sorted ctors.
  741. The .ctor section from the crtend file contains the
  742. end of ctors marker and it must be last */
  743. KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
  744. KEEP (*(SORT(.ctors.*)))
  745. KEEP (*(.ctors))
  746. . = ALIGN(4) ;
  747. } >kseg0_program_mem
  748. .dtors :
  749. {
  750. KEEP (*crtbegin.o(.dtors))
  751. KEEP (*crtbegin?.o(.dtors))
  752. KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
  753. KEEP (*(SORT(.dtors.*)))
  754. KEEP (*(.dtors))
  755. . = ALIGN(4) ;
  756. } >kseg0_program_mem
  757. /* Read-only sections */
  758. .rodata :
  759. {
  760. *( .gnu.linkonce.r.*)
  761. *(.rodata1)
  762. . = ALIGN(4) ;
  763. } >kseg0_program_mem
  764. /*
  765. * Small initialized constant global and static data can be placed in the
  766. * .sdata2 section. This is different from .sdata, which contains small
  767. * initialized non-constant global and static data.
  768. */
  769. .sdata2 ALIGN(4) :
  770. {
  771. *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
  772. . = ALIGN(4) ;
  773. } >kseg0_program_mem
  774. /*
  775. * Uninitialized constant global and static data (i.e., variables which will
  776. * always be zero). Again, this is different from .sbss, which contains
  777. * small non-initialized, non-constant global and static data.
  778. */
  779. .sbss2 ALIGN(4) :
  780. {
  781. *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
  782. . = ALIGN(4) ;
  783. } >kseg0_program_mem
  784. .eh_frame_hdr :
  785. {
  786. *(.eh_frame_hdr)
  787. } >kseg0_program_mem
  788. . = ALIGN(4) ;
  789. .eh_frame : ONLY_IF_RO
  790. {
  791. KEEP (*(.eh_frame))
  792. } >kseg0_program_mem
  793. . = ALIGN(4) ;
  794. .gcc_except_table : ONLY_IF_RO
  795. {
  796. *(.gcc_except_table .gcc_except_table.*)
  797. } >kseg0_program_mem
  798. . = ALIGN(4) ;
  799. .jcr :
  800. {
  801. KEEP (*(.jcr))
  802. . = ALIGN(4) ;
  803. } >kseg0_data_mem
  804. .eh_frame : ONLY_IF_RW
  805. {
  806. KEEP (*(.eh_frame))
  807. } >kseg0_data_mem
  808. . = ALIGN(4) ;
  809. .gcc_except_table : ONLY_IF_RW
  810. {
  811. *(.gcc_except_table .gcc_except_table.*)
  812. } >kseg0_data_mem
  813. . = ALIGN(4) ;
  814. /* Persistent data - Use the new C 'persistent' attribute instead. */
  815. .persist :
  816. {
  817. _persist_begin = .;
  818. *(.persist .persist.*)
  819. *(.pbss .pbss.*)
  820. . = ALIGN(4) ;
  821. _persist_end = .;
  822. } >kseg0_data_mem
  823. /*
  824. * Note that input sections named .data* are not mapped here.
  825. * The best-fit allocator locates them, so that they may flow
  826. * around absolute sections as needed.
  827. */
  828. .data :
  829. {
  830. *( .gnu.linkonce.d.*)
  831. SORT(CONSTRUCTORS)
  832. *(.data1)
  833. . = ALIGN(4) ;
  834. } >kseg0_data_mem
  835. . = .;
  836. _gp = ALIGN(16) + 0x7ff0;
  837. .got ALIGN(4) :
  838. {
  839. *(.got.plt) *(.got)
  840. . = ALIGN(4) ;
  841. } >kseg0_data_mem /* AT>kseg0_program_mem */
  842. /*
  843. * Note that 'small' data sections are still mapped in the linker
  844. * script. This ensures that they are grouped together for
  845. * gp-relative addressing. Absolute sections are allocated after
  846. * the 'small' data sections so small data cannot flow around them.
  847. */
  848. /*
  849. * We want the small data sections together, so single-instruction offsets
  850. * can access them all, and initialized data all before uninitialized, so
  851. * we can shorten the on-disk segment size.
  852. */
  853. .sdata ALIGN(4) :
  854. {
  855. _sdata_begin = . ;
  856. *(.sdata .sdata.* .gnu.linkonce.s.*)
  857. . = ALIGN(4) ;
  858. _sdata_end = . ;
  859. } >kseg0_data_mem
  860. .lit8 :
  861. {
  862. *(.lit8)
  863. } >kseg0_data_mem
  864. .lit4 :
  865. {
  866. *(.lit4)
  867. } >kseg0_data_mem
  868. . = ALIGN (4) ;
  869. _data_end = . ;
  870. _bss_begin = . ;
  871. .sbss ALIGN(4) :
  872. {
  873. _sbss_begin = . ;
  874. *(.dynsbss)
  875. *(.sbss .sbss.* .gnu.linkonce.sb.*)
  876. *(.scommon)
  877. _sbss_end = . ;
  878. . = ALIGN(4) ;
  879. } >kseg0_data_mem
  880. /*
  881. * Align here to ensure that the .bss section occupies space up to
  882. * _end. Align after .bss to ensure correct alignment even if the
  883. * .bss section disappears because there are no input sections.
  884. *
  885. * Note that input sections named .bss* are no longer mapped here.
  886. * The best-fit allocator locates them, so that they may flow
  887. * around absolute sections as needed.
  888. *
  889. */
  890. .bss :
  891. {
  892. *(.dynbss)
  893. *(COMMON)
  894. /* Align here to ensure that the .bss section occupies space up to
  895. _end. Align after .bss to ensure correct alignment even if the
  896. .bss section disappears because there are no input sections. */
  897. . = ALIGN(. != 0 ? 4 : 1);
  898. } >kseg0_data_mem
  899. . = ALIGN(4) ;
  900. _end = . ;
  901. _bss_end = . ;
  902. /*
  903. * The heap and stack are best-fit allocated by the linker after other
  904. * data and bss sections have been allocated.
  905. */
  906. /*
  907. * RAM functions go at the end of our stack and heap allocation.
  908. * Alignment of 2K required by the boundary register (BMXDKPBA).
  909. *
  910. * RAM functions are now allocated by the linker. The linker generates
  911. * _ramfunc_begin and _bmxdkpba_address symbols depending on the
  912. * location of RAM functions.
  913. */
  914. _bmxdudba_address = LENGTH(kseg0_data_mem) ;
  915. _bmxdupba_address = LENGTH(kseg0_data_mem) ;
  916. /* The .pdr section belongs in the absolute section */
  917. /DISCARD/ : { *(.pdr) }
  918. .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
  919. .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
  920. .mdebug.abi32 : { KEEP(*(.mdebug.abi32)) }
  921. .mdebug.abiN32 : { KEEP(*(.mdebug.abiN32)) }
  922. .mdebug.abi64 : { KEEP(*(.mdebug.abi64)) }
  923. .mdebug.abiO64 : { KEEP(*(.mdebug.abiO64)) }
  924. .mdebug.eabi32 : { KEEP(*(.mdebug.eabi32)) }
  925. .mdebug.eabi64 : { KEEP(*(.mdebug.eabi64)) }
  926. .gcc_compiled_long32 : { KEEP(*(.gcc_compiled_long32)) }
  927. .gcc_compiled_long64 : { KEEP(*(.gcc_compiled_long64)) }
  928. /* Stabs debugging sections. */
  929. .stab 0 : { *(.stab) }
  930. .stabstr 0 : { *(.stabstr) }
  931. .stab.excl 0 : { *(.stab.excl) }
  932. .stab.exclstr 0 : { *(.stab.exclstr) }
  933. .stab.index 0 : { *(.stab.index) }
  934. .stab.indexstr 0 : { *(.stab.indexstr) }
  935. .comment 0 : { *(.comment) }
  936. /* DWARF debug sections used by MPLAB X for source-level debugging.
  937. Symbols in the DWARF debugging sections are relative to the beginning
  938. of the section so we begin them at 0. */
  939. /* DWARF 1 */
  940. .debug 0 : { *(.debug) }
  941. .line 0 : { *(.line) }
  942. /* GNU DWARF 1 extensions */
  943. .debug_srcinfo 0 : { *(.debug_srcinfo) }
  944. .debug_sfnames 0 : { *(.debug_sfnames) }
  945. /* DWARF 1.1 and DWARF 2 */
  946. .debug_aranges 0 : { *(.debug_aranges) }
  947. .debug_pubnames 0 : { *(.debug_pubnames) }
  948. /* DWARF 2 */
  949. .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
  950. .debug_abbrev 0 : { *(.debug_abbrev) }
  951. .debug_line 0 : { *(.debug_line) }
  952. .debug_frame 0 : { *(.debug_frame) }
  953. .debug_str 0 : { *(.debug_str) }
  954. .debug_loc 0 : { *(.debug_loc) }
  955. .debug_macinfo 0 : { *(.debug_macinfo) }
  956. /* SGI/MIPS DWARF 2 extensions */
  957. .debug_weaknames 0 : { *(.debug_weaknames) }
  958. .debug_funcnames 0 : { *(.debug_funcnames) }
  959. .debug_typenames 0 : { *(.debug_typenames) }
  960. .debug_varnames 0 : { *(.debug_varnames) }
  961. .debug_pubtypes 0 : { *(.debug_pubtypes) }
  962. .debug_ranges 0 : { *(.debug_ranges) }
  963. /DISCARD/ : { *(.rel.dyn) }
  964. .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
  965. /DISCARD/ : { *(.note.GNU-stack) }
  966. /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.discard) }
  967. /DISCARD/ : { *(._debug_exception) }
  968. /DISCARD/ : { *(.config_*) }
  969. }
  970.  
  971. /*************************************************************************
  972. * L1 Cache initialization symbols
  973. *************************************************************************/
  974. /*
  975. * Provide virtual addresses for cache initialization
  976. * These symbols are used by the pic32_init_cache.o module to set up
  977. * the cache at startup.
  978. */
  979. EXTERN (__pic32_init_cache_program_base_addr)
  980. PROVIDE (__pic32_init_cache_program_base_addr = 0x9D000000) ;
  981. EXTERN (__pic32_init_cache_data_base_addr)
  982. PROVIDE (__pic32_init_cache_data_base_addr = 0x80000000) ;
  983.  
  984. /*************************************************************************
  985. * TLB-Based MMU Initialization section for EBI/SQI memory regions
  986. *************************************************************************/
  987. /*
  988. * Provide virtual and physical addresses of the SQI for TLB initialization
  989. * These symbols are used below to create a table, which is in turn used to
  990. * initialize the TLB at startup.
  991. */
  992. EXTERN (__pic32_init_sqi_kseg2_virtual_base_addr)
  993. PROVIDE (__pic32_init_sqi_kseg2_virtual_base_addr = 0xD0000000) ;
  994. EXTERN (__pic32_init_sqi_kseg2_physical_base_addr)
  995. PROVIDE (__pic32_init_sqi_kseg2_physical_base_addr = 0x30000000) ;
  996. EXTERN (__pic32_init_sqi_kseg2_entrylo0_bitset)
  997. PROVIDE (__pic32_init_sqi_kseg2_entrylo0_bitset = 0x1F) ;
  998.  
  999. /* ENTRYHI = VPN2<31:13> VPN2X<12:11> 0<10:8> ASID<7:0> */
  1000. __pic32_tlb_0_entryhi = __pic32_init_sqi_kseg2_virtual_base_addr ;
  1001.  
  1002.  
  1003. /* Create one 64MB page table entry consisting of two 32MB physical pages.
  1004. * ENTRYLO0 = RI<31> XI<30> 0<29:26> PFN<25:6> C<5:3> D<2> V<1> G<0>
  1005. * Shift __pic32_init_sqi_kseg3_physical_base_addr to PFN.
  1006. * Bitwise-OR the other bits of ENTRYLO0.
  1007. */
  1008. __pic32_tlb_0_entrylo0 = (__pic32_init_sqi_kseg2_physical_base_addr >> 6) | __pic32_init_sqi_kseg2_entrylo0_bitset ;
  1009.  
  1010.  
  1011. /* ENTRYLO1 = RI<31> XI<30> 0<29:26> PFN<25:6> C<5:3> D<2> V<1> G<0> */
  1012. __pic32_tlb_0_entrylo1 = __pic32_tlb_0_entrylo0 | 0x00080000 ;
  1013.  
  1014. EXTERN (__pic32_init_sqi_kseg3_virtual_base_addr)
  1015. PROVIDE (__pic32_init_sqi_kseg3_virtual_base_addr = 0xF0000000) ;
  1016. EXTERN (__pic32_init_sqi_kseg3_physical_base_addr)
  1017. PROVIDE (__pic32_init_sqi_kseg3_physical_base_addr = 0x30000000) ;
  1018. EXTERN (__pic32_init_sqi_kseg3_entrylo0_bitset)
  1019. PROVIDE (__pic32_init_sqi_kseg3_entrylo0_bitset = 0x17) ;
  1020.  
  1021. /* ENTRYHI = VPN2<31:13> VPN2X<12:11> 0<10:8> ASID<7:0> */
  1022. __pic32_tlb_1_entryhi = __pic32_init_sqi_kseg3_virtual_base_addr ;
  1023.  
  1024.  
  1025. /* Create one 64MB page table entry consisting of two 32MB physical pages.
  1026. * ENTRYLO0 = RI<31> XI<30> 0<29:26> PFN<25:6> C<5:3> D<2> V<1> G<0>
  1027. * Shift __pic32_init_sqi_kseg3_physical_base_addr to PFN.
  1028. * Bitwise-OR the other bits of ENTRYLO0.
  1029. */
  1030. __pic32_tlb_1_entrylo0 = (__pic32_init_sqi_kseg3_physical_base_addr >> 6) | __pic32_init_sqi_kseg3_entrylo0_bitset ;
  1031.  
  1032.  
  1033. /* ENTRYLO1 = RI<31> XI<30> 0<29:26> PFN<25:6> C<5:3> D<2> V<1> G<0> */
  1034. __pic32_tlb_1_entrylo1 = __pic32_tlb_1_entrylo0 | 0x00080000 ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement