04.01.2015 Views

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Compiler Command-line Options<br />

• --gnu_defaults on page 2-68.<br />

2.1.149 --signed_chars, --unsigned_chars<br />

This option makes the char type signed or unsigned.<br />

When char is signed, the macro __FEATURE_SIGNED_CHAR is defined by the compiler.<br />

Note<br />

Care must be taken when mixing translation units that have been compiled with and<br />

without this option, and that share interfaces or data structures.<br />

The <strong>ARM</strong> ABI defines char as an unsigned byte, and this is the interpretation used by<br />

the C++ libraries supplied with RVCT.<br />

Default<br />

The default is --unsigned_chars.<br />

See also<br />

• Predefined macros on page 4-198.<br />

2.1.150 --split_ldm<br />

This option instructs the compiler to split LDM and STM instructions into two or more LDM<br />

or STM instructions.<br />

When --split_ldm is selected, the maximum number of register transfers for an LDM or<br />

STM instruction is limited to:<br />

• five, for all STMs<br />

• five, for LDMs that do not load the PC<br />

• four, for LDMs that load the PC.<br />

Where register transfers beyond these limits are required, multiple LDM or STM<br />

instructions are used.<br />

Usage<br />

The --split_ldm option can be used to reduce interrupt latency on <strong>ARM</strong> systems that:<br />

• do not have a cache or a write buffer, for example, a cacheless <strong>ARM</strong>7TDMI<br />

• use zero-wait-state, 32-bit memory.<br />

<strong>ARM</strong> DUI 0348C Copyright © 2007-2010 <strong>ARM</strong>. All rights reserved. 2-117<br />

ID101213<br />

Non-Confidential,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!