Darm 4 EWARM Development Guide.ENU
EWARM_DevelopmentGuide.ENU
User Manual: Pdf
Open the PDF directly: View PDF
Page Count: 439 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- Brief contents
- Contents
- Tables
- Preface
- Part 1. Using the build tools
- Introduction to the IAR build tools
- Developing embedded applications
- Data storage
- Functions
- Function-related extensions
- ARM and Thumb code
- Execution in RAM
- Primitives for interrupts, concurrency, and OS-related programming
- Linking using ILINK
- Linking your application
- Linking considerations
- Choosing a linker configuration file
- Defining your own memory areas
- Placing sections
- Reserving space in RAM
- Keeping modules
- Keeping symbols and sections
- Application startup
- Setting up the stack
- Setting up the heap
- Setting up the atexit limit
- Changing the default initialization
- Interaction between ILINK and the application
- Standard library handling
- Producing other output formats than ELF/DWARF
- Veneers
- Hints for troubleshooting
- Linking considerations
- The DLIB runtime environment
- Introduction to the runtime environment
- Using a prebuilt library
- Choosing formatters for printf and scanf
- Overriding library modules
- Building and using a customized library
- System startup and termination
- Customizing system initialization
- Standard streams for input and output
- Configuration symbols for printf and scanf
- File input and output
- Locale
- Environment interaction
- Signal and raise
- Time
- Strtod
- Assert
- Atexit
- C-SPY runtime interface
- Checking module consistency
- Assembler language interface
- Using C++
- Application-related considerations
- Efficient coding for embedded applications
- Selecting data types
- Controlling data and function placement in memory
- Controlling compiler optimizations
- Facilitating good code generation
- Part 2. Reference information
- External interface details
- Compiler options
- Options syntax
- Summary of compiler options
- Descriptions of options
- --aapcs
- --aeabi
- --align_sp_on_irq
- --arm
- --char_is_signed
- --cpu
- --cpu_mode
- -D
- --debug, -r
- --dependencies
- --diag_error
- --diag_remark
- --diag_suppress
- --diag_warning
- --diagnostics_tables
- --discard_unused_publics
- --dlib_config
- -e
- --ec++
- --eec++
- --enable_hardware_workaround
- --enable_multibytes
- --endian
- --enum_is_int
- --error_limit
- -f
- --fpu
- --header_context
- -I
- --interwork
- -l
- --legacy
- --mfc
- --migration_preprocessor_extensions
- --no_clustering
- --no_code_motion
- --no_const_align
- --no_cse
- --no_fragments
- --no_guard_calls
- --no_inline
- --no_path_in_file_macros
- --no_scheduling
- --no_tbaa
- --no_typedefs_in_diagnostics
- --no_unaligned_access
- --no_unroll
- --no_warnings
- --no_wrap_diagnostics
- -O
- -o, --output
- --only_stdout
- --output, -o
- --predef_macros
- --preinclude
- --preprocess
- --public_equ
- -r, --debug
- --remarks
- --require_prototypes
- --section
- --separate_cluster_for_initialized_variables
- --silent
- --strict_ansi
- --thumb
- --use_unix_directory_separators
- --warnings_affect_exit_code
- --warnings_are_errors
- Linker options
- Summary of linker options
- Descriptions of options
- --BE8
- --BE32
- --config
- --config_def
- --cpp_init_routine
- --cpu
- --define_symbol
- --diag_error
- --diag_remark
- --diag_suppress
- --diag_warning
- --diagnostics_tables
- --entry
- --error_limit
- --export_builtin_config
- -f
- --force_output
- --image_input
- --keep
- --log
- --log_file
- --mangled_names_in_messages
- --map
- --no_fragments
- --no_library_search
- --no_locals
- --no_remove
- --no_veneers
- --no_warnings
- --no_wrap_diagnostics
- -o, --output
- --only_stdout
- --ose_load_module
- --output, -o
- --pi_veneers
- --place_holder
- --redirect
- --remarks
- --semihosting
- --silent
- --strip
- --warnings_affect_exit_code
- --warnings_are_errors
- Data representation
- Compiler extensions
- Extended keywords
- Pragma directives
- Intrinsic functions
- Summary of intrinsic functions
- Descriptions of intrinsic functions
- _ _CLZ
- _ _disable_fiq
- _ _disable_interrupt
- _ _disable_irq
- _ _DMB
- _ _DSB
- _ _enable_fiq
- _ _enable_interrupt
- _ _enable_irq
- _ _get_BASEPRI
- _ _get_CONTROL
- _ _get_CPSR
- _ _get_FAULTMASK
- _ _get_interrupt_state
- _ _get_PRIMASK
- _ _ISB
- _ _LDC
- _ _LDCL
- _ _LDC2
- _ _LDC2L
- _ _LDC_noidx
- _ _LDCL_noidx
- _ _LDC2_noidx
- _ _LDC2L_noidx
- _ _LDREX
- _ _MCR
- _ _MRC
- _ _no_operation
- _ _QADD
- _ _QADD8
- _ _QADD16
- _ _QASX
- _ _QDADD
- _ _QDOUBLE
- _ _QDSUB
- _ _QFlag
- _ _QSUB
- _ _QSUB8
- _ _QSUB16
- _ _QSAX
- _ _REV
- _ _REVSH
- _ _SADD8
- _ _SADD16
- _ _SASX
- _ _SEL
- _ _set_BASEPRI
- _ _set_CONTROL
- _ _set_CPSR
- _ _set_FAULTMASK
- _ _set_interrupt_state
- _ _set_PRIMASK
- _ _SHADD8
- _ _SHADD16
- _ _SHASX
- _ _SHSUB8
- _ _SHSUB16
- _ _SHSAX
- _ _SMUL
- _ _SSUB8
- _ _SSUB16
- _ _SSAX
- _ _STC
- _ _STCL
- _ _STC2
- _ _STC2L
- _ _STC_noidx
- _ _STCL_noidx
- _ _STC2_noidx
- _ _STC2L_noidx
- _ _STREX
- _ _SWP
- _ _SWPB
- _ _UADD8
- _ _UADD16
- _ _UASX
- _ _UHADD8
- _ _UHADD16
- _ _UHASX
- _ _UHSAX
- _ _UHSUB8
- _ _UHSUB16
- _ _UQADD8
- _ _UQADD16
- _ _UQASX
- _ _UQSUB8
- _ _UQSUB16
- _ _UQSAX
- _ _USAX
- _ _USUB8
- _ _USUB16
- The preprocessor
- Library functions
- The linker configuration file
- Section reference
- IAR utilities
- The IAR Archive Tool-iarchive
- Invocation syntax
- Summary of iarchive commands
- Summary of iarchive options
- Descriptions of command line options
- -f
- --create
- --delete, -d
- --extract, -x
- -o
- --replace, -r
- --silent, -S
- --toc, -t
- --symbols
- --verbose, -V
- Diagnostic messages
- La001: could not open file filename
- La002: illegal path pathname
- La006: too many parameters to cmd command
- La007: too few parameters to cmd command
- La008: lib is not a library file
- La009: lib has no symbol table
- La010: no library parameter given
- La011: file file already exists
- La013: file confusions, lib given as both library and object
- La014: module module not present in archive lib
- La015: internal error
- Ms003: could not open file filename for writing
- Ms004: problem writing to file filename
- Ms005: problem closing file filename
- The IAR ELF Tool-ielftool
- The IAR ELF Dumper for ARM-ielfdumparm
- The IAR ELF Object Tool-iobjmanip
- Invocation syntax
- Summary of iobjmanip options
- Descriptions of command line options
- -f
- --remove_section
- --rename_section
- --rename_symbol
- --strip
- Diagnostic messages
- Lm001: No operation given
- Lm002: Expected nr1 parameters but got nr2
- Lm003: Invalid section/symbol renaming pattern pattern
- Lm004: Could not open file filename
- Lm005: ELF format error msg
- Lm006: Unsupported section type nr
- Lm007: Unknown section type nr
- Lm008: Symbol symbol has unsupported format
- Lm009: Group type nr not supported
- Lm010: Unsupported ELF feature in file: msg
- Lm011: Unsupported ELF file type
- Lm012: Ambiguous rename for section/symbol name (alt1 and alt2)
- Lm013: Section name1 removed due to transitive dependency on name2
- Lm014: File has no section with index nr
- Ms003: could not open file filename for writing
- Ms004: problem writing to file filename
- Ms005: problem closing file filename
- The IAR Absolute Symbol Exporter-isymexport
- Invocation syntax
- Summary of isymexport options
- Descriptions of options
- --edit
- Steering files
- Show directive
- Hide directive
- Rename directive
- Diagnostic messages
- Es001: could not open file filename
- Es002: illegal path pathname
- Es003: format error: message
- Es004: no input file
- Es005: no output file
- Es006: too many input files
- Es007: input file is not an ELF executable
- Es008: unknown directive: directive
- Es009: unexpected end of file
- Es010: unexpected end of line
- Es011: unexpected text after end of directive
- Es012: expected text
- Es013: pattern can contain at most one * or ?
- Es014: rename patterns have different wildcards
- Es014: ambiguous pattern match: symbol matches more than one rename pattern
- The IAR Archive Tool-iarchive
- Implementation-defined behavior
- Descriptions of implementation-defined behavior
- Translation
- Environment
- Identifiers
- Characters
- Source and execution character sets (5.2.1)
- Bits per character in execution character set (5.2.4.2.1)
- Mapping of characters (6.1.3.4)
- Unrepresented character constants (6.1.3.4)
- Character constant with more than one character (6.1.3.4)
- Converting multibyte characters (6.1.3.4)
- Range of 'plain' char (6.2.1.1)
- Integers
- Floating point
- Arrays and pointers
- Registers
- Structures, unions, enumerations, and bitfields
- Qualifiers
- Declarators
- Statements
- Preprocessing directives
- IAR DLIB Library functions
- NULL macro (7.1.6)
- Diagnostic printed by the assert function (7.2)
- Domain errors (7.5.1)
- Underflow of floating-point values sets errno to ERANGE (7.5.1)
- fmod() functionality (7.5.6.4)
- signal() (7.7.1.1)
- Terminating newline character (7.9.2)
- Blank lines (7.9.2)
- Null characters appended to data written to binary streams (7.9.2)
- Files (7.9.3)
- remove() (7.9.4.1)
- rename() (7.9.4.2)
- %p in printf() (7.9.6.1)
- %p in scanf() (7.9.6.2)
- Reading ranges in scanf() (7.9.6.2)
- File position errors (7.9.9.1, 7.9.9.4)
- Message generated by perror() (7.9.10.4)
- Allocating zero bytes of memory (7.10.3)
- Behavior of abort() (7.10.4.1)
- Behavior of exit() (7.10.4.3)
- Environment (7.10.4.4)
- system() (7.10.4.5)
- Message returned by strerror() (7.11.6.2)
- The time zone (7.12.1)
- clock() (7.12.2.1)
- Descriptions of implementation-defined behavior
- Glossary
- Index