blob: ef745f52e20caf82f4577fdef6d54dbd988c6acc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
.. _arm-gcc:
GCC for Maple
=============
This document provides notes on the current usage of
``arm-none-eabi-gcc``, the `CodeSourcery <http://codesourcery.com>`_
version of the GNU `GCC <http://gcc.gnu.org/>`_ compilers used to
compile programs for the Maple. It is not intended as a reference
manual for GCC; such manuals are available `elsewhere
<http://gcc.gnu.org/>`_.
Obtaining ``arm-none-eabi-gcc``
-------------------------------
Recent versions of ``arm-none-eabi-gcc`` and associated tools are
included with the :ref:`Maple IDE <ide>`.
Users who wish to use ``arm-none-eabi-gcc`` in concert with a standard
Unix toolchain are referred to our :ref:`unix-toolchain` reference,
which describes how to set up such an environment.
LeafLabs mirrors some of the more recent versions of the compiler
under http://static.leaflabs.com/pub/codesourcery/\ , including
versions for OS X, win32, and 32-bit Linux.
Compiler Flags Used by libmaple
-------------------------------
This section documents the flags passed to ``arm-none-eabi-gcc`` by
the :ref:`Maple IDE <ide>` and the default Makefile provided with
:ref:`libmaple <unix-toolchain>`. The information in this section is
subject to change without notice.
.. highlight:: sh
The following flags are among those passed to the C compiler::
-Os -g -mcpu=cortex-m3 -mthumb -march=armv7-m -nostdlib
-ffunction-sections -fdata-sections -Wl,--gc-sections
The following flags are among those passed to the C++ compiler::
-fno-rtti -fno-exceptions -Wall
The following flags are among those passed to the assembler::
-mcpu=cortex-m3 -march=armv7-m -mthumb
.. highlight:: cpp
.. _arm-gcc-avr-gcc:
Switching from AVR-GCC
----------------------
This section, which is expected to grow over time, describes
techniques for porting code which uses AVR-GCC features (AVR-GCC is
the compiler used by many Atmel AVR-based microcontroller boards,
including Arduino) for use on the Maple.
.. _arm-gcc-attribute-flash:
- Replacing ``PROGMEM``: You can direct the linker script provided
with libmaple to store a variable in flash by using
``__attribute__((section (".USER_FLASH")))``, like so::
uint32 arr[] __attribute__((section (".USER_FLASH"))) = {...};
|