lnk70f3454.xcl 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. //-------------------------------------------------------------------------
  2. // XLINK command file template for V850E microcontroller uPD70F3454.
  3. //
  4. // This file can be used to link object files from the V850E
  5. // Assembler, AV850, and the C/C++ compiler ICCV850.
  6. //
  7. // This file is generated from the device file:
  8. // DF3454.800
  9. // Copyright (C) NEC Corporation 2007
  10. // Format version 2.20, File version 1.00
  11. //-------------------------------------------------------------------------
  12. //-------------------------------------------------------------------------
  13. // The following segments are defined in this template link file:
  14. //
  15. // INTVEC -- Interrupt vectors.
  16. // TRAPVEC -- Trap vector.
  17. // CLTVEC -- Calltable vectors.
  18. // CSTART -- The C/C++ startup code.
  19. // RCODE -- Code used by C/C++ run-time library.
  20. // ICODE -- Code used by interrupt functions.
  21. // CLTCODE -- Code of calltable functions.
  22. // CODE -- Program code.
  23. // DIFUNCT -- Dynamic initialization vector used by C++
  24. // CSTACK -- The stack used by C/C++ programs.
  25. // HEAP -- The heap used for malloc and free
  26. // SADDR7_x -- Variables used by __saddr (128 byte offset).
  27. // SADDR8_x -- Variables used by __saddr (256 byte offset).
  28. // NEAR_x -- Variables used by __near (must be +- 32KB from address 0).
  29. // BREL_x -- Variables used by __brel.
  30. // HUGE_x -- Variables used by __huge.
  31. //
  32. // Where _x could be one of:
  33. //
  34. // _BASE -- An empty placeholder segment that should be placed
  35. // in front of the other segments (SADDR and BREL).
  36. // _CBASE -- An empty placeholder segment that should be placed
  37. // in front of the other segments (BREL_C).
  38. // _Z -- Initialized data (initvalue = 0 or without init value).
  39. // _I -- Initialized data (initvalue != 0).
  40. // _ID -- The inial values of _I.
  41. // _N -- Uninitialized data, used by __no_init.
  42. // _C -- Constants.
  43. //
  44. // NOTE: Be sure to use end values for the defined addresses.
  45. //-------------------------------------------------------------------------
  46. //-------------------------------------------------------------------------
  47. // Define CPU
  48. //-------------------------------------------------------------------------
  49. -cv850
  50. //-------------------------------------------------------------------------
  51. // Size of the stack.
  52. // Remove comment and modify number if used from command line.
  53. //-------------------------------------------------------------------------
  54. //-D_CSTACK_SIZE=400
  55. //-------------------------------------------------------------------------
  56. // Size of the heap.
  57. // Remove comment and modify number if used from command line.
  58. //-------------------------------------------------------------------------
  59. //-D_HEAP_SIZE=400
  60. //-------------------------------------------------------------------------
  61. // Define the format functions used by printf/scanf.
  62. // Default is full formatting.
  63. // Remove appropriate comment(s) to get reduced formatting
  64. // if used from command line.
  65. //-------------------------------------------------------------------------
  66. //-e_PrintfTiny=_Printf
  67. //-e_PrintfSmall=_Printf
  68. //-e_PrintfLarge=_Printf
  69. //-e_ScanfSmall=_Scanf
  70. //-e_ScanfLarge=_Scanf
  71. //-------------------------------------------------------------------------
  72. // Define if row buffering should be used by terminal output.
  73. // Default is no buffering.
  74. // Remove comment to get buffered terminal output if used from command line.
  75. //-------------------------------------------------------------------------
  76. //-e__write_buffered=__write
  77. ///////////////////////////////////////////////////////////////////////////
  78. // Allocate the read only segments that are mapped to ROM.
  79. ///////////////////////////////////////////////////////////////////////////
  80. -Z(CODE)INTVEC=00000000-000007CF
  81. -Z(CONST)SECUID=00000070-00000079
  82. //-------------------------------------------------------------------------
  83. // BREL_CBASE is an empty placeholer segment, it should be placed in
  84. // front of the BREL_C segments holding constant data.
  85. //-------------------------------------------------------------------------
  86. -Z(CONST)NEAR_C=000007D0-00007FFF
  87. -Z(CONST)BREL_CBASE,BREL_C=000007D0-0000FFFF
  88. -Z(CONST)HUGE_C=000007D0-0003FFFB
  89. -Z(CODE)CSTART,RCODE,ICODE,TRAPVEC,DIFUNCT=000007D0-0003FFFB
  90. -Z(CONST)SADDR7_ID,SADDR8_ID,NEAR_ID,BREL_ID,HUGE_ID=000007D0-0003FFFB
  91. -Z(CONST)CLTVEC=000007D0-0003FFFB
  92. -Z(CODE)CLTCODE,CODE=000007D0-0003FFFB
  93. //-------------------------------------------------------------------------
  94. // The CHECKSUM segment must be defined when ROM checksum should
  95. // be generated.
  96. //-------------------------------------------------------------------------
  97. -Z(CONST)CHECKSUM=0003FFFC-0003FFFF
  98. ///////////////////////////////////////////////////////////////////////////
  99. // Allocate the read/write segments that are mapped to RAM.
  100. ///////////////////////////////////////////////////////////////////////////
  101. //-------------------------------------------------------------------------
  102. // Short loads relative from EP with 7 and 8 bit offset.
  103. //
  104. // SADDR_BASE is an empty segment that mark the beginning of the saddr
  105. // data segments.
  106. //-------------------------------------------------------------------------
  107. -Z(DATA)SADDR_BASE=FFFFC000
  108. -Z(DATA)SADDR7_I,SADDR7_Z,SADDR7_N=FFFFC000-FFFFC07F
  109. -Z(DATA)SADDR8_I,SADDR8_Z,SADDR8_N=FFFFC000-FFFFC0FF
  110. //-------------------------------------------------------------------------
  111. // 16-bit access from GP.
  112. // BREL_BASE is an empty placeholer segment, it should be placed in
  113. // front of the DATA (i.e. RAM) BREL segments.
  114. //-------------------------------------------------------------------------
  115. -Z(DATA)BREL_BASE,BREL_I,BREL_Z,BREL_N=FFFFC000-FFFFEFFF
  116. //-------------------------------------------------------------------------
  117. // Global and 32-bit offset from GP.
  118. // The rest of the external memory (all external memory not used
  119. // by BREL segment variables) is addressed with HUGE memory model.
  120. //-------------------------------------------------------------------------
  121. -Z(DATA)HUGE_I,HUGE_Z,HUGE_N=FFFFBFFC-FFFFBFFC // No memory availabale
  122. //-------------------------------------------------------------------------
  123. // Data relative from zero with 16 bit offset.
  124. // This segment is for TINY data model. All internal memory, SFR,
  125. // and CONST variables in area 0000-7FFF may be accessed.
  126. //-------------------------------------------------------------------------
  127. -Z(DATA)NEAR_Z,NEAR_I,NEAR_N=FFFFC000-FFFFEFFF
  128. //-------------------------------------------------------------------------
  129. // The stack and the heap.
  130. //-------------------------------------------------------------------------
  131. -Z(DATA)CSTACK+_CSTACK_SIZE,HEAP+_HEAP_SIZE=FFFFC000-FFFFEFFF
  132. // Set up near RT_HEAP
  133. //fify 20100505 HEAP for RTT
  134. -Z(DATA)RT_HEAP+800=FFFFC000-FFFFEFFF
  135. //-------------------------------------------------------------------------
  136. // End of File
  137. //-------------------------------------------------------------------------