aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source/arm-gcc.rst
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@mit.edu>2010-11-29 18:08:04 -0500
committerMarti Bolivar <mbolivar@mit.edu>2010-11-29 18:08:04 -0500
commit3b7f16dba295da3a0071564ac284c25dc56e6b18 (patch)
treeb7dd3660fc549279c31a70c19b8109706ecd9747 /docs/source/arm-gcc.rst
parent078edc158da7906ba72e7e6528e1a811e07270e7 (diff)
downloadlibrambutan-3b7f16dba295da3a0071564ac284c25dc56e6b18.tar.gz
librambutan-3b7f16dba295da3a0071564ac284c25dc56e6b18.zip
New documentation content is done. Next step is to theme.
Diffstat (limited to 'docs/source/arm-gcc.rst')
-rw-r--r--docs/source/arm-gcc.rst72
1 files changed, 54 insertions, 18 deletions
diff --git a/docs/source/arm-gcc.rst b/docs/source/arm-gcc.rst
index 8435a1f..ef745f5 100644
--- a/docs/source/arm-gcc.rst
+++ b/docs/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"))) = {...};