LPC54608J512_flash.scf 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #! armcc -E
  2. /*
  3. ** ###################################################################
  4. ** Processors: LPC54608J512BD208
  5. ** LPC54608J512ET180
  6. **
  7. ** Compiler: Keil ARM C/C++ Compiler
  8. ** Reference manual: LPC54S60x/LPC5460x User manual Rev.0.9 7 Nov 2016
  9. ** Version: rev. 1.1, 2016-11-25
  10. ** Build: b161227
  11. **
  12. ** Abstract:
  13. ** Linker file for the Keil ARM C/C++ Compiler
  14. **
  15. ** Copyright (c) 2016 Freescale Semiconductor, Inc.
  16. ** Copyright 2016 - 2017 NXP
  17. ** Redistribution and use in source and binary forms, with or without modification,
  18. ** are permitted provided that the following conditions are met:
  19. **
  20. ** o Redistributions of source code must retain the above copyright notice, this list
  21. ** of conditions and the following disclaimer.
  22. **
  23. ** o Redistributions in binary form must reproduce the above copyright notice, this
  24. ** list of conditions and the following disclaimer in the documentation and/or
  25. ** other materials provided with the distribution.
  26. **
  27. ** o Neither the name of the copyright holder nor the names of its
  28. ** contributors may be used to endorse or promote products derived from this
  29. ** software without specific prior written permission.
  30. **
  31. ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  32. ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  33. ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  34. ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
  35. ** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  36. ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  37. ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  38. ** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  39. ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  40. ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  41. **
  42. ** http: www.nxp.com
  43. ** mail: support@nxp.com
  44. **
  45. ** ###################################################################
  46. */
  47. #if (defined(__ram_vector_table__))
  48. #define __ram_vector_table_size__ 0x00000400
  49. #else
  50. #define __ram_vector_table_size__ 0x00000000
  51. #endif
  52. #define m_interrupts_start 0x00000000
  53. #define m_interrupts_size 0x00000400
  54. #define m_text_start 0x00000400
  55. #define m_text_size 0x0007FC00
  56. #define m_interrupts_ram_start 0x20000000
  57. #define m_interrupts_ram_size __ram_vector_table_size__
  58. #define m_data_start (m_interrupts_ram_start + m_interrupts_ram_size)
  59. #define m_data_size 0x00018000/*(0x00028000 - m_interrupts_ram_size)*/
  60. #define m_usb_sram_start 0x40100000
  61. #define m_usb_sram_size 0x00002000
  62. /* USB BDT size */
  63. #define usb_bdt_size 0x0
  64. /* Sizes */
  65. #if (defined(__stack_size__))
  66. #define Stack_Size __stack_size__
  67. #else
  68. #define Stack_Size 0x0400
  69. #endif
  70. #if (defined(__heap_size__))
  71. #define Heap_Size __heap_size__
  72. #else
  73. #define Heap_Size 0x0400
  74. #endif
  75. LR_m_text m_interrupts_start m_text_start+m_text_size-m_interrupts_start { ; load region size_region
  76. VECTOR_ROM m_interrupts_start m_interrupts_size { ; load address = execution address
  77. * (RESET,+FIRST)
  78. }
  79. ER_m_text m_text_start FIXED m_text_size { ; load address = execution address
  80. * (InRoot$$Sections)
  81. .ANY (+RO)
  82. }
  83. #if (defined(__ram_vector_table__))
  84. VECTOR_RAM m_interrupts_ram_start EMPTY m_interrupts_ram_size {
  85. }
  86. #else
  87. VECTOR_RAM m_interrupts_start EMPTY 0 {
  88. }
  89. #endif
  90. RW_m_data m_data_start m_data_size-Stack_Size-Heap_Size { ; RW data
  91. .ANY (+RW +ZI)
  92. }
  93. ARM_LIB_HEAP +0 EMPTY Heap_Size { ; Heap region growing up
  94. }
  95. ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down
  96. }
  97. }
  98. LR_m_usb_bdt m_usb_sram_start usb_bdt_size {
  99. ER_m_usb_bdt m_usb_sram_start UNINIT usb_bdt_size {
  100. * (m_usb_bdt)
  101. }
  102. }
  103. LR_m_usb_ram (m_usb_sram_start + usb_bdt_size) (m_usb_sram_size - usb_bdt_size) {
  104. ER_m_usb_ram (m_usb_sram_start + usb_bdt_size) UNINIT (m_usb_sram_size - usb_bdt_size) {
  105. * (m_usb_global)
  106. }
  107. }