Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

153 lines
6.4KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>PRU Options (Using the GNU Compiler Collection (GCC))</title>
  21. <meta name="description" content="PRU Options (Using the GNU Compiler Collection (GCC))">
  22. <meta name="keywords" content="PRU Options (Using the GNU Compiler Collection (GCC))">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="Submodel-Options.html#Submodel-Options" rel="up" title="Submodel Options">
  30. <link href="RISC_002dV-Options.html#RISC_002dV-Options" rel="next" title="RISC-V Options">
  31. <link href="PowerPC-Options.html#PowerPC-Options" rel="prev" title="PowerPC Options">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; font-weight: normal}
  55. span.sansserif {font-family: sans-serif; font-weight: normal}
  56. ul.no-bullet {list-style: none}
  57. -->
  58. </style>
  59. </head>
  60. <body lang="en">
  61. <a name="PRU-Options"></a>
  62. <div class="header">
  63. <p>
  64. Next: <a href="RISC_002dV-Options.html#RISC_002dV-Options" accesskey="n" rel="next">RISC-V Options</a>, Previous: <a href="PowerPC-Options.html#PowerPC-Options" accesskey="p" rel="prev">PowerPC Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  65. </div>
  66. <hr>
  67. <a name="PRU-Options-1"></a>
  68. <h4 class="subsection">3.19.41 PRU Options</h4>
  69. <a name="index-PRU-Options"></a>
  70. <p>These command-line options are defined for PRU target:
  71. </p>
  72. <dl compact="compact">
  73. <dt><code>-minrt</code></dt>
  74. <dd><a name="index-minrt-1"></a>
  75. <p>Link with a minimum runtime environment, with no support for static
  76. initializers and constructors. Using this option can significantly reduce
  77. the size of the final ELF binary. Beware that the compiler could still
  78. generate code with static initializers and constructors. It is up to the
  79. programmer to ensure that the source program will not use those features.
  80. </p>
  81. </dd>
  82. <dt><code>-mmcu=<var>mcu</var></code></dt>
  83. <dd><a name="index-mmcu-2"></a>
  84. <p>Specify the PRU MCU variant to use. Check Newlib for the exact list of
  85. supported MCUs.
  86. </p>
  87. </dd>
  88. <dt><code>-mno-relax</code></dt>
  89. <dd><a name="index-mno_002drelax"></a>
  90. <p>Make GCC pass the <samp>--no-relax</samp> command-line option to the linker
  91. instead of the <samp>--relax</samp> option.
  92. </p>
  93. </dd>
  94. <dt><code>-mloop</code></dt>
  95. <dd><a name="index-mloop"></a>
  96. <p>Allow (or do not allow) GCC to use the LOOP instruction.
  97. </p>
  98. </dd>
  99. <dt><code>-mabi=<var>variant</var></code></dt>
  100. <dd><a name="index-mabi-2"></a>
  101. <p>Specify the ABI variant to output code for. <samp>-mabi=ti</samp> selects the
  102. unmodified TI ABI while <samp>-mabi=gnu</samp> selects a GNU variant that copes
  103. more naturally with certain GCC assumptions. These are the differences:
  104. </p>
  105. <dl compact="compact">
  106. <dt>&lsquo;<samp>Function Pointer Size</samp>&rsquo;</dt>
  107. <dd><p>TI ABI specifies that function (code) pointers are 16-bit, whereas GNU
  108. supports only 32-bit data and code pointers.
  109. </p>
  110. </dd>
  111. <dt>&lsquo;<samp>Optional Return Value Pointer</samp>&rsquo;</dt>
  112. <dd><p>Function return values larger than 64 bits are passed by using a hidden
  113. pointer as the first argument of the function. TI ABI, though, mandates that
  114. the pointer can be NULL in case the caller is not using the returned value.
  115. GNU always passes and expects a valid return value pointer.
  116. </p>
  117. </dd>
  118. </dl>
  119. <p>The current <samp>-mabi=ti</samp> implementation simply raises a compile error
  120. when any of the above code constructs is detected. As a consequence
  121. the standard C library cannot be built and it is omitted when linking with
  122. <samp>-mabi=ti</samp>.
  123. </p>
  124. <p>Relaxation is a GNU feature and for safety reasons is disabled when using
  125. <samp>-mabi=ti</samp>. The TI toolchain does not emit relocations for QBBx
  126. instructions, so the GNU linker cannot adjust them when shortening adjacent
  127. LDI32 pseudo instructions.
  128. </p>
  129. </dd>
  130. </dl>
  131. <hr>
  132. <div class="header">
  133. <p>
  134. Next: <a href="RISC_002dV-Options.html#RISC_002dV-Options" accesskey="n" rel="next">RISC-V Options</a>, Previous: <a href="PowerPC-Options.html#PowerPC-Options" accesskey="p" rel="prev">PowerPC Options</a>, Up: <a href="Submodel-Options.html#Submodel-Options" accesskey="u" rel="up">Submodel Options</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  135. </div>
  136. </body>
  137. </html>