Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword or section
Like this
5Activity

Table Of Contents

Tables
Preface
Who should read this guide
How to use this guide
What this guide contains
Other documentation
FURTHER READING
Document conventions
TYPOGRAPHIC CONVENTIONS
NAMING CONVENTIONS
Part 1. Using the compiler
Getting started
IAR language overview
Supported MSP430 devices
Building applications—an overview
COMPILING
LINKING
Basic project configuration
PROCESSOR CONFIGURATION
ACCESSING LOW-LEVEL FEATURES
Data storage
Introduction
DIFFERENT WAYS TO STORE DATA
Data models (MSP430X only)
SPECIFYING A DATA MODEL
Memory types (MSP430X only)
DATA16
DATA20
USING DATA MEMORY ATTRIBUTES
POINTERS AND MEMORY TYPES
STRUCTURES AND MEMORY TYPES
MORE EXAMPLES
C++ and memory types (MSP430X only)
Auto variables—on the stack
THE STACK
Dynamic memory on the heap
Functions
Function-related extensions
Primitives for interrupts, concurrency, and OS-related programming
INTERRUPT FUNCTIONS
Interrupt Vector Generator interrupt functions
Interrupt functions for the MSP430X architecture
MONITOR FUNCTIONS
C++ AND SPECIAL FUNCTION TYPES
Execution in RAM
Placing code and data
Segments and memory
WHAT IS A SEGMENT?
Placing segments in memory
CUSTOMIZING THE LINKER CONFIGURATION FILE
Data segments
STATIC MEMORY SEGMENTS
THE HEAP
LOCATED DATA
USER-DEFINED SEGMENTS
Code segments
STARTUP CODE
NORMAL CODE
INTERRUPT FUNCTIONS FOR MSP430X
INTERRUPT VECTORS
CODE IN RAM
C++ dynamic initialization
Verifying the linked result of code and data placement
SEGMENT TOO LONG ERRORS AND RANGE ERRORS
LINKER MAP FILE
The DLIB runtime environment
Introduction to the runtime environment
RUNTIME ENVIRONMENT FUNCTIONALITY
SETTING UP THE RUNTIME ENVIRONMENT
INCLUDING C-SPY DEBUGGING SUPPORT
THE DEBUG LIBRARY FUNCTIONALITY
THE C-SPY TERMINAL I/O WINDOW
Overriding library modules
Building and using a customized library
SETTING UP A LIBRARY PROJECT
MODIFYING THE LIBRARY FUNCTIONALITY
USING A CUSTOMIZED LIBRARY
System startup and termination
SYSTEM STARTUP
SYSTEM TERMINATION
Customizing system initialization
__LOW_LEVEL_INIT
MODIFYING THE FILE CSTARTUP.S43
Library configurations
CHOOSING A RUNTIME CONFIGURATION
Standard streams for input and output
IMPLEMENTING LOW-LEVEL CHARACTER INPUT AND OUTPUT
Configuration symbols for printf and scanf
CUSTOMIZING FORMATTING CAPABILITIES
File input and output
Locale
LOCALE SUPPORT IN PREBUILT LIBRARIES
CUSTOMIZING THE LOCALE SUPPORT
CHANGING LOCALES AT RUNTIME
Environment interaction
THE GETENV FUNCTION
THE SYSTEM FUNCTION
Signal and raise
Time
Strtod
Assert
Heaps
Hardware multiplier support
Checking module consistency
RUNTIME MODEL ATTRIBUTES
USING RUNTIME MODEL ATTRIBUTES
PREDEFINED RUNTIME ATTRIBUTES
USER-DEFINED RUNTIME MODEL ATTRIBUTES
The CLIB runtime environment
Runtime environment
Input and output
CHARACTER-BASED I/O
FORMATTERS USED BY PRINTF AND SPRINTF
FORMATTERS USED BY SCANF AND SSCANF
Overriding default library modules
C-SPY runtime interface
THE DEBUGGER TERMINAL I/O WINDOW
TERMINATION
Assembler language interface
Mixing C and assembler
INTRINSIC FUNCTIONS
MIXING C AND ASSEMBLER MODULES
INLINE ASSEMBLER
Calling assembler routines from C
CREATING SKELETON CODE
COMPILING THE CODE
Calling assembler routines from C++
Calling convention
CHOOSING A CALLING CONVENTION
FUNCTION DECLARATIONS
USING C LINKAGE IN C++ SOURCE CODE
PRESERVED VERSUS SCRATCH REGISTERS
FUNCTION ENTRANCE
FUNCTION EXIT
Registers used for returning values
RESTRICTIONS FOR SPECIAL FUNCTION TYPES
EXAMPLES
Example 1
FUNCTION DIRECTIVES
Calling functions
ASSEMBLER INSTRUCTIONS USED FOR CALLING FUNCTIONS
Call frame information
CFI DIRECTIVES
CREATING ASSEMBLER SOURCE WITH CFI SUPPORT
Using C
C language overview
Extensions overview
ENABLING LANGUAGE EXTENSIONS
IAR C language extensions
EXTENSIONS FOR EMBEDDED SYSTEMS PROGRAMMING
RELAXATIONS TO STANDARD C
Using C++
Overview
STANDARD EMBEDDED C++
EXTENDED EMBEDDED C++
ENABLING C++ SUPPORT
Feature descriptions
CLASSES
FUNCTION TYPES
NEW AND DELETE OPERATORS
TEMPLATES
Templates and data memory attributes
VARIANTS OF CAST OPERATORS
MUTABLE
NAMESPACE
THE STD NAMESPACE
USING INTERRUPTS AND EC++ DESTRUCTORS
C++ language extensions
Efficient coding for embedded applications
●Selecting data types
Selecting data types
USING EFFICIENT DATA TYPES
FLOATING-POINT TYPES
ALIGNMENT OF ELEMENTS IN A STRUCTURE
ANONYMOUS STRUCTS AND UNIONS
Controlling data and function placement in memory
DATA PLACEMENT AT AN ABSOLUTE LOCATION
DATA AND FUNCTION PLACEMENT IN SEGMENTS
Controlling compiler optimizations
SCOPE FOR PERFORMED OPTIMIZATIONS
Multi-file compilation units
OPTIMIZATION LEVELS
SPEED VERSUS SIZE
FINE-TUNING ENABLED TRANSFORMATIONS
Facilitating good code generation
WRITING OPTIMIZATION-FRIENDLY SOURCE CODE
SAVING STACK SPACE AND RAM MEMORY
FUNCTION PROTOTYPES
INTEGER TYPES AND BIT NEGATION
PROTECTING SIMULTANEOUSLY ACCESSED VARIABLES
ACCESSING SPECIAL FUNCTION REGISTERS
NON-INITIALIZED VARIABLES
EFFICIENT SWITCH STATEMENTS
Part 2. Reference information
External interface details
Invocation syntax
COMPILER INVOCATION SYNTAX
PASSING OPTIONS
ENVIRONMENT VARIABLES
Include file search procedure
Compiler output
Diagnostics
MESSAGE FORMAT
SEVERITY LEVELS
SETTING THE SEVERITY LEVEL
INTERNAL ERROR
Compiler options
Options syntax
TYPES OF OPTIONS
RULES FOR SPECIFYING PARAMETERS
Rules for specifying a filename or directory as parameters
Summary of compiler options
Descriptions of options
--c89
--char_is_signed
--char_is_unsigned
--clib
--core
-D
--data_model
--debug, -r
--dependencies
--diag_error
--diag_remark
--diag_suppress
--diag_warning
--diagnostics_tables
--discard_unused_publics
Syntax --discard_unused_publics
--dlib
--dlib_config
--double
-e
--ec++
--eec++
--enable_multibytes
--error_limit
-f
--header_context
-I
-l
--library_module
--lock_r4
--lock_r5
--mfc
--migration_preprocessor_extensions
Syntax --migration_preprocessor_extensions
--module_name
--multiplier
--multiplier_location
--multiplier_location=4CO
--no_code_motion
--no_cse
--no_inline
--no_path_in_file_macros
Syntax --no_path_in_file_macros
--no_static_destruction
Syntax --no_static_destruction
--no_system_include
--no_tbaa
--no_typedefs_in_diagnostics
Syntax --no_typedefs_in_diagnostics
--no_unroll
--no_warnings
--no_wrap_diagnostics
-O
--omit_types
--only_stdout
--output, -o
--pic
--predef_macros
--strict
--system_include_dir
--vla
--warnings_affect_exit_code
Syntax --warnings_affect_exit_code
--warnings_are_errors
Data representation
Alignment
ALIGNMENT ON THE MSP430 MICROCONTROLLER
Basic data types
INTEGER TYPES
Bitfields
Pointer types
FUNCTION POINTERS
DATA POINTERS
CASTING
Structure types
ALIGNMENT
GENERAL LAYOUT
PACKED STRUCTURE TYPES
Type qualifiers
DECLARING OBJECTS VOLATILE
DECLARING OBJECTS VOLATILE AND CONST
DECLARING OBJECTS CONST
Data types in C++
Extended keywords
General syntax rules for extended keywords
TYPE ATTRIBUTES
OBJECT ATTRIBUTES
Summary of extended keywords
Descriptions of extended keywords
__cc_version1
__cc_version2
__data16
__data20
__interrupt
__intrinsic
__monitor
__no_init
__noreturn
__persistent
__ramfunc
__raw
__regvar
__root
__ro_placement
__save_reg20
__task
Pragma directives
Summary of pragma directives
Descriptions of pragma directives
basic_template_matching
bis_nmi_ie1
bitfields
constseg
data_alignment
dataseg
diag_default
diag_error
diag_remark
diag_suppress
diag_warning
error
include_alias
inline
language
location
message
no_epilogue
object_attribute
optimize
pack
__printf_args
required
rtmodel
__scanf_args
segment
STDC CX_LIMITED_RANGE
STDC FENV_ACCESS
STDC FP_CONTRACT
type_attribute
vector
Intrinsic functions
Summary of intrinsic functions
Descriptions of intrinsic functions
__bcd_add_type
__bic_SR_register
__bic_SR_register_on_exit
__bis_SR_register
__bis_SR_register_on_exit
__data16_read_addr
__data16_write_addr
__swap_bytes
The preprocessor
Overview of the preprocessor
Descriptions of predefined preprocessor symbols
Descriptions of miscellaneous preprocessor extensions
NDEBUG
#warning message
Library functions
Library overview
HEADER FILES
LIBRARY OBJECT FILES
REENTRANCY
IAR DLIB Library
C HEADER FILES
C++ HEADER FILES
LIBRARY FUNCTIONS AS INTRINSIC FUNCTIONS
ADDED C FUNCTIONALITY
IAR CLIB Library
LIBRARY DEFINITIONS SUMMARY
Segment reference
Summary of segments
Descriptions of segments
CHECKSUM
CODE
CODE_I
CODE_ID
CSTACK
CSTART
DATA16_AC
DATA16_AN
DATA16_C
DATA16_HEAP
DATA16_I
DATA16_ID
DATA16_N
DATA16_P
DATA16_Z
DATA20_AC
DATA20_AN
DATA20_C
DATA20_HEAP
DATA20_I
DATA20_ID
DATA20_N
DATA20_P
DATA20_Z
DIFUNCT
INFO
INFOA
INFOB
INFOC
INFOD
INTVEC
ISR_CODE
REGVAR_AN
RESET
Implementation-defined behavior
Descriptions of implementation-defined behavior
J.3.1 Translation
J.3.2 Environment
J.3.3 Identifiers
J.3.4 Characters
J.3.5 Integers
J.3.6 Floating point
J.3.7 Arrays and pointers
J.3.8 Hints
J.3.9 Structures, unions, enumerations, and bitfields
J.3.10 Qualifiers
J.3.11 Preprocessing directives
Recognized pragma directives (6.10.6)
J.3.12 Library functions
J.3.13 Architecture
J.4 Locale
Index
0 of .
Results for:
No results containing your search query
P. 1
EW430_CompilerReference

EW430_CompilerReference

Ratings: (0)|Views: 2,406 |Likes:
Published by IDKronos

More info:

Published by: IDKronos on Oct 14, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/21/2012

pdf

text

original

You're Reading a Free Preview
Pages 7 to 34 are not shown in this preview.
You're Reading a Free Preview
Pages 41 to 74 are not shown in this preview.
You're Reading a Free Preview
Pages 81 to 207 are not shown in this preview.
You're Reading a Free Preview
Pages 214 to 262 are not shown in this preview.
You're Reading a Free Preview
Pages 269 to 336 are not shown in this preview.

Activity (5)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
jice0 liked this
kultur2k8 liked this
Andres Fernandez liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->