Keil™, An ARM® Company

RealView Compiler Reference Guide

Technical Support

On-Line Manuals

RealView Compiler Reference Guide

Preface
Introduction
Compiler Command-line Options
Command-line options
‑Aopt
‑‑[no_]alternative_tokens
‑‑[no_]anachronisms
--apcs=qualifer...qualifier
‑‑arm
‑‑asm
‑‑[no_]autoinline
‑‑bigend
‑‑[no_]brief_diagnostics
--bss_threshold=num
‑c
‑C
‑‑c90
‑‑c99
‑‑[no_]code_gen
--[no_]compile_all_input
‑‑cpp
‑‑create_pch=filename
‑Dname[(parm-list)][=def]
‑‑[no_]data_reorder
‑‑[no_]debug
‑‑[no_]debug_macros
‑‑default_extension=ext
‑‑[no_]dep_name
‑‑depend=filename
‑‑depend_format=string
--[no_]depend_system_headers
‑‑device=list
‑‑device=name
--device_opt=option
‑‑diag_error=tag[,tag,...]
‑‑diag_remark=tag[,tag,... ]
‑‑diag_style={arm|ide|gnu}
‑‑diag_suppress=tag[,tag,...]
--diag_suppress=optimizations
‑‑diag_warning=tag[,tag,...]
--diag_warning=optimizations
‑‑[no_]dollar
‑‑dwarf2
‑‑dwarf3
‑E
‑‑enum_is_int
‑‑errors=filename
‑‑[no_]exceptions
‑‑[no_]exceptions_unwind
‑‑[no_]export_all_vtbl
‑‑[no_]export_defs_implicitly
--[no_]extended_initializers
‑‑feedback=filename
--[no_]force_new_nothrow
‑‑forceinline
‑‑fpmode=model
‑‑fpu=list
‑‑fpu=name
‑‑[no_]friend_injection
‑‑gnu
‑‑[no_]guiding_decls
‑‑help
‑‑[no_]hide_all
‑Idir[,dir,...]
‑‑[no_]implicit_include
--[no_]implicit_include_searches
‑‑[no_]implicit_typename
‑‑info=totals
‑‑[no_]inline
‑‑interleave
‑Jdir[,dir,...]
‑‑kandr_include
‑Lopt
‑‑library_interface=lib
--library_type=lib
‑‑list
‑‑littleend
‑‑locale=lang_country
‑‑loose_implicit_cast
‑‑[no_]lower_ropi
‑‑[no_]lower_rwpi
‑M
‑‑md
‑‑message_locale=lang_country[.codepage]
‑‑min_array_alignment=opt
‑‑[no_]multibyte_chars
‑‑[no_]multifile
‑‑[no_]nonstd_qualifier_deduction
‑o filename
‑Onum
‑‑[no_]old_specializations
-‑omf_browse
‑Ospace
‑Otime
‑‑[no_]parse_templates
‑‑pch
‑‑pch_dir=dir
‑‑[no_]pch_messages
‑‑[no_]pch_verbose
‑‑pending_instantiations=n
‑‑pointer_alignment=num
--[no_]project=filename
‑‑preinclude=filename
--[no_]reduce_paths
--reinitialize_workdir
‑‑remarks
‑‑[no_]restrict
‑‑[no_]rtti
‑S
‑‑[un]signed_bitfields
‑‑[un]signed_chars
‑‑show_cmdline
‑‑split_ldm
‑‑split_sections
‑‑[no_]strict
‑‑strict_warnings
‑‑sys_include
‑‑thumb
‑Uname
‑‑[no_]unaligned_access
‑‑use_pch=filename
‑‑[no_]using_std
‑‑[no_]vfe
‑‑via=filename
--[no_]vla
‑‑vsn
‑W
--wchar16
--wchar32
--workdir=directory
‑‑[no_]wrap_diagnostics
Language Extensions
Compiler-specific Features
C and C++ Implementation Details
Via File Syntax
Standard C Implementation Definition
Standard C++ Implementation Definition
C and C++ Compiler Implementation Limits

‑‑device=name

2.1.29. â€'â€'device=name

This option selects the device for which the compiler must generate code. Table 2.2 lists the devices and their available processor settings.

Note

You must specify a device using this command line option. Otherwise, the compiler generates an error.

Syntax

--device=name

where name is a device name listed in Table 2.2.

To get a full list of the available devices, use the --device=list option.

Table 2.2. Devices

Device NameDevice OptionsProcessorEndiannessFloating-point architecture
DARMAD Analog Devices ADuC7000

--li

none, softvfp (default)
DARMAT Atmel AT91xxxx

--li

none, softvfp (default)
DARMATS Atmel AT91SAM7xxx

--li

none, softvfp (default)
DARMMAC7 Actel MCore7

--bi

none, softvfp (default)
DARMO OKI ARM based

--li

none, softvfp (default)
DARMP NXP LPC2000

--li

none, softvfp (default)
DARMP9 NXP LPC2917 & LPC2919

--li

none, softvfp (default)
DARMS Samsung

--li

none, softvfp (default)
DARMSH Sharp

--li

none, softvfp (default)
DARMSSC Samsung SmartCards

--li, --bi (default)

none, softvfp (default)
DARMST ST STR7 series

--li

none, softvfp (default)
DARMTMS TI TMS470

--bi

none, softvfp (default)
DARMATS9 Atmel AT91SAM9xxx

--li

none, softvfp (default)
DARMO9 OKI ARM9 based

--li

none, softvfp (default)
DARMP3 NXP LPC3000

--li

none, softvfp (default), softvfp+vfpv2, vfpv2
DARMSS9 Samsung ARM9 based

--li (default), --bi

none, softvfp (default)
DARMSSC9 Samsung SmartCards ARM9 based

--li, --bi (default)

none, softvfp (default)
DARMST9 ST STR9 series

--li

none, softvfp (default)
DARMCM1no_os_extension, os_extension (default)FPGA Cortex-M1

--li

none, softvfp (default)
DLMrev0 (default), rev1Luminary

--li

none, softvfp (default)
DARMSTM ST STM series

--li

none, softvfp (default)

Usage

Selection of a device automatically selects the processor (CPU), the default floating-point architecture, and the default endianness. You can use additional options to change the default settings:

  • Use --device_opt to select a revision or device extension if applicable.

  • Use --fpu to change the target floating-point architecture.

  • Use --bi or --li to change the endianness if applicable.

Note

  • Specifying a device that supports Thumb instructions, such as â€'â€'device=DARMP, does not make the compiler generate Thumb code. It only enables features of the processor to be used, such as long multiply. Use the â€'â€'thumb option to generate Thumb code.

  • If you compile for Thumb, that is with the --thumb option on the command line, the compiler compiles as much of the code as possible using the Thumb instruction set. However, the compiler might generate ARM code for some parts of the compilation. For example, if you are compiling code for a Thumbâ€'1 processor and using VFP, any function containing floatingâ€'point operations is compiled for ARM.

  • If you are compiling code for ARMv7-M, for example â€'â€'device=DARMSTM, you do not need to specify â€'â€'thumb on the command line, because ARMv7â€'M supports Thumbâ€'2 only.

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0376A