Home
        Introducing the ARM Compiler toolchain
         Contents
1.     ARM architectures supported by the toolchain on page 2 14     Toolchain support on 64 bit host platforms on page 2 15      Further reading on page 2 26    Using the Compiler      Chapter 2 Overview of the compiler    Using the Assembler      Chapter 2 Overview of the Assembler    Using the Linker       Chapter 2 Overview of the linker    Using ARM    C and C   Libraries and Floating Point Support      Chapter 2 The ARM C and C   libraries      Chapter 3 The ARM C micro library    Creating Static Software Libraries with armar       Chapter 2 Overview of the ARM Librarian    Using the fromelf Image Converter       Chapter 2 Overview of the fromelf image converter   Other information     ARM website  http   www arm  com     Copyright    2011 ARM  All rights reserved  2 4  Non Confidential    Overview of the ARM Compiler toolchain    2 2 Host platform support for ARM Compiler toolchain    Except where stated  the ARM Compiler toolchain supports both 32 bit and 64 bit versions of  the following OS platforms       Windows 7 Enterprise Edition      Windows 7 Professional Edition     Windows XP Professional SP3  32 bit only     Windows Server 2003      Windows Server 2008 R2    2 2 1 See also    Tasks     Specifying Cygwin paths in compilation tools on Windows on page 2 25     Concepts    About the ARM Compiler toolchain on page 2 3     ARM DUI 0592A Copyright    2011 ARM  All rights reserved  2 5  ID061811 Non Confidential    Overview of the ARM Compiler toolchain    About the t
2.     helper functions when compiling C      additional C   functions not supported by the Rogue Wave library     The ARM C libraries provide        an implementation of the library features as defined in the C and C    standards     extensions specific to the compiler  such as _fisatty    __heapstats    and  __heapvalid       common nonstandard extensions to many C libraries       POSIX extended functionality     functions standardized by POSIX     C micro libraries    The ARM C micro library  Microlib  provides a highly optimized set of  functions  These functions are for use with deeply embedded applications that  have to fit into extremely small amounts of memory     Rogue Wave C  library    2 1 1 Supporting software    The Rogue Wave library provides an implementation of the standard C  library     You can debug the output from the toolchain with any debugger that is compatible with the ELF   DWARF 2  and DWARF 3 specifications     Updates and patches to the toolchain are available from the ARM web site as they become    available     2 1 2 See also    Concepts      Host platform support for ARM Compiler toolchain on page 2 5    ARM DUI 0592A  1D061811    Copyright    2011 ARM  All rights reserved  2 3  Non Confidential    ARM DUI 0592A  1D061811    Overview of the ARM Compiler toolchain      Licensed features of the toolchain on page 2 8     Standards compliance in the toolchain on page 2 9     Compliance with the ABI for the ARM Architecture  Base Standard  on page 2 10 
3.   3 1 Using the compilation tools    A typical application development might involve the following                                                                                                           C C   source code for the main application  armcc     assembly source code for near hardware components  armasm   such as interrupt service  routines     linking all objects together to generate an image  armlink     converting an image to flash format in plain binary  Intel Hex  and Motorola S formats   fromelf    The following figure shows how the compilation tools are used for the development of a typical  application   armcc armlink fromelf  code  C C   ARM c  o a CE    and Thumb code  debug mmm    dat Plain binary  ata 9      ____    erage   Intel Hex  Motorola S  code N aA  Assembly          0 data debug  code  _  debug  Source code Object code Image Flash format  Figure 3 1 A typical tool usage flow diagram  3 1 1 See also  Tasks       Using the compiler on page 3 3     Using the linker on page 3 5    Using the assembler on page 3 6    e Using the fromelf image converter on page 3 7     ARM DUI 0592A Copyright    2011 ARM  All rights reserved  3 2  ID061811 Non Confidential    Creating an application    3 2 Using the compiler  The compiler  armcc  can compile C and C   source code into ARM and Thumb code   Typically  you invoke the compiler as follows   armcc  options  ifile_1     ifile_n    You can specify one or more input files     3 2 1 Compiling example  To compi
4.  2 Linker command line options     Copyright    2011 ARM  All rights reserved  3 5  Non Confidential    Creating an application    3 4 Using the assembler    The basic syntax to use the assembler  armasm  is   armasm  options  inputfile    For example  to assemble the code in a file called myfile s  and to include debugging  information in the resulting object file  type     armasm   debug myfile s    This generates an object file called myfile o     3 4 1 Building an example from assembler source    3 4 2 See also    ARM DUI 0592A  1D061811    To build an assembler program  for example word s   1    Assemble the source file using the command     armasm   debug word s    2  Link the file using the command   armlink word o  o word axf  3  Use an ELF  DWARF 2  and DWARF 3 compatible debugger to load and run the image     Step through the program and examine the registers to see how they change     Tasks  Using the Assembler        Assembler command line syntax on page 7 2     Reference  Assembler Reference     e Chapter 2 Assembler command line options     Copyright    2011 ARM  All rights reserved  3 6  Non Confidential    Creating an application    3 5 Using the fromelf image converter    The features of the fromelf image converter utility include       converting an executable image in ELF executable format to other file formats     controlling debug information in output files     disassembling either an ELF image or an ELF object file      protecting intellectual property 
5.  4   Using the Linker      Linker command line syntax on page 2 3      Linker command line options listed in groups on page 2 4     Creating Static Software Libraries with armar     armar command line syntax on page 2 4     armar command line options listed in groups on page 2 5     Using the fromelf Image Converter        fromelf command line syntax on page 2 6    fromelf command line options listed in groups on page 2 7   Copyright    2011 ARM  All rights reserved  2 17    Non Confidential    Overview of the ARM Compiler toolchain    2 12 About ordering the compilation tools command line options    2 12 1 See also    ARM DUI 0592A  1D061811    In general  command line options can appear in any order  However  the effects of some options  depend on how they are combined with other related options     Where options override other options on the same command line  the options that appear closer  to the end of the command line take precedence  Where an option does not follow this rule  this    is noted in the description for that option     Use the   show_cmdline option to see how the command line is processed  The commands are    shown normalized     Reference   Compiler Reference        show_cmdline on page 3 85   Assembler Reference         show_cmdline on page 2 22   Linker Reference        show_cmdline on page 2 112   Using the fromelf Image Converter         show_cmdline on page 4 47     Creating Static Software Libraries with armar         show_cmdline on page 6 28     C
6.  IP  in images and objects that are delivered to third  parties    printing information about an ELF image or an ELF object file     3 5 1 Examples of using fromelf    3 5 2 See also    ARM DUI 0592A  ID061811    The following examples show how to use frome1f     fromelf   text  c  s   output outfile  Ist infile axf  Creates a plain text output file that contains the disassembled code and the symbol  table of an ELF image    fromelf   bin   16x2   output outfile bin infile axf  Creates two files in binary format  outfile  bin and outfilel bin  for a target    system with a memory configuration of a 16 bit memory width in two banks     The output files in the last example are suitable for writing directly to 16 bit Flash device     Tasks  Using the fromelf Image Converter      Chapter 3 Using fromelf     Reference  Using the fromelf Image Converter        Chapter 4 fromelf command reference     Copyright    2011 ARM  All rights reserved  3 7  Non Confidential    
7.  com arm doc ihi0044  index html  Builds  on the generic ELF standard to govern the exchange of linkable and executable  files between producers and consumers     Procedure Call Standard for the ARM Architecture   http   infocenter arm com help topic com arm doc ihi0042  index html  Governs  the exchange of control and data between functions at runtime  There is a variant  of the AAPCS for each of the major execution environment types supported by  the toolchain     Base Platform ABI for the ARM Architecture   http   infocenter arm com help topic com arm doc ihi0037  index html  Governs  the format and content of executable and shared object files generated by static  linkers  Supports platform specific executable files using post linking  Provides a  base standard that is used to derive a platform ABI     C Library ABI for the ARM Architecture   http   infocenter arm com help topic com arm doc ihi0039  index html  Defines  an ABI to the C library     C   ABI for the ARM Architecture   http   infocenter arm com help topic com arm doc ihi004 1  index html  Builds  on the generic C   ABI  originally developed for IA 64  to govern interworking  between independent C   compilers     Support for Debugging Overlay Programs   http   infocenter arm com help topic com arm doc ihi0049  index html  Defines  an extension to the ABI for the ARM Architecture to support debugging overlaid  programs     Exception Handling ABI for the ARM Architecture   http   infocenter arm com help topic co
8.  html      ARM7 processors   http   infocenter arm com help topic com arm doc set arm7 index html      Vector floating point coprocessors   http   infocenter arm com help topic com arm doc set vfp index html     2 19 2 Other publications    ARM DUI 0592A  1D061811    This ARM Compiler tools documentation is not intended to be an introduction to the C or C    programming languages  It does not try to teach programming in C or C    and it is not a  reference manual for the C or C   standards  Other publications provide general information  about programming     The following publications describe the C   language      ISO IEC 14882 2003  C   Standard        Stroustrup  B   The C   Programming Language  3rd edition  1997   Addison Wesley  Publishing Company  Reading  Massachusetts  ISBN 0 201 88954 4     The following publications provide general C   programming information       Stroustrup  B   The Design and Evolution of C    1994   Addison Wesley Publishing  Company  Reading  Massachusetts  ISBN 0 201 54330 3     This book explains how C   evolved from its first design to the language in use today       Vandevoorde  D and Josuttis  N M  C   Templates  The Complete Guide  2003    Addison Wesley Publishing Company  Reading  Massachusetts  ISBN 0 201 73484 2       Meyers  S   Effective C    1992   Addison Wesley Publishing Company  Reading   Massachusetts  ISBN 0 201 56364 9     This provides short  specific  guidelines for effective C   development     Copyright    2011 ARM  Al
9.  of    cpu on the command line     armcc   Vvia armcc via  c   show_cmdline   cpu ARM7TDMI hello c  armcc    show_cmdline   debug  c hello c     In this case    cpu ARM926EJ S is not used because   cpu ARM7TDMI is the last instance of    cpu on the command line  In addition    cpu ARM7TDMI is not shown in the output   because this is the default option for   cpu     Reference    Assembler Reference       show_cmdline on page 2 22    via file on page 2 24     Compiler Reference       show_cmdline on page 3 85    via filename on page 3 95  Appendix B Via File Syntax     Linker Reference       show_cmdline on page 2 112    via file on page 2 145     Copyright    2011 ARM  All rights reserved  2 20  Non Confidential    Overview of the ARM Compiler toolchain    Creating Static Software Libraries with armar          show_cmdline on page 6 28      via file on page 6 35   Using the fromelf Image Converter        show_cmdline on page 4 47      via file on page 4 53   ARM DUI 0592A Copyright    2011 ARM  All rights reserved  2 21    1ID061811 Non Confidential    Overview of the ARM Compiler toolchain    2 15 Portability of source files between hosts    2 15 1 See also    ARM DUI 0592A  1D061811    To assist portability of source files between hosts  use the following guidelines        Ensure that filenames do not contain spaces  If you have to use path names or filenames  containing spaces  enclose the path and filename in double     or single     quotes        Make embedded path names
10.  relative rather than absolute       Use forward slashes     in embedded path names  not backslashes         Concepts     Chapter 2 Overview of the ARM Compiler toolchain     Copyright    2011 ARM  All rights reserved  2 22  Non Confidential    Overview of the ARM Compiler toolchain    2 16 TMP environment variable for temporary file directories    2 16 1 See also    ARM DUI 0592A  1D061811    The compilation tools use the environment variable TMP to specify the directory to be used for  temporary files  If TMP is not defined  or if it is set to the name of a directory that does not exist   temporary files are created in the current working directory     TMP is typically set up by a system administrator  However  it is permissible for you to change it     Concepts       Chapter 2 Overview of the ARM Compiler toolchain     Reference       Toolchain environment variables on page 2 12     Copyright    2011 ARM  All rights reserved  2 23  Non Confidential    Overview of the ARM Compiler toolchain    2 17 Specifying command line options with an environment variable    You can specify command line options by setting the value of a tool specific environment  variable        ARMCCnn_ASMOPT for the assembler      ARMCCnn_CCOPT for the compiler      ARMCCnn_FROMELFOPT for the fromelf image converter    ARMCCnn_LINKOPT for the linker     The syntax is identical to the command line syntax  The compilation tool reads the value of the  environment variable and inserts it at the front of th
11.  the licenses that are included     Licensing of the ARM development tools for Vision is controlled by the Keil licensing system   see Keil Product Licensing  http    www keil com license  for details     Copyright    2011 ARM  All rights reserved  2 8  Non Confidential    Overview of the ARM Compiler toolchain    2 5 Standards compliance in the toolchain    2 5 1 See also    ARM DUI 0592A  1D061811    The toolchain conforms to the following standards  In each case  the level of compliance is  noted     ar armar produces  and armlink consumes  UNIX style object code archives  armar  can list and extract most ar format object code archives  and armlink can use an  ar format archive created by another archive utility providing it contains a  symbol table member     DWARF 3 DWARF 3 debug tables  DWARF Debugging Standard Version 3  are supported  by the toolchain     DWARF 2 DWARF 2 debug tables are supported by the toolchain  and by ELF DWARF 2  compatible debuggers from ARM     ISOC The compiler accepts ISO C 1990 and 1999 source as input   ISO C   The compiler accepts ISO C   2003 source as input     ELF The toolchain produces relocatable and executable files in ELF format  The  fromelf utility can translate ELF files into other formats     Note  The DWARF 2 and DWARF 3 standard is ambiguous in some areas such as debug frame data   This means that there is no guarantee that third party debuggers can consume the DWARF  produced by ARM code generation tools or that an ARM debugg
12. ARM Compiler toolchain v4 1 for  uVision    Introducing the ARM Compiler toolchain    ARM    Copyright    2011 ARM  All rights reserved   ARM DUI 0592A  ID061811     ARM DUI 0592A  1D061811    ARM Compiler toolchain v4 1 for Vision  Introducing the ARM Compiler toolchain    Copyright    2011 ARM  All rights reserved   Release Information    The following changes have been made to this book     Change History       Date Issue Confidentiality Change       June 2011 A Non Confidential Release for ARM Compiler toolchain v4 1 for p Vision       Proprietary Notice    Words and logos marked with or are registered trademarks or trademarks of ARM in the EU and other countries  except  as otherwise stated below in this proprietary notice  Other brands and names mentioned herein may be the trademarks  of their respective owners     Neither the whole nor any part of the information contained in  or the product described in  this document may be  adapted or reproduced in any material form except with the prior written permission of the copyright holder     The product described in this document is subject to continuous developments and improvements  All particulars of the  product and its use contained in this document are given by ARM in good faith  However  all warranties implied or  expressed  including but not limited to implied warranties of merchantability  or fitness for purpose  are excluded     This document is intended only to assist the reader in the use of the product  ARM sha
13. Keil Product Support  http   ww  kei   com support     e ARM Glossary   http   infocenter arm com help topic com arm doc aeg0014  index html     Copyright    2011 ARM  All rights reserved  1 2  Non Confidential    Chapter 2  Overview of the ARM Compiler toolchain    The following topics provide general information about the ARM Compiler toolchain     Tasks      Using special characters on the compilation tools command line on page 2 16    Using a text file to specify command line options on page 2 20     Specifying command line options with an environment variable on page 2 24    Specifying Cygwin paths in compilation tools on Windows on page 2 25     Concepts     About the ARM Compiler toolchain on page 2 3     About the toolchain documentation on page 2 6      Licensed features of the toolchain on page 2 8      Standards compliance in the toolchain on page 2 9       Compliance with the ABI for the ARM Architecture  Base Standard  on page 2 10    ARM architectures supported by the toolchain on page 2 14    Toolchain support on 64 bit host platforms on page 2 15       Compilation tools command line option rules on page 2 17     About ordering the compilation tools command line options on page 2 18     Autocompletion of compilation tools command line option on page 2 19     Portability of source files between hosts on page 2 22    TMP environment variable for temporary file directories on page 2 23  Reference     Host platform support for ARM Compiler toolchain on page 2 5    
14. Toolchain environment variables on page 2 12  ARM DUI 0592A Copyright    2011 ARM  All rights reserved  2 1    ID061811 Non Confidential    ARM DUI 0592A  1D061811    Further reading on page 2 26     Copyright    2011 ARM  All rights reserved   Non Confidential    Overview of the ARM Compiler toolchain    2 2    Overview of the ARM Compiler toolchain    2 1 About the ARM Compiler toolchain    The ARM Compiler toolchain enables you to build applications for the ARM family of  processors from C  C    or ARM assembly language source  The toolchain comprises     armcc    armasm    armlink    armar    fromelf    The ARM and Thumb   compiler  This compiles your C and C   code  It supports  inline and embedded assemblers     The ARM and Thumb assembler  This assembles ARM and Thumb assembly  language sources     The linker  This combines the contents of one or more object files with selected  parts of one or more object libraries to produce an executable program     The librarian  This enables sets of ELF format object files to be collected together  and maintained in archives or libraries  You can pass such a library or archive to  the linker in place of several ELF files  You can also use the archive for  distribution to a third party for further application development     The image conversion utility  This can also generate textual information about the  input image  such as disassembly and its code and data size     C   libraries    C libraries    The ARM C   libraries provide 
15. at  are to be used outside your regular makefile    The options listed appear before any options specified for the fromelf command in the  makefile  Therefore  any options specified in the makefile might override the options listed  in this environment variable        ARMCCnn_LINKOPT    An optional environment variable to define additional linker options that are to be used  outside your regular makefile    The options listed appear before any options specified for the armlink command in the  makefile  Therefore  any options specified in the makefile might override the options listed  in this environment variable        ARMCCnn INC    The default system include path  That is  the path used to search for header filenames  enclosed in angle brackets  The compiler option  J overrides this environment variable     The default location of the compiler include files is   instal  _directory RV31  INC       ARMCCnnLIB    The default location of the ARM standard C and C   library files   instal _directory RV31 LIB  The compiler option   libpath overrides this environment variable     Note    If you include a path separator at the end of the path  the linker searches that directory and  the subdirectories  So for instal _directory RV31 LIB the linker searches     LIB  LIB armlib  LIB cpplib             ARMINC    ARM DUI 0592A  1D061811    Used only if you do not specify the compiler option  J and ARMCCnnINC is either not set or is  empty   See the description of ARMCCnnINC for more inf
16. control many aspects of the compilation tools operation with command line options   The following rules apply  depending on the type of option     Single letter options    All single letter options  including single letter options with arguments  are  preceded by a single dash    You can use a space between the option and the  argument  or the argument can immediately follow the option  For example      J directory     Jdirectory    Keyword options    All keyword options  including keyword options with arguments  are preceded by  a double dash     An   or space character is required between the option and the  argument  For example       depend file d    depend file d    Compilation tools options that contain non leading   or _ can use either of these characters  For  example    force_new_nothrow is the same as   force new nothrow     To compile files with names starting with a dash  use the POSIX option    to specify that all  subsequent arguments are treated as filenames  not as command switches  For example  to  compile a file named  ifile_1  use     armcc  c     ifile_1    In some Unix shells  you might have to include quotes when using arguments to some  command line options  for example       keep  s o vect      Reference    Using the Assembler      Assembler command line syntax on page 7 2     Assembler commands listed in groups on page 7 3     Using the Compiler        Compiler command line syntax on page 3 3     Compiler command line options listed by group on page 3
17. cord Format  DWARF  debug table standards  and ELF specifications     The following publications provide information about the European Telecommunications  Standards Institute  ETSI  basic operations     ETSI Recommendation G 191  Software tools for speech and audio coding  standardization    ITU T Software Tool Library 2005 User s manual  included as part of ETSI  Recommendation G 191    ETSI Recommendation G723 1  Dual rate speech coder for multimedia communications  transmitting at 5 3 and 6 3 kbit s    ETSI Recommendation G 729  Coding of speech at 8 kbit s using conjugate structure  algebraic code excited linear prediction  CS ACELP      These publications are all available from the telecommunications bureau of the International  Telecommunication Union  ITU  web site  http   www  itu  int     Publications providing information about Texas Instruments compiler intrinsics are available  from Texas Instruments web site  http    ww ti com     ARM DUI 0592A  1D061811    Copyright    2011 ARM  All rights reserved  2 27  Non Confidential    Chapter 3  Creating an application    The following topics describe how to create an application using the toolchain     Tasks      Using the compilation tools on page 3 2    Using the compiler on page 3 3     Using the linker on page 3 5     Using the assembler on page 3 6       Using the fromelf image converter on page 3 7     ARM DUI 0592A Copyright    2011 ARM  All rights reserved   ID061811 Non Confidential    Creating an application  
18. e command string  This means that you can  override options specified in the environment variable by arguments on the command line     2 17 1 See also    Reference      Toolchain environment variables on page 2 12     ARM DUI 0592A Copyright    2011 ARM  All rights reserved  2 24  ID061811 Non Confidential    Overview of the ARM Compiler toolchain    2 18 Specifying Cygwin paths in compilation tools on Windows    2 18 1 See also    ARM DUI 0592A  1D061811    By default on Windows  the compilation tools require path names to be in the Windows DOS  format  for example  C  myfiles  If you want to use Cygwin path names  then set the CYGPATH  environment variable to the location of the cygpath exe file on your system  For example     set CYGPATH C   cygwin bin cygpath  exe    You can now specify file locations in the compilation tools command line options using the  Cygwin path format  The paths are translated by cygpath exe  For example  to compile the file   cygdrive h main c  enter the command     armcc  c   debug  cygdrive h main c    You can still specify paths that start with     a drive letter  for example C   or C       a UNC  for example    computer     ARM Compiler tools do not translate these paths because the paths are already in a form that  Windows understands     Reference      Toolchain environment variables on page 2 12   Assembler Reference      Chapter 2 Assembler command line options   Compiler Reference       Chapter 3 Compiler Command line Options   Linker Re
19. er can consume the DWARF  produced by third party tools        Concepts    Compliance with the ABI for the ARM Architecture  Base Standard  on page 2 10   Using the Compiler        Source language modes of the compiler on page 2 3     Other information    The DWARF Debugging Standard  http   dwarfstd org        International Organization for Standardization  http   ww iso org iso home htm     Copyright    2011 ARM  All rights reserved  2 9  Non Confidential    Overview of the ARM Compiler toolchain    2 6 Compliance with the ABI for the ARM Architecture  Base Standard     The Application Binary Interface  ABI  for the ARM Architecture  Base Standard   BSABI  is  a collection of standards  Some of these standards are open  Some are specific to the ARM  architecture  They regulate the inter operation of binary code and development tools in ARM  architecture based execution environments     By conforming to this standard  objects produced by the toolchain can work together with object  libraries from different producers     The BSABI consists of a family of specifications including     AADWARF DWARF for the ARM Architecture     AAELF    AAPCS    BPABI    CLIBABI    CPPABI    DBGOVL    EHABI    RTABI    ARM DUI 0592A  1D061811    http   infocenter arm com help topic com arm doc ihi0040  index html  This  ABI uses DWARF 3 standard to govern the exchange of debugging data between  object producers and debuggers     ELF for the ARM Architecture   http   infocenter arm com help topic
20. etyesutzesvhcecgadieuwercicnbeceaesunenesbantpretaneangoee 3 5   ARM DUI 0592A Copyright    2011 ARM  All rights reserved  iii    ID061811 Non Confidential    Contents    3 4 Using the assembler msiingie tiie seduce eiai sted 3 6  3 5 Using the fromelf image converter o oo    eee cence eeeneeeeeeeeeeeeeeeeaaeeseeeeeesneeeeeeaaeeesaees 3 7  ARM DUI 0592A Copyright    2011 ARM  All rights reserved  iv    ID061811 Non Confidential    Chapter 1  Conventions and feedback    The following describes the typographical conventions and how to give feedback     Typographical conventions  The following typographical conventions are used     monospace Denotes text that can be entered at the keyboard  such as commands   file and program names  and source code     monospace Denotes a permitted abbreviation for a command or option  The  underlined text can be entered instead of the full command or option  name     monospace italic    Denotes arguments to commands and functions where the argument is  to be replaced by a specific value     monospace bold    Denotes language keywords when used outside example code     italic Highlights important notes  introduces special terminology  denotes  internal cross references  and citations     bold Highlights interface elements  such as menu names  Also used for  emphasis in descriptive lists  where appropriate  and for ARM    processor signal names     Feedback on this product    If you have any comments and suggestions about this product  contact yo
21. ference      Chapter 2 Linker command line options   Creating Static Software Libraries with armar      Chapter 6 armar command reference    Using the fromelf Image Converter        Chapter 4 fromelf command reference     Copyright    2011 ARM  All rights reserved  2 25  Non Confidential    Overview of the ARM Compiler toolchain    2 19 Further reading    Additional information on developing code for the ARM family of processors is available from  both ARM and third parties     2 19 1 ARM publications    ARM periodically provides updates and corrections to its documentation  See ARM Infocenter   http   infocenter arm com help index jsp for current errata sheets and addenda  and the ARM  Frequently Asked Questions  FAQs      For full information about the base standard  software interfaces  and standards supported by  ARM  see Application Binary Interface  ABI  for the ARM Architecture   http   infocenter arm com help topic com arm doc subset swdev abi index  html     In addition  see the following documentation for specific information relating to ARM products       ARM Architecture Reference Manuals   http   infocenter arm com help topic com arm doc subset arch reference index html      Cortex R series processors   http   infocenter arm com help topic com arm doc set cortexr index html      Cortex M series processors   http   infocenter arm com help topic com arm doc set cortexm index html      ARM9 processors   http   infocenter arm com help topic com arm doc set arm9 index
22. iler toolchain    2 14 Using a text file to specify command line options    Some operating systems restrict the length of the command line  You can either     specify options that extend beyond this limit by including them in a text file  place all of your command line options in a text file     To use a text file to specify command line options     1     Create a text file containing the required command line options  The options must be  specified on a single line  For example       debug   cpu ARM926EJ S   Use the   via command line option to specify the file location containing the required  options  For example    armcc   via myoptions  txt    You can use any filename extension  or no filename extension     2 14 1 Priority of command line options when using them in a text file    2 14 2 See also    ARM DUI 0592A  1D061811    The compiler reads the command line options from the specified file and combines them with  any additional options you have specified on the command line  The priority given to a  command line option depends on     the command line option  the position of the   via option on the command line     To see the priority of the options  specify the   show_cmdline option  For example  if armcc  txt  contains the options   debug   cpu ARM926EJ S     armcc  c   show_cmdline   cpu ARM7TDMI   via armcc txt hello c  armcc    show_cmdline   debug  c   cpu ARM926EJ S hello c     In this case    cpu ARM7TDMI is not used because   cpu ARM926EJ S is the last instance
23. ing ARM    C and C   Libraries and Floating Point Support     Chapter 2 The ARM C and C   libraries    Using the fromelf Image Converter       Chapter 2 Overview of the fromelf image converter     Creating Static Software Libraries with armar      Chapter 2 Overview of the ARM Librarian     Reference   Assembler Reference      Chapter 2 Assembler command line options   Compiler Reference       Chapter 3 Compiler Command line Options   Linker Reference      Chapter 2 Linker command line options   Using the fromelf Image Converter       Chapter 4 fromelf command reference     Copyright    2011 ARM  All rights reserved  2 13  Non Confidential    2 8    2 8 1    Overview of the ARM Compiler toolchain    ARM architectures supported by the toolchain    See also    ARM DUI 0592A    1D061811    The toolchain includes support for all ARM architectures from ARMv4    onwards that are  currently supported by ARM  All architectures before ARMv4 are obsolete and are no longer  supported     You can specify a target processor or architecture to take advantage of extra features specific to  the selected processor or architecture  To do this  use the following command line options         cpu name       fpu name     You can specify the startup instruction set  ARM or Thumb  with the   arm or   thumb  command line options  Also  you can force an ARM only instruction set with the   arm_only  option     The compilation tools provide support for mixing ARM and Thumb code  This is known as  interw
24. l rights reserved  2 26  Non Confidential    Overview of the ARM Compiler toolchain    Meyers  S   More Effective C    2nd edition  1997   Addison Wesley Publishing  Company  Reading  Massachusetts  ISBN 0 201 92488 9     The following publications provide general C programming information     ISO IEC 9899 1999  C Standard    The standard is available from national standards bodies  for example  AFNOR in France   ANSI in the USA     Kernighan  B W  and Ritchie  D M   The C Programming Language  2nd edition  1988    Prentice Hall  Englewood Cliffs  NJ  USA  ISBN 0 13 110362 8    This book is co authored by the original designer and implementer of the C language  and  is updated to cover the essentials of ANSI C    Harbison  S P  and Steele  G L   A C Reference Manual  Sth edition  2002   Prentice Hall   Englewood Cliffs  NJ  USA  ISBN 0 13 089592 X    This is a very thorough reference guide to C  including useful information on ANSI C   Plauger  P   The Standard C Library  1991   Prentice Hall  Englewood Cliffs  NJ  USA   ISBN 0 13 131509 9    This is a comprehensive treatment of ANSI and ISO standards for the C Library   Koenig  A   C Traps and Pitfalls  Addison Wesley  1989   Reading  Mass  ISBN  0 201 17928 8     This explains how to avoid the most common traps in C programming  It provides  informative reading at all levels of competence in C     See The DWARF Debugging Standard web site  http    ww dwarfstd org for the latest  information about the Debug With Arbitrary Re
25. lchain environment variables    The ARM Compiler toolchain does not require environment variables to be set  However  there  are situations where you might want to set environment variables  For example  if you want to  specify additional command line options for armcc  but you do not want to modify your build  scripts  then you can specify the options using ARMCCnn_CCOPT     The environment variables used by the toolchain are     Table 2 1 Environment variables used by the toolchain       Environment variable a    Setting       ARMROOT    Your installation directory root  instal1_directory   This documentation assumes that  instal _directory is C  Keil ARM        ARMCCnn_ASMOPT    An optional environment variable to define additional assembler options that are to be used  outside your regular makefile    The options listed appear before any options specified for the armasm command in the  makefile  Therefore  any options specified in the makefile might override the options listed  in this environment variable        ARMCCnn_CCOPT    An optional environment variable to define additional compiler options that are to be used  outside your regular makefile    The options listed appear before any options specified for the armcc command in the makefile   Therefore  any options specified in the makefile might override the options listed in this  environment variable        ARMCCnn_FROMELFOPT    An optional environment variable to define additional fromelf image converter options th
26. le the C   example source file shapes  cpp     1  Compile the C   file shapes  cpp with the following command   armcc   cpp   debug  c  01 shapes cpp  o shapes o    The following options are commonly used         C Tells the compiler to compile only  and not link     cpp Tells the compiler that the source is C        debug Tells the compiler to add debug tables for source level debugging     01 Tells the compiler to generate code with restricted optimizations  applied to give a satisfactory debug view with good code density and  performance     o filename Tells the compiler to create an object file with the specified  filename    Note    Be aware that   arm is the default compiler option        2  Link the file     armlink shapes o   info totals  o shapes axf  3  Use an ELF  DWARF 2  and DWARF 3 compatible debugger to load and run the image     See the readme txt file that accompanies the example for more information     3 2 2 Compiling for ARM code  The following compiler options generate ARM code       arm Tells the compiler to generate ARM code in preference to Thumb code  However    pragma thumb overrides this option     This is the default compiler option       arm_only Forces the compiler to generate only ARM code  The compiler behaves as if  Thumb is absent from the target architecture  Any  pragma thumb declarations are  ignored   3 2 3 Compiling for Thumb code  To build a Thumb version use     armcc   thumb        ARM DUI 0592A Copyright    2011 ARM  All rights reser
27. ll not be liable for any loss or  damage arising from the use of any information in this document  or any error or omission in such information  or any  incorrect use of the product     Where the term ARM is used it means    ARM or any of its subsidiaries as appropriate      Confidentiality Status    This document is Non Confidential  The right to use  copy and disclose this document may be subject to license  restrictions in accordance with the terms of the agreement entered into by ARM and the party that ARM delivered this  document to     Product Status  The information in this document is final  that is for a developed product   Web Address    http   www  arm com    Copyright    2011 ARM  All rights reserved  ii  Non Confidential    Contents  ARM Compiler toolchain v4 1 for pVision  Introducing the ARM Compiler toolchain    Chapter 1 Conventions and feedback   Chapter 2 Overview of the ARM Compiler toolchain  2 1 About the ARM Compiler toolchain    eee eeccecesneeeeeeeeeeeneeeseaeeeseeeeeeaeeeeenaeeeennaees 2 3  2 2 Host platform support for ARM Compiler toolchain                   ccececeecceeeeeeeeteeeeeeeees 2 5  2 3 About the toolchain documentation ooo    cece ceeceeeeeeeceenneeeeneeeeeneeeeeaeeenneeeeenaeesneaees 2 6  2 4 Licensed features of the toolchain         eee eeseeeeeeeeeeeeeeenaeeeeeeeeeeaeeeeeaeeeeneeeensaeeeeeaas 2 8  2 5 Standards compliance in the toolchain 00 0    ee sees eeeeeeeceeeeeeeneeeeeenaeeeneeeeeeneeeeneaes 2 9  2 6 Compliance with the ABI fo
28. m arm doc ihi0038  index html  Defines  both the language independent and C   specific aspects of how exceptions are  thrown and handled     Run time ABI for the ARM Architecture   http   infocenter arm com help topic com arm doc ihi0043  index html  Governs  what independently produced objects can assume of their execution environments  by way of floating point and compiler helper function support     Copyright    2011 ARM  All rights reserved  2 10  Non Confidential    2 6 1 See also    ARM DUI 0592A  1D061811    Overview of the ARM Compiler toolchain    If you are upgrading to ARM Compiler v4 1 for p Vision from a previous toolchain release   ensure that you are using the most recent versions of the ARM specifications     Other information       Application Binary Interface for the ARM Architecture Introduction and downloads   http   infocenter arm com help topic com arm doc ihi0036  index html      Addenda to  and Errata in  the ABI for the ARM Architecture   http   infocenter arm com help topic com arm doc ihi0045  index html       Differences between v1 and v2 of the ABI for the ARM Architecture   http   infocenter arm com help topic com arm doc ihi0047  index html       ABI for the ARM Architecture Advisory Note  SP must be 8 byte aligned on entry to  AAPCS conforming functions   http   infocenter arm com help topic com arm doc ihi0046  index html     Copyright    2011 ARM  All rights reserved  2 11  Non Confidential    Overview of the ARM Compiler toolchain    2 7 Too
29. mation for the various features of the  linker  armlink  It also provides a detailed description of each linker  command line option    Creating Static Software Libraries with armar  ARM DUI 0590   This document describes how to use the various features of the librarian  armar  It  also provides a detailed description of each armar command line option    Using the fromelf Image Converter  ARM DUI 0459     This document describes how to use the various features of the ELF image  converter  fromelf  It also provides a detailed description of each fromelf  command line option     Errors and Warning Reference  ARM DUI 0591     This document describes the errors and warnings that might be generated by each  of the build tools in ARM Compiler v4 1     Copyright    2011 ARM  All rights reserved  2 6  Non Confidential    ARM DUI 0592A  1D061811    Overview of the ARM Compiler toolchain    Migration and Compatibility  ARM DUI 0593     This document describes the differences you must be aware of in the ARM  Compiler toolchain v4 1 for p Vision  when migrating your software from earlier  toolchain versions  such as ARM RVCT v4 0 for pVision     Copyright    2011 ARM  All rights reserved  2 7  Non Confidential    Overview of the ARM Compiler toolchain    2 4 Licensed features of the toolchain    ARM DUI 0592A  1D061811    The toolchain requires a toolchain license     If you purchased the toolchain with another ARM product  see the Getting Started document of  that product for details of
30. oolchain documentation    ARM DUI 0592A    The toolchain documentation comprises     Introducing the ARM   Compiler toolchain  ARM DUI 0592    this document    This document gives an overview of the toolchain and features     Using the Compiler  ARM DUI 0375     This document describes how to use the various features of the compiler  armcc     Compiler Reference  ARM DUI 0376    This document provides reference information for the various features of the  compiler  armcc  It also provides a detailed description of each compiler  command line option    Using ARM   C and C   Libraries and Floating Point Support  ARM DUI 0378   This document describes the features of the ARM C and C   libraries  and how  to use them  It also describes the floating point support of the libraries    ARM    C and C   Libraries and Floating Point Support Reference  ARM DUI 0589   This document provides reference information for the various features of the  ARM C and C  libraries    Using the Assembler  ARM DUI 0379     This document describes how to use the various features of the assembler  armasm     Assembler Reference  ARM DUI 0588   This document provides reference information for the various features of the  assembler  armasm  It also provides a detailed description of each assembler  command line option    Using the Linker  ARM DUI 0377     This document describes how to use the various features of the linker  armlink     Linker Reference  ARM DUI 0458   This document provides reference infor
31. opyright    2011 ARM  All rights reserved     Non Confidential    2 18    Overview of the ARM Compiler toolchain    2 13 Autocompletion of compilation tools command line option    2 13 1 See also    ARM DUI 0592A  1D061811    You can specify a shortened version of a command line option with the autocompletion feature   To use the autocompletion feature  insert a full stop     after the characters to be autocompleted     The following rules apply to the autocompletion feature        you must separate arguments from the full stop by an equals     character or a space  character      you cannot use autocompletion for the arguments to an option   e you must include sufficient characters to make the autocompleted option unique     For example  use   diag_su  223 to specify   diag_suppress 223 on the command line     Specifying   diag  223 is not valid  because   diag  does not identify a single unique  command line option     Reference    Using the Assembler      Assembler commands listed in groups on page 7 3     Using the Compiler        Compiler command line options listed by group on page 3 4   Using the Linker      Linker command line options listed in groups on page 2 4     Creating Static Software Libraries with armar       armar command line options listed in groups on page 2 5   Using the fromelf Image Converter       Jromelf command line options listed in groups on page 2 7     Copyright    2011 ARM  All rights reserved  2 19  Non Confidential    Overview of the ARM Comp
32. orking and enables branching between ARM code and Thumb code     Tasks  Using the Compiler     Selecting the target CPU at compile time on page 5 8     Reference   Compiler Reference        arm on page 3 11        arm_only on page 3 11       cpu name on page 3 20      fpu name on page 3 44      thumb on page 3 90   Assembler Reference        arm on page 2 6       arm_only on page 2 6        cpu name on page 2 8      fpu name on page 2 13      thumb on page 2 23   Linker Reference        arm_only on page 2 9       cpu name on page 2 27         fpu name on page 2 57     Copyright    2011 ARM  All rights reserved  2 14  Non Confidential    Overview of the ARM Compiler toolchain    2 9 Toolchain support on 64 bit host platforms    2 9 1 See also    ARM DUI 0592A  1D061811    Although the toolchain is supported on certain 64 bit platforms  the tools are 32 bit applications   This limits the virtual address space and file size available to the tools  If these limits are  exceeded  armlink reports an error message to indicate that there is not enough memory  This  might cause confusion because sufficient physical memory is available but the application  cannot access it     Concepts     About the ARM Compiler toolchain on page 2 3     Copyright    2011 ARM  All rights reserved  2 15  Non Confidential    Overview of the ARM Compiler toolchain    2 10 Using special characters on the compilation tools command line    2 10 1 See also    ARM DUI 0592A  1D061811    You can use special cha
33. ormation     Copyright    2011 ARM  All rights reserved  2 12  Non Confidential    2 7 1    Overview of the ARM Compiler toolchain    Table 2 1 Environment variables used by the toolchain  continued        Environment variable 2 Setting       ARMLIB    Used only if you do not specify the compiler option   1ibpath and ARMCCnnLIB is either not set  or is empty   See the description of ARMCCnnLIB for more information        CYGPATH    The location of the cygpath exe file on your system in Cygwin path format  For example   C  cygwin bin cygpath  exe  You must set this if you want to specify paths in Cygwin format for the compilation tools        TMP    Used on Windows platforms to specify the directory to be used for temporary files  If TMP is  not defined  or if it is set to the name of a directory that does not exist  temporary files are  created in the current working directory        a  Replace nn with the version of the toolchain you are using  For example  ARMCC41INC if you are using ARM Compiler toolchain    v4 1     See also    ARM DUI 0592A    1D061811    Concepts    TMP environment variable for temporary file directories on page 2 23    Specifying command line options with an environment variable on page 2 24       Specifying Cygwin paths in compilation tools on Windows on page 2 25   Using the Assembler       Chapter 2 Overview of the Assembler    Using the Compiler      Chapter 2 Overview of the compiler    Using the Linker       Chapter 2 Overview of the linker    Us
34. r the ARM Architecture  Base Standard                   2 10  2 7 Toolchain environment variables oo    eee eeeeeceeeeeeeeeeeeeeeaeeeeeaeeeseneeeeeeeeennaeeeseeaees 2 12  2 8 ARM architectures supported by the toolchain                ccccccecsececeeeeceeeeeeeeeeteeeeeetees 2 14  2 9 Toolchain support on 64 bit host platforms              cccccceceeecteeeeeeeeeeeeeeeeeaeeeeeeeeeaees 2 15  2 10 Using special characters on the compilation tools command line            eee 2 16  2 11 Compilation tools command line Option rules      2 17  2 12 About ordering the compilation tools command line Options       2 18  2 13 Autocompletion of compilation tools command line Option           ec eeeeeeeeeeeteees 2 19  2 14 Using a text file to specify command line Options                 ccecceeeeeeeeeceeeeseeeteeeeetees 2 20  2 15 Portability of source files between hosts               cccececeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeesenneeeees 2 22  2 16 TMP environment variable for temporary file directories                   cceeeeeeeteteeeeees 2 23  2 17 Specifying command line options with an environment variable                   00008 2 24  2 18 Specifying Cygwin paths in compilation tools on WindOWS                  c ceeeereees 2 25  2 19 Further reac     205  35 2ees E E T ET 2 26   Chapter 3 Creating an application  3 1 Using the Compilation tools ssion a a n 3 2  3 2 Using the compiler  vtec  orena i ae ci ele ee E 3 3  3 3 Using the  INKOR scssi circa tesaicsaneescetbentuenets tbaet sec
35. racters to select multiple symbolic names in some compilation tools  command arguments        the wildcard character   can be used to match any name     the wildcard character   can be used to match any single character     If you are using a special character on Unix platforms  you must enclose the options in quotes  to prevent the shell expanding the selection     For example  enter               instead of     x      Note    The armar command line options must be preceded by a    This is different from some earlier  versions of armar  and from some third party archivers           Reference   Using the Assembler       Assembler command line syntax on page 7 2      Assembler commands listed in groups on page 7 3    Using the Compiler       Compiler command line syntax on page 3 3      Compiler command line options listed by group on page 3 4     Using the Linker     Linker command line syntax on page 2 3    Linker command line options listed in groups on page 2 4     Creating Static Software Libraries with armar      armar command line syntax on page 2 4    armar command line options listed in groups on page 2 5     Using the fromelf Image Converter        fromelf command line syntax on page 2 6     fromelf command line options listed in groups on page 2 7   Copyright    2011 ARM  All rights reserved  2 16    Non Confidential    Overview of the ARM Compiler toolchain    2 11 Compilation tools command line option rules    2 11 1 See also    ARM DUI 0592A  1D061811    You can 
36. ur  supplier and give        your name and company    ARM DUI 0592A Copyright    2011 ARM  All rights reserved  1 1  ID061811 Non Confidential    ARM DUI 0592A  1D061811    Conventions and feedback       the serial number of the product     details of the release you are using     details of the platform you are using  such as the hardware platform   operating system type and version      a small standalone sample of code that reproduces the problem     a clear explanation of what you expected to happen  and what actually  happened     the commands you used  including any command line options      sample output illustrating the problem     the version string of the tools  including the version number and build  numbers     Feedback on content    If you have comments on content then send an e mail to errata arm  com  Give       the title      the number  ARM DUI 0592A     if viewing online  the topic names to which your comments apply     if viewing a PDF version of a document  the page numbers to which your    comments apply      a concise explanation of your comments    ARM also welcomes general suggestions for additions and improvements   ARM periodically provides updates and corrections to its documentation on the ARM  Information Center  together with knowledge articles and Frequently Asked Questions  FAQs    Other information     ARM Product Manuals  http    ww keil com support man_arm  htm    Keil Support Knowledgebase  http   www  keil com support knowledgebase asp    
37. ved  3 3  1ID061811 Non Confidential    3 2 4 See also    ARM DUI 0592A  1D061811    Creating an application    where      thumb Tells the compiler to generate Thumb code in preference to ARM code   However   pragma arm overrides this option    Tasks    Using the linker on page 3 5     Using the Compiler     Chapter 3 Getting started with the Compiler     Reference    Compiler Reference     Command line options on page 3 6    arm on page 3 11     arm_only on page 3 11    c on page 3 17     debug    no_debug on page 3 24   g on page 3 47    o filename on page 3 69    Onum on page 3 71     thumb on page 3 90    pragma arm on page 5 47   pragma thumb on page 5 60     Copyright    2011 ARM  All rights reserved   Non Confidential    3 4    Creating an application    3 3 Using the linker    The linker combines the contents of one or more object files with selected parts of one or more  object libraries to produce an image or object file     Typically  you invoke the linker as follows     armlink  options  file_1     file_n    3 3 1 Linking example    3 3 2 See also    ARM DUI 0592A  1D061811    To link the object file shapes o  use the command     armlink shapes o   info totals  o shapes axf    where     0 Specifies the output file as shapes  axf      info totals Tells the linker to display totals of the Code and Data sizes for input  objects and libraries    Tasks   Using the Linker        Chapter 3 Linking models supported by armlink     Reference  Linker Reference        Chapter
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Installation and Operating Instructions for Automatic Low Voltage  User Manual  Service Manual  Guida dell`utente Computer a schermo tattile Serie B    Copyright © All rights reserved. 
   Failed to retrieve file