diff options
Diffstat (limited to 'source/arm-gcc.rst')
-rw-r--r-- | source/arm-gcc.rst | 72 |
1 files changed, 54 insertions, 18 deletions
diff --git a/source/arm-gcc.rst b/source/arm-gcc.rst index 8435a1f..ef745f5 100644 --- a/source/arm-gcc.rst +++ b/source/arm-gcc.rst @@ -1,34 +1,70 @@ .. _arm-gcc: -============ - GCC on ARM -============ +GCC for Maple +============= -This document provides an introduction to using -:command:`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. +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/>`_. -Stub. +Obtaining ``arm-none-eabi-gcc`` +------------------------------- +Recent versions of ``arm-none-eabi-gcc`` and associated tools are +included with the :ref:`Maple IDE <ide>`. -.. _arm-gcc-avr-gcc-diff: +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. -Differences with AVR-GCC ------------------------- +Compiler Flags Used by libmaple +------------------------------- -people coming from arduino and other Atmel AVR powered microcontroller -platforms are likely to be used to AVR-GCC. our compiler is -different. explain why (stub). +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: -Tips and Tricks ---------------- +- 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:: -* you can use ``__attribute__`` to stick things in flash (stub) + uint32 arr[] __attribute__((section (".USER_FLASH"))) = {...}; |