You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

318 lines
15KB

  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>Blackfin Options (Using the GNU Compiler Collection (GCC))</title>
  21. <meta name="description" content="Blackfin Options (Using the GNU Compiler Collection (GCC))">
  22. <meta name="keywords" content="Blackfin 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="C6X-Options.html#C6X-Options" rel="next" title="C6X Options">
  31. <link href="AVR-Options.html#AVR-Options" rel="prev" title="AVR 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="Blackfin-Options"></a>
  62. <div class="header">
  63. <p>
  64. Next: <a href="C6X-Options.html#C6X-Options" accesskey="n" rel="next">C6X Options</a>, Previous: <a href="AVR-Options.html#AVR-Options" accesskey="p" rel="prev">AVR 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="Blackfin-Options-1"></a>
  68. <h4 class="subsection">3.19.7 Blackfin Options</h4>
  69. <a name="index-Blackfin-Options"></a>
  70. <dl compact="compact">
  71. <dt><code>-mcpu=<var>cpu</var><span class="roman">[</span>-<var>sirevision</var><span class="roman">]</span></code></dt>
  72. <dd><a name="index-mcpu_003d"></a>
  73. <p>Specifies the name of the target Blackfin processor. Currently, <var>cpu</var>
  74. can be one of &lsquo;<samp>bf512</samp>&rsquo;, &lsquo;<samp>bf514</samp>&rsquo;, &lsquo;<samp>bf516</samp>&rsquo;, &lsquo;<samp>bf518</samp>&rsquo;,
  75. &lsquo;<samp>bf522</samp>&rsquo;, &lsquo;<samp>bf523</samp>&rsquo;, &lsquo;<samp>bf524</samp>&rsquo;, &lsquo;<samp>bf525</samp>&rsquo;, &lsquo;<samp>bf526</samp>&rsquo;,
  76. &lsquo;<samp>bf527</samp>&rsquo;, &lsquo;<samp>bf531</samp>&rsquo;, &lsquo;<samp>bf532</samp>&rsquo;, &lsquo;<samp>bf533</samp>&rsquo;,
  77. &lsquo;<samp>bf534</samp>&rsquo;, &lsquo;<samp>bf536</samp>&rsquo;, &lsquo;<samp>bf537</samp>&rsquo;, &lsquo;<samp>bf538</samp>&rsquo;, &lsquo;<samp>bf539</samp>&rsquo;,
  78. &lsquo;<samp>bf542</samp>&rsquo;, &lsquo;<samp>bf544</samp>&rsquo;, &lsquo;<samp>bf547</samp>&rsquo;, &lsquo;<samp>bf548</samp>&rsquo;, &lsquo;<samp>bf549</samp>&rsquo;,
  79. &lsquo;<samp>bf542m</samp>&rsquo;, &lsquo;<samp>bf544m</samp>&rsquo;, &lsquo;<samp>bf547m</samp>&rsquo;, &lsquo;<samp>bf548m</samp>&rsquo;, &lsquo;<samp>bf549m</samp>&rsquo;,
  80. &lsquo;<samp>bf561</samp>&rsquo;, &lsquo;<samp>bf592</samp>&rsquo;.
  81. </p>
  82. <p>The optional <var>sirevision</var> specifies the silicon revision of the target
  83. Blackfin processor. Any workarounds available for the targeted silicon revision
  84. are enabled. If <var>sirevision</var> is &lsquo;<samp>none</samp>&rsquo;, no workarounds are enabled.
  85. If <var>sirevision</var> is &lsquo;<samp>any</samp>&rsquo;, all workarounds for the targeted processor
  86. are enabled. The <code>__SILICON_REVISION__</code> macro is defined to two
  87. hexadecimal digits representing the major and minor numbers in the silicon
  88. revision. If <var>sirevision</var> is &lsquo;<samp>none</samp>&rsquo;, the <code>__SILICON_REVISION__</code>
  89. is not defined. If <var>sirevision</var> is &lsquo;<samp>any</samp>&rsquo;, the
  90. <code>__SILICON_REVISION__</code> is defined to be <code>0xffff</code>.
  91. If this optional <var>sirevision</var> is not used, GCC assumes the latest known
  92. silicon revision of the targeted Blackfin processor.
  93. </p>
  94. <p>GCC defines a preprocessor macro for the specified <var>cpu</var>.
  95. For the &lsquo;<samp>bfin-elf</samp>&rsquo; toolchain, this option causes the hardware BSP
  96. provided by libgloss to be linked in if <samp>-msim</samp> is not given.
  97. </p>
  98. <p>Without this option, &lsquo;<samp>bf532</samp>&rsquo; is used as the processor by default.
  99. </p>
  100. <p>Note that support for &lsquo;<samp>bf561</samp>&rsquo; is incomplete. For &lsquo;<samp>bf561</samp>&rsquo;,
  101. only the preprocessor macro is defined.
  102. </p>
  103. </dd>
  104. <dt><code>-msim</code></dt>
  105. <dd><a name="index-msim"></a>
  106. <p>Specifies that the program will be run on the simulator. This causes
  107. the simulator BSP provided by libgloss to be linked in. This option
  108. has effect only for &lsquo;<samp>bfin-elf</samp>&rsquo; toolchain.
  109. Certain other options, such as <samp>-mid-shared-library</samp> and
  110. <samp>-mfdpic</samp>, imply <samp>-msim</samp>.
  111. </p>
  112. </dd>
  113. <dt><code>-momit-leaf-frame-pointer</code></dt>
  114. <dd><a name="index-momit_002dleaf_002dframe_002dpointer-1"></a>
  115. <p>Don&rsquo;t keep the frame pointer in a register for leaf functions. This
  116. avoids the instructions to save, set up and restore frame pointers and
  117. makes an extra register available in leaf functions.
  118. </p>
  119. </dd>
  120. <dt><code>-mspecld-anomaly</code></dt>
  121. <dd><a name="index-mspecld_002danomaly"></a>
  122. <p>When enabled, the compiler ensures that the generated code does not
  123. contain speculative loads after jump instructions. If this option is used,
  124. <code>__WORKAROUND_SPECULATIVE_LOADS</code> is defined.
  125. </p>
  126. </dd>
  127. <dt><code>-mno-specld-anomaly</code></dt>
  128. <dd><a name="index-mno_002dspecld_002danomaly"></a>
  129. <a name="index-mspecld_002danomaly-1"></a>
  130. <p>Don&rsquo;t generate extra code to prevent speculative loads from occurring.
  131. </p>
  132. </dd>
  133. <dt><code>-mcsync-anomaly</code></dt>
  134. <dd><a name="index-mcsync_002danomaly"></a>
  135. <p>When enabled, the compiler ensures that the generated code does not
  136. contain CSYNC or SSYNC instructions too soon after conditional branches.
  137. If this option is used, <code>__WORKAROUND_SPECULATIVE_SYNCS</code> is defined.
  138. </p>
  139. </dd>
  140. <dt><code>-mno-csync-anomaly</code></dt>
  141. <dd><a name="index-mno_002dcsync_002danomaly"></a>
  142. <a name="index-mcsync_002danomaly-1"></a>
  143. <p>Don&rsquo;t generate extra code to prevent CSYNC or SSYNC instructions from
  144. occurring too soon after a conditional branch.
  145. </p>
  146. </dd>
  147. <dt><code>-mlow64k</code></dt>
  148. <dd><a name="index-mlow64k"></a>
  149. <p>When enabled, the compiler is free to take advantage of the knowledge that
  150. the entire program fits into the low 64k of memory.
  151. </p>
  152. </dd>
  153. <dt><code>-mno-low64k</code></dt>
  154. <dd><a name="index-mno_002dlow64k"></a>
  155. <p>Assume that the program is arbitrarily large. This is the default.
  156. </p>
  157. </dd>
  158. <dt><code>-mstack-check-l1</code></dt>
  159. <dd><a name="index-mstack_002dcheck_002dl1"></a>
  160. <p>Do stack checking using information placed into L1 scratchpad memory by the
  161. uClinux kernel.
  162. </p>
  163. </dd>
  164. <dt><code>-mid-shared-library</code></dt>
  165. <dd><a name="index-mid_002dshared_002dlibrary"></a>
  166. <p>Generate code that supports shared libraries via the library ID method.
  167. This allows for execute in place and shared libraries in an environment
  168. without virtual memory management. This option implies <samp>-fPIC</samp>.
  169. With a &lsquo;<samp>bfin-elf</samp>&rsquo; target, this option implies <samp>-msim</samp>.
  170. </p>
  171. </dd>
  172. <dt><code>-mno-id-shared-library</code></dt>
  173. <dd><a name="index-mno_002did_002dshared_002dlibrary"></a>
  174. <a name="index-mid_002dshared_002dlibrary-1"></a>
  175. <p>Generate code that doesn&rsquo;t assume ID-based shared libraries are being used.
  176. This is the default.
  177. </p>
  178. </dd>
  179. <dt><code>-mleaf-id-shared-library</code></dt>
  180. <dd><a name="index-mleaf_002did_002dshared_002dlibrary"></a>
  181. <p>Generate code that supports shared libraries via the library ID method,
  182. but assumes that this library or executable won&rsquo;t link against any other
  183. ID shared libraries. That allows the compiler to use faster code for jumps
  184. and calls.
  185. </p>
  186. </dd>
  187. <dt><code>-mno-leaf-id-shared-library</code></dt>
  188. <dd><a name="index-mno_002dleaf_002did_002dshared_002dlibrary"></a>
  189. <a name="index-mleaf_002did_002dshared_002dlibrary-1"></a>
  190. <p>Do not assume that the code being compiled won&rsquo;t link against any ID shared
  191. libraries. Slower code is generated for jump and call insns.
  192. </p>
  193. </dd>
  194. <dt><code>-mshared-library-id=n</code></dt>
  195. <dd><a name="index-mshared_002dlibrary_002did"></a>
  196. <p>Specifies the identification number of the ID-based shared library being
  197. compiled. Specifying a value of 0 generates more compact code; specifying
  198. other values forces the allocation of that number to the current
  199. library but is no more space- or time-efficient than omitting this option.
  200. </p>
  201. </dd>
  202. <dt><code>-msep-data</code></dt>
  203. <dd><a name="index-msep_002ddata"></a>
  204. <p>Generate code that allows the data segment to be located in a different
  205. area of memory from the text segment. This allows for execute in place in
  206. an environment without virtual memory management by eliminating relocations
  207. against the text section.
  208. </p>
  209. </dd>
  210. <dt><code>-mno-sep-data</code></dt>
  211. <dd><a name="index-mno_002dsep_002ddata"></a>
  212. <a name="index-msep_002ddata-1"></a>
  213. <p>Generate code that assumes that the data segment follows the text segment.
  214. This is the default.
  215. </p>
  216. </dd>
  217. <dt><code>-mlong-calls</code></dt>
  218. <dt><code>-mno-long-calls</code></dt>
  219. <dd><a name="index-mlong_002dcalls-3"></a>
  220. <a name="index-mno_002dlong_002dcalls-1"></a>
  221. <p>Tells the compiler to perform function calls by first loading the
  222. address of the function into a register and then performing a subroutine
  223. call on this register. This switch is needed if the target function
  224. lies outside of the 24-bit addressing range of the offset-based
  225. version of subroutine call instruction.
  226. </p>
  227. <p>This feature is not enabled by default. Specifying
  228. <samp>-mno-long-calls</samp> restores the default behavior. Note these
  229. switches have no effect on how the compiler generates code to handle
  230. function calls via function pointers.
  231. </p>
  232. </dd>
  233. <dt><code>-mfast-fp</code></dt>
  234. <dd><a name="index-mfast_002dfp"></a>
  235. <p>Link with the fast floating-point library. This library relaxes some of
  236. the IEEE floating-point standard&rsquo;s rules for checking inputs against
  237. Not-a-Number (NAN), in the interest of performance.
  238. </p>
  239. </dd>
  240. <dt><code>-minline-plt</code></dt>
  241. <dd><a name="index-minline_002dplt"></a>
  242. <p>Enable inlining of PLT entries in function calls to functions that are
  243. not known to bind locally. It has no effect without <samp>-mfdpic</samp>.
  244. </p>
  245. </dd>
  246. <dt><code>-mmulticore</code></dt>
  247. <dd><a name="index-mmulticore"></a>
  248. <p>Build a standalone application for multicore Blackfin processors.
  249. This option causes proper start files and link scripts supporting
  250. multicore to be used, and defines the macro <code>__BFIN_MULTICORE</code>.
  251. It can only be used with <samp>-mcpu=bf561<span class="roman">[</span>-<var>sirevision</var><span class="roman">]</span></samp>.
  252. </p>
  253. <p>This option can be used with <samp>-mcorea</samp> or <samp>-mcoreb</samp>, which
  254. selects the one-application-per-core programming model. Without
  255. <samp>-mcorea</samp> or <samp>-mcoreb</samp>, the single-application/dual-core
  256. programming model is used. In this model, the main function of Core B
  257. should be named as <code>coreb_main</code>.
  258. </p>
  259. <p>If this option is not used, the single-core application programming
  260. model is used.
  261. </p>
  262. </dd>
  263. <dt><code>-mcorea</code></dt>
  264. <dd><a name="index-mcorea"></a>
  265. <p>Build a standalone application for Core A of BF561 when using
  266. the one-application-per-core programming model. Proper start files
  267. and link scripts are used to support Core A, and the macro
  268. <code>__BFIN_COREA</code> is defined.
  269. This option can only be used in conjunction with <samp>-mmulticore</samp>.
  270. </p>
  271. </dd>
  272. <dt><code>-mcoreb</code></dt>
  273. <dd><a name="index-mcoreb"></a>
  274. <p>Build a standalone application for Core B of BF561 when using
  275. the one-application-per-core programming model. Proper start files
  276. and link scripts are used to support Core B, and the macro
  277. <code>__BFIN_COREB</code> is defined. When this option is used, <code>coreb_main</code>
  278. should be used instead of <code>main</code>.
  279. This option can only be used in conjunction with <samp>-mmulticore</samp>.
  280. </p>
  281. </dd>
  282. <dt><code>-msdram</code></dt>
  283. <dd><a name="index-msdram"></a>
  284. <p>Build a standalone application for SDRAM. Proper start files and
  285. link scripts are used to put the application into SDRAM, and the macro
  286. <code>__BFIN_SDRAM</code> is defined.
  287. The loader should initialize SDRAM before loading the application.
  288. </p>
  289. </dd>
  290. <dt><code>-micplb</code></dt>
  291. <dd><a name="index-micplb"></a>
  292. <p>Assume that ICPLBs are enabled at run time. This has an effect on certain
  293. anomaly workarounds. For Linux targets, the default is to assume ICPLBs
  294. are enabled; for standalone applications the default is off.
  295. </p></dd>
  296. </dl>
  297. <hr>
  298. <div class="header">
  299. <p>
  300. Next: <a href="C6X-Options.html#C6X-Options" accesskey="n" rel="next">C6X Options</a>, Previous: <a href="AVR-Options.html#AVR-Options" accesskey="p" rel="prev">AVR 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>
  301. </div>
  302. </body>
  303. </html>