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.

MeP-Variable-Attributes.html 7.1KB

3 yıl önce
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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>MeP Variable Attributes (Using the GNU Compiler Collection (GCC))</title>
  21. <meta name="description" content="MeP Variable Attributes (Using the GNU Compiler Collection (GCC))">
  22. <meta name="keywords" content="MeP Variable Attributes (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="Variable-Attributes.html#Variable-Attributes" rel="up" title="Variable Attributes">
  30. <link href="Microsoft-Windows-Variable-Attributes.html#Microsoft-Windows-Variable-Attributes" rel="next" title="Microsoft Windows Variable Attributes">
  31. <link href="M32R_002fD-Variable-Attributes.html#M32R_002fD-Variable-Attributes" rel="prev" title="M32R/D Variable Attributes">
  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="MeP-Variable-Attributes"></a>
  62. <div class="header">
  63. <p>
  64. Next: <a href="Microsoft-Windows-Variable-Attributes.html#Microsoft-Windows-Variable-Attributes" accesskey="n" rel="next">Microsoft Windows Variable Attributes</a>, Previous: <a href="M32R_002fD-Variable-Attributes.html#M32R_002fD-Variable-Attributes" accesskey="p" rel="prev">M32R/D Variable Attributes</a>, Up: <a href="Variable-Attributes.html#Variable-Attributes" accesskey="u" rel="up">Variable Attributes</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="MeP-Variable-Attributes-1"></a>
  68. <h4 class="subsection">6.34.8 MeP Variable Attributes</h4>
  69. <p>The MeP target has a number of addressing modes and busses. The
  70. <code>near</code> space spans the standard memory space&rsquo;s first 16 megabytes
  71. (24 bits). The <code>far</code> space spans the entire 32-bit memory space.
  72. The <code>based</code> space is a 128-byte region in the memory space that
  73. is addressed relative to the <code>$tp</code> register. The <code>tiny</code>
  74. space is a 65536-byte region relative to the <code>$gp</code> register. In
  75. addition to these memory regions, the MeP target has a separate 16-bit
  76. control bus which is specified with <code>cb</code> attributes.
  77. </p>
  78. <dl compact="compact">
  79. <dt><code>based</code></dt>
  80. <dd><a name="index-based-variable-attribute_002c-MeP"></a>
  81. <p>Any variable with the <code>based</code> attribute is assigned to the
  82. <code>.based</code> section, and is accessed with relative to the
  83. <code>$tp</code> register.
  84. </p>
  85. </dd>
  86. <dt><code>tiny</code></dt>
  87. <dd><a name="index-tiny-variable-attribute_002c-MeP"></a>
  88. <p>Likewise, the <code>tiny</code> attribute assigned variables to the
  89. <code>.tiny</code> section, relative to the <code>$gp</code> register.
  90. </p>
  91. </dd>
  92. <dt><code>near</code></dt>
  93. <dd><a name="index-near-variable-attribute_002c-MeP"></a>
  94. <p>Variables with the <code>near</code> attribute are assumed to have addresses
  95. that fit in a 24-bit addressing mode. This is the default for large
  96. variables (<code>-mtiny=4</code> is the default) but this attribute can
  97. override <code>-mtiny=</code> for small variables, or override <code>-ml</code>.
  98. </p>
  99. </dd>
  100. <dt><code>far</code></dt>
  101. <dd><a name="index-far-variable-attribute_002c-MeP"></a>
  102. <p>Variables with the <code>far</code> attribute are addressed using a full
  103. 32-bit address. Since this covers the entire memory space, this
  104. allows modules to make no assumptions about where variables might be
  105. stored.
  106. </p>
  107. </dd>
  108. <dt><code>io</code></dt>
  109. <dd><a name="index-io-variable-attribute_002c-MeP"></a>
  110. </dd>
  111. <dt><code>io (<var>addr</var>)</code></dt>
  112. <dd><p>Variables with the <code>io</code> attribute are used to address
  113. memory-mapped peripherals. If an address is specified, the variable
  114. is assigned that address, else it is not assigned an address (it is
  115. assumed some other module assigns an address). Example:
  116. </p>
  117. <div class="smallexample">
  118. <pre class="smallexample">int timer_count __attribute__((io(0x123)));
  119. </pre></div>
  120. </dd>
  121. <dt><code>cb</code></dt>
  122. <dt><code>cb (<var>addr</var>)</code></dt>
  123. <dd><a name="index-cb-variable-attribute_002c-MeP"></a>
  124. <p>Variables with the <code>cb</code> attribute are used to access the control
  125. bus, using special instructions. <code>addr</code> indicates the control bus
  126. address. Example:
  127. </p>
  128. <div class="smallexample">
  129. <pre class="smallexample">int cpu_clock __attribute__((cb(0x123)));
  130. </pre></div>
  131. </dd>
  132. </dl>
  133. <hr>
  134. <div class="header">
  135. <p>
  136. Next: <a href="Microsoft-Windows-Variable-Attributes.html#Microsoft-Windows-Variable-Attributes" accesskey="n" rel="next">Microsoft Windows Variable Attributes</a>, Previous: <a href="M32R_002fD-Variable-Attributes.html#M32R_002fD-Variable-Attributes" accesskey="p" rel="prev">M32R/D Variable Attributes</a>, Up: <a href="Variable-Attributes.html#Variable-Attributes" accesskey="u" rel="up">Variable Attributes</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>
  137. </div>
  138. </body>
  139. </html>