~abogani/ubuntu/lucid/avr-libc/avr-libc.fix-FTBFS

« back to all changes in this revision

Viewing changes to doc/api/using-tools.dox

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2007-12-29 16:20:03 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20071229162003-lyyrt60vipc9xbwm
Tags: 1:1.4.7-1
* New upstream release (closes: #410831, #420163, #421088, #452199, #394231)
* Replaced tetex packages with texlive in Build-Depends (closes:
  #427266)
* Now ignores returnstatus of pdflatex when generating docs to prevent
  the build processing from halting on latex warnings (closes:
  #427266)

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
     notice, this list of conditions and the following disclaimer in
11
11
     the documentation and/or other materials provided with the
12
12
     distribution.
 
13
   * Neither the name of the copyright holders nor the names of
 
14
     contributors may be used to endorse or promote products derived
 
15
     from this software without specific prior written permission.
13
16
 
14
17
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15
18
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
26
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24
27
  POSSIBILITY OF SUCH DAMAGE. */
25
28
 
26
 
/* $Id: using-tools.dox,v 1.13.2.15 2007/05/13 20:36:03 aesok Exp $ */
 
29
/* $Id: using-tools.dox,v 1.13.2.22 2007/10/30 10:17:49 joerg_wunsch Exp $ */
27
30
 
28
31
/** \page using_tools Using the GNU tools
29
32
 
38
41
 
39
42
The following machine-specific options are recognized by the C
40
43
compiler frontend.
 
44
In addition to the preprocessor macros indicated in the tables
 
45
below, the preprocessor will define the macros __AVR and __AVR__
 
46
(to the value 1) when compiling for an AVR target.  The macro
 
47
AVR will be defined as well when using the standard levels gnu89
 
48
(default) and gnu99 but not with c89 and c99.
41
49
 
42
50
- <tt>-mmcu=</tt><em>architecture</em>
43
51
  <p>
174
182
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny24</td><td>__AVR_ATtiny24__</td></tr>
175
183
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny25</td><td>__AVR_ATtiny25__</td></tr>
176
184
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny261</td><td>__AVR_ATtiny261__</td></tr>
 
185
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny43u</td><td>__AVR_ATtiny43U__</td></tr>
177
186
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny44</td><td>__AVR_ATtiny44__</td></tr>
178
187
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny45</td><td>__AVR_ATtiny45__</td></tr>
179
188
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny461</td><td>__AVR_ATtiny461__</td></tr>
 
189
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny48</td><td>__AVR_ATtiny48__</td></tr>
180
190
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny84</td><td>__AVR_ATtiny84__</td></tr>
181
191
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny85</td><td>__AVR_ATtiny85__</td></tr>
182
192
  <tr><td>avr2/avr25&nbsp;[1]</td><td>attiny861</td><td>__AVR_ATtiny861__</td></tr>
186
196
  <tr><td>avr3</td><td>at43usb355</td><td>__AVR_AT43USB355__</td></tr>
187
197
  <tr><td>avr3</td><td>at76c711</td><td>__AVR_AT76C711__</td></tr>
188
198
  <tr><td>avr4</td><td>atmega48</td><td>__AVR_ATmega48__</td></tr>
 
199
  <tr><td>avr4</td><td>atmega48p</td><td>__AVR_ATmega48P__</td></tr>
189
200
  <tr><td>avr4</td><td>atmega8</td><td>__AVR_ATmega8__</td></tr>
190
201
  <tr><td>avr4</td><td>atmega8515</td><td>__AVR_ATmega8515__</td></tr>
191
202
  <tr><td>avr4</td><td>atmega8535</td><td>__AVR_ATmega8535__</td></tr>
192
203
  <tr><td>avr4</td><td>atmega88</td><td>__AVR_ATmega88__</td></tr>
 
204
  <tr><td>avr4</td><td>atmega88p</td><td>__AVR_ATmega88P__</td></tr>
193
205
  <tr><td>avr4</td><td>atmega8hva</td><td>__AVR_ATmega8HVA__</td></tr>
194
206
  <tr><td>avr4</td><td>at90pwm1</td><td>__AVR_AT90PWM1__</td></tr>
195
207
  <tr><td>avr4</td><td>at90pwm2</td><td>__AVR_AT90PWM2__</td></tr>
 
208
  <tr><td>avr4</td><td>at90pwm2b</td><td>__AVR_AT90PWM2B__</td></tr>
196
209
  <tr><td>avr4</td><td>at90pwm3</td><td>__AVR_AT90PWM3__</td></tr>
 
210
  <tr><td>avr4</td><td>at90pwm3b</td><td>__AVR_AT90PWM3B__</td></tr>
 
211
  <tr><td>avr5</td><td>at90pwm216</td><td>__AVR_AT90PWM216__</td></tr>
 
212
  <tr><td>avr5</td><td>at90pwm316</td><td>__AVR_AT90PWM316__</td></tr>
197
213
  <tr><td>avr5</td><td>at90can32</td><td>__AVR_AT90CAN32__</td></tr>
198
214
  <tr><td>avr5</td><td>at90can64</td><td>__AVR_AT90CAN64__</td></tr>
199
215
  <tr><td>avr5</td><td>at90can128</td><td>__AVR_AT90CAN128__</td></tr>
214
230
  <tr><td>avr5</td><td>atmega165</td><td>__AVR_ATmega165__</td></tr>
215
231
  <tr><td>avr5</td><td>atmega165p</td><td>__AVR_ATmega165P__</td></tr>
216
232
  <tr><td>avr5</td><td>atmega168</td><td>__AVR_ATmega168__</td></tr>
 
233
  <tr><td>avr5</td><td>atmega168p</td><td>__AVR_ATmega168P__</td></tr>
217
234
  <tr><td>avr5</td><td>atmega169</td><td>__AVR_ATmega169__</td></tr>
218
235
  <tr><td>avr5</td><td>atmega169p</td><td>__AVR_ATmega169P__</td></tr>
219
236
  <tr><td>avr5</td><td>atmega16hva</td><td>__AVR_ATmega16HVA__</td></tr>
224
241
  <tr><td>avr5</td><td>atmega325p</td><td>__AVR_ATmega325P__</td></tr>
225
242
  <tr><td>avr5</td><td>atmega3250</td><td>__AVR_ATmega3250__</td></tr>
226
243
  <tr><td>avr5</td><td>atmega3250p</td><td>__AVR_ATmega3250P__</td></tr>
 
244
  <tr><td>avr5</td><td>atmega328p</td><td>__AVR_ATmega328P__</td></tr>
227
245
  <tr><td>avr5</td><td>atmega329</td><td>__AVR_ATmega329__</td></tr>
228
246
  <tr><td>avr5</td><td>atmega329p</td><td>__AVR_ATmega329P__</td></tr>
229
247
  <tr><td>avr5</td><td>atmega3290</td><td>__AVR_ATmega3290__</td></tr>
288
306
  is saved in a temporary register, interrupts are disabled while
289
307
  changing the stack pointer, and \c SREG is restored.
290
308
  </p>
 
309
  <p>
 
310
  Specifying this option will define the preprocessor macro
 
311
  \c __NO_INTERRUPTS__ to the value 1.
 
312
  </p>
291
313
 
292
314
- \c -mcall-prologues
293
315
  <p>
297
319
  slightly increased execution time.
298
320
  </p>
299
321
 
300
 
- <tt>-minit-stack=</tt><em>nnnn</em>
301
 
  <p>
302
 
  Set the initial stack pointer to \e nnnn.  By default, the stack
303
 
  pointer is initialized to the symbol \c __stack, which is set to
304
 
  \c RAMEND by the run-time initialization code.
305
 
  </p>
306
 
 
307
322
- \c -mtiny-stack
308
323
  <p>
309
324
  Change only the low 8 bits of the stack pointer.
645
660
\endverbatim
646
661
 
647
662
See the explanation of the \ref sec_dot_data "data section" for why
648
 
0x800000 needs to be added to the actual value.  Note that unless
649
 
a \c -minit-stack option has been given when compiling the C source
650
 
file that contains the function \c main(), the stack will still
 
663
0x800000 needs to be added to the actual value.  Note that
 
664
the stack will still
651
665
remain in internal RAM, through the symbol \c __stack that is provided
652
666
by the run-time startup code.  This is probably a good idea anyway
653
667
(since internal RAM access is faster), and even required for some
656
670
will still be placed after all the variables in the data section,
657
671
so in this situation, no stack/heap collision can occur.
658
672
 
 
673
In order to relocate the stack from its default location at the top
 
674
of interns RAM, the value of the symbol \c __stack can be changed
 
675
on the linker command-line.  As the linker is typically called from
 
676
the compiler frontend, this can be achieved using a compiler option
 
677
like
 
678
 
 
679
\code
 
680
-Wl,--defsym=__stack=0x8003ff
 
681
\endcode
 
682
 
 
683
The above will make the code use stack space from RAM address 0x3ff
 
684
downwards.  The amount of stack space available then depends on the
 
685
bottom address of internal RAM for a particular device.  It is the
 
686
responsibility of the application to ensure the stack does not grow
 
687
out of bounds, as well as to arrange for the stack to not collide
 
688
with variable allocations made by the compiler (sections .data
 
689
and .bss).
 
690
 
659
691
*/