Compiler and Platform specific definitions and typedefs for the IAR ARM C compiler. More...

Macros

#define HAL_HAS_INT64
 Denotes that this platform supports 64-bit data-types. More...
 
#define _HAL_USE_COMMON_PGM_
 Use the Master Program Memory Declarations from platform-common.h. More...
 
#define _HAL_USE_COMMON_MEMUTILS_
 If the line below is uncommented we will use Ember memory APIs, otherwise, we will use the C Standard library (memset,memcpy,memmove) APIs. More...
 
#define PLATCOMMONOKTOINCLUDE
 Include platform-common.h last to pick up defaults and common definitions. More...
 
#define MAIN_FUNCTION_PARAMETERS
 The kind of arguments the main function takes. More...
 
#define MAIN_FUNCTION_ARGUMENTS
 

Functions

void _executeBarrierInstructions (void)
 

Master Variable Types

These are a set of typedefs to make the size of all variable declarations explicitly known.

typedef bool boolean
 A typedef to make the size of the variable explicitly known. More...
 
typedef unsigned char int8u
 A typedef to make the size of the variable explicitly known. More...
 
typedef signed char int8s
 A typedef to make the size of the variable explicitly known. More...
 
typedef unsigned short int16u
 A typedef to make the size of the variable explicitly known. More...
 
typedef signed short int16s
 A typedef to make the size of the variable explicitly known. More...
 
typedef unsigned int int32u
 A typedef to make the size of the variable explicitly known. More...
 
typedef signed int int32s
 A typedef to make the size of the variable explicitly known. More...
 
typedef unsigned long long int64u
 A typedef to make the size of the variable explicitly known. More...
 
typedef signed long long int64s
 A typedef to make the size of the variable explicitly known. More...
 
typedef unsigned int PointerType
 A typedef to make the size of the variable explicitly known. More...
 

Miscellaneous Macros

void halInternalAssertFailed (const char *filename, int linenumber)
 A prototype definition for use by the assert macro. (see hal/micro/micro.h) More...
 
void halInternalResetWatchDog (void)
 Macro to reset the watchdog timer. Note: be very very careful when using this as you can easily get into an infinite loop if you are not careful. More...
 
#define BIGENDIAN_CPU
 A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian. More...
 
#define NTOHS(val)
 Define intrinsics for NTOHL and NTOHS to save code space by making endian.c compile to nothing. More...
 
#define NTOHL(val)
 A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian. More...
 
#define NO_STRIPPING
 A friendlier name for the compiler's intrinsic for not stripping. More...
 
#define EEPROM
 A friendlier name for the compiler's intrinsic for eeprom reference. More...
 
#define __SOURCEFILE__
 The SOURCEFILE macro is used by asserts to list the filename if it isn't otherwise defined, set it to the compiler intrinsic which specifies the whole filename and path of the sourcefile. More...
 
#define assert(condition)
 A custom implementation of the C language assert macro. This macro implements the conditional evaluation and calls the function halInternalAssertFailed(). (see hal/micro/micro.h) More...
 
#define halResetWatchdog()
 A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian. More...
 
#define __attribute__(...)
 Define attribute to nothing since it isn't handled by IAR. More...
 
#define UNUSED
 Declare a variable as unused to avoid a warning. Has no effect in IAR builds. More...
 
#define SIGNED_ENUM
 Some platforms need to cast enum values that have the high bit set. More...
 
#define STACK_FILL_VALUE
 Define the magic value that is interpreted by IAR C-SPY's Stack View. More...
 
#define RAMFUNC
 Define a generic RAM function identifier to a compiler specific one. More...
 
#define NO_OPERATION()
 Define a generic no operation identifier to a compiler specific one. More...
 
#define SET_REG_FIELD(reg, field, value)
 A convenience macro that makes it easy to change the field of a register to any unsigned value. More...
 
#define SET_CMSIS_REG(reg, mask, value)
 A convenience macro that makes it easy to change a register using the provided mask(s) and value(s). Example: SET_CMSIS_REG(GPIO->P[1].CFGH, (_GPIO_P_CFGH_Px5_MASK | _GPIO_P_CFGH_Px6_MASK), (GPIO_P_CFGH_Px5_OUT | GPIO_P_CFGH_Px6_OUT));. More...
 
#define SET_CMSIS_REG_FIELD(reg, field, value)
 A convenience macro that makes it easy to change the field of a register, as defined in CMSIS Device headers, to any unsigned value. Example using EM35xx: SET_CMSIS_REG_FIELD(GPIO->P[0].CFGL, GPIO_P_CFGL_Px0, _GPIO_P_CFGL_Px0_OUT);. More...
 
#define simulatedTimePasses()
 Stub for code not running in simulation. More...
 
#define simulatedTimePassesMs(x)
 Stub for code not running in simulation. More...
 
#define simulatedSerialTimePasses()
 Stub for code not running in simulation. More...
 
#define _HAL_USE_COMMON_DIVMOD_
 Use the Divide and Modulus Operations from platform-common.h. More...
 
#define VAR_AT_SEGMENT(__variableDeclaration, __segmentName)
 Provide a portable way to specify the segment where a variable lives. More...
 
#define STRINGIZE(X)
 Convinience macro for turning a token into a string. More...
 
#define ALIGNMENT(X)
 Provide a portable way to align data. More...
 
#define WEAK(__symbol)
 Provide a portable way to specify a symbol as weak. More...
 
#define NO_INIT(__symbol)
 Provide a portable way to specify a non initialized symbol. More...
 
#define STATIC_ASSERT(__condition, __errorstr)
 Provide a portable way to specify a compile time assert. More...
 

Portable segment names

#define __NO_INIT__
 Portable segment names. More...
 
#define __DEBUG_CHANNEL__
 Portable segment names. More...
 
#define __INTVEC__
 Portable segment names. More...
 
#define __CSTACK__
 Portable segment names. More...
 
#define __RESETINFO__
 Portable segment names. More...
 
#define __DATA_INIT__
 Portable segment names. More...
 
#define __DATA__
 Portable segment names. More...
 
#define __BSS__
 Portable segment names. More...
 
#define __CONST__
 Portable segment names. More...
 
#define __TEXT__
 Portable segment names. More...
 
#define __TEXTRW_INIT__
 Portable segment names. More...
 
#define __TEXTRW__
 Portable segment names. More...
 
#define __AAT__
 Portable segment names. More...
 
#define __BAT__
 Portable segment names. More...
 
#define __BAT_INIT__
 Portable segment names. More...
 
#define __FAT__
 Portable segment names. More...
 
#define __RAT__
 Portable segment names. More...
 
#define __NVM__
 Portable segment names. More...
 
#define __SIMEE__
 Portable segment names. More...
 
#define __PSSTORE__
 Portable segment names. More...
 
#define __EMHEAP__
 Portable segment names. More...
 
#define __EMHEAP_OVERLAY__
 Portable segment names. More...
 
#define __GUARD_REGION__
 Portable segment names. More...
 
#define __DLIB_PERTHREAD_INIT__
 Portable segment names. More...
 
#define __DLIB_PERTHREAD_INITIALIZED_DATA__
 Portable segment names. More...
 
#define __DLIB_PERTHREAD_ZERO_DATA__
 Portable segment names. More...
 
#define __INTERNAL_STORAGE__
 Portable segment names. More...
 
#define __LOCKBITS_IN_MAINFLASH__
 Portable segment names. More...
 
#define __UNRETAINED_RAM__
 Portable segment names. More...
 
#define _NO_INIT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _DEBUG_CHANNEL_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _INTVEC_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _CSTACK_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _RESETINFO_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _DATA_INIT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _DATA_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _BSS_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _CONST_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _TEXT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _TEXTRW_INIT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _TEXTRW_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _AAT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _BAT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _BAT_INIT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _FAT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _RAT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _NVM_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _SIMEE_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _PSSTORE_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _EMHEAP_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _EMHEAP_OVERLAY_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _GUARD_REGION_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_INIT_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _INTERNAL_STORAGE_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _LOCKBITS_IN_MAIN_FLASH_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _UNRETAINED_RAM_SEGMENT_BEGIN
 Portable segment names. More...
 
#define _NO_INIT_SEGMENT_END
 Portable segment names. More...
 
#define _DEBUG_CHANNEL_SEGMENT_END
 Portable segment names. More...
 
#define _INTVEC_SEGMENT_END
 Portable segment names. More...
 
#define _CSTACK_SEGMENT_END
 Portable segment names. More...
 
#define _RESETINFO_SEGMENT_END
 Portable segment names. More...
 
#define _DATA_INIT_SEGMENT_END
 Portable segment names. More...
 
#define _DATA_SEGMENT_END
 Portable segment names. More...
 
#define _BSS_SEGMENT_END
 Portable segment names. More...
 
#define _CONST_SEGMENT_END
 Portable segment names. More...
 
#define _TEXT_SEGMENT_END
 Portable segment names. More...
 
#define _TEXTRW_INIT_SEGMENT_END
 Portable segment names. More...
 
#define _TEXTRW_SEGMENT_END
 Portable segment names. More...
 
#define _AAT_SEGMENT_END
 Portable segment names. More...
 
#define _BAT_SEGMENT_END
 Portable segment names. More...
 
#define _BAT_INIT_SEGMENT_END
 Portable segment names. More...
 
#define _FAT_SEGMENT_END
 Portable segment names. More...
 
#define _RAT_SEGMENT_END
 Portable segment names. More...
 
#define _NVM_SEGMENT_END
 Portable segment names. More...
 
#define _SIMEE_SEGMENT_END
 Portable segment names. More...
 
#define _PSSTORE_SEGMENT_END
 Portable segment names. More...
 
#define _EMHEAP_SEGMENT_END
 Portable segment names. More...
 
#define _EMHEAP_OVERLAY_SEGMENT_END
 Portable segment names. More...
 
#define _GUARD_REGION_SEGMENT_END
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_INIT_SEGMENT_END
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_END
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_END
 Portable segment names. More...
 
#define _INTERNAL_STORAGE_SEGMENT_END
 Portable segment names. More...
 
#define _LOCKBITS_IN_MAIN_FLASH_SEGMENT_END
 Portable segment names. More...
 
#define _UNRETAINED_RAM_SEGMENT_END
 Portable segment names. More...
 
#define _NO_INIT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _DEBUG_CHANNEL_SEGMENT_SIZE
 Portable segment names. More...
 
#define _INTVEC_SEGMENT_SIZE
 Portable segment names. More...
 
#define _CSTACK_SEGMENT_SIZE
 Portable segment names. More...
 
#define _RESETINFO_SEGMENT_SIZE
 Portable segment names. More...
 
#define _DATA_INIT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _DATA_SEGMENT_SIZE
 Portable segment names. More...
 
#define _BSS_SEGMENT_SIZE
 Portable segment names. More...
 
#define _CONST_SEGMENT_SIZE
 Portable segment names. More...
 
#define _TEXT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _TEXTRW_INIT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _TEXTRW_SEGMENT_SIZE
 Portable segment names. More...
 
#define _AAT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _BAT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _BAT_INIT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _FAT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _RAT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _NVM_SEGMENT_SIZE
 Portable segment names. More...
 
#define _SIMEE_SEGMENT_SIZE
 Portable segment names. More...
 
#define _PSSTORE_SEGMENT_SIZE
 Portable segment names. More...
 
#define _EMHEAP_SEGMENT_SIZE
 Portable segment names. More...
 
#define _EMHEAP_OVERLAY_SEGMENT_SIZE
 Portable segment names. More...
 
#define _GUARD_REGION_SEGMENT_SIZE
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_INIT_SEGMENT_SIZE
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_SIZE
 Portable segment names. More...
 
#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_SIZE
 Portable segment names. More...
 
#define _INTERNAL_STORAGE_SEGMENT_SIZE
 Portable segment names. More...
 
#define _LOCKBITS_IN_MAIN_FLASH_SEGMENT_SIZE
 Portable segment names. More...
 
#define _UNRETAINED_RAM_SEGMENT_SIZE
 Portable segment names. More...
 

External Declarations

These are routines that are defined in certain header files that we don't want to include, e.g. stdlib.h

int abs (int I)
 Returns the absolute value of I (also called the magnitude of I). That is, if I is negative, the result is the opposite of I, but if I is nonnegative the result is I. More...
 

Detailed Description

Compiler and Platform specific definitions and typedefs for the IAR ARM C compiler.

Note
iar.h should be included first in all source files by setting the preprocessor macro PLATFORM_HEADER to point to it. iar.h automatically includes platform-common.h.

See iar.h and platform-common.h for source code.

Macro Definition Documentation

#define __AAT__

Portable segment names.

Definition at line 373 of file iar.h.

#define __attribute__ (   ...)

Define attribute to nothing since it isn't handled by IAR.

Definition at line 221 of file iar.h.

#define __BAT__

Portable segment names.

Definition at line 374 of file iar.h.

#define __BAT_INIT__

Portable segment names.

Definition at line 375 of file iar.h.

#define __BSS__

Portable segment names.

Definition at line 368 of file iar.h.

#define __CONST__

Portable segment names.

Definition at line 369 of file iar.h.

#define __CSTACK__

Portable segment names.

Definition at line 364 of file iar.h.

#define __DATA__

Portable segment names.

Definition at line 367 of file iar.h.

#define __DATA_INIT__

Portable segment names.

Definition at line 366 of file iar.h.

#define __DEBUG_CHANNEL__

Portable segment names.

Definition at line 362 of file iar.h.

#define __DLIB_PERTHREAD_INIT__

Portable segment names.

Definition at line 384 of file iar.h.

#define __DLIB_PERTHREAD_INITIALIZED_DATA__

Portable segment names.

Definition at line 385 of file iar.h.

#define __DLIB_PERTHREAD_ZERO_DATA__

Portable segment names.

Definition at line 386 of file iar.h.

#define __EMHEAP__

Portable segment names.

Definition at line 381 of file iar.h.

#define __EMHEAP_OVERLAY__

Portable segment names.

Definition at line 382 of file iar.h.

#define __FAT__

Portable segment names.

Definition at line 376 of file iar.h.

#define __GUARD_REGION__

Portable segment names.

Definition at line 383 of file iar.h.

#define __INTERNAL_STORAGE__

Portable segment names.

Definition at line 387 of file iar.h.

#define __INTVEC__

Portable segment names.

Definition at line 363 of file iar.h.

#define __LOCKBITS_IN_MAINFLASH__

Portable segment names.

Definition at line 388 of file iar.h.

#define __NO_INIT__

Portable segment names.

Definition at line 361 of file iar.h.

#define __NVM__

Portable segment names.

Definition at line 378 of file iar.h.

#define __PSSTORE__

Portable segment names.

Definition at line 380 of file iar.h.

#define __RAT__

Portable segment names.

Definition at line 377 of file iar.h.

#define __RESETINFO__

Portable segment names.

Definition at line 365 of file iar.h.

#define __SIMEE__

Portable segment names.

Definition at line 379 of file iar.h.

#define __SOURCEFILE__

The SOURCEFILE macro is used by asserts to list the filename if it isn't otherwise defined, set it to the compiler intrinsic which specifies the whole filename and path of the sourcefile.

Definition at line 167 of file iar.h.

#define __TEXT__

Portable segment names.

Definition at line 370 of file iar.h.

#define __TEXTRW__

Portable segment names.

Definition at line 372 of file iar.h.

#define __TEXTRW_INIT__

Portable segment names.

Definition at line 371 of file iar.h.

#define __UNRETAINED_RAM__

Portable segment names.

Definition at line 389 of file iar.h.

#define _AAT_SEGMENT_BEGIN

Portable segment names.

Definition at line 440 of file iar.h.

#define _AAT_SEGMENT_END

Portable segment names.

Definition at line 470 of file iar.h.

#define _AAT_SEGMENT_SIZE

Portable segment names.

Definition at line 500 of file iar.h.

#define _BAT_INIT_SEGMENT_BEGIN

Portable segment names.

Definition at line 442 of file iar.h.

#define _BAT_INIT_SEGMENT_END

Portable segment names.

Definition at line 472 of file iar.h.

#define _BAT_INIT_SEGMENT_SIZE

Portable segment names.

Definition at line 502 of file iar.h.

#define _BAT_SEGMENT_BEGIN

Portable segment names.

Definition at line 441 of file iar.h.

#define _BAT_SEGMENT_END

Portable segment names.

Definition at line 471 of file iar.h.

#define _BAT_SEGMENT_SIZE

Portable segment names.

Definition at line 501 of file iar.h.

#define _BSS_SEGMENT_BEGIN

Portable segment names.

Definition at line 435 of file iar.h.

#define _BSS_SEGMENT_END

Portable segment names.

Definition at line 465 of file iar.h.

#define _BSS_SEGMENT_SIZE

Portable segment names.

Definition at line 495 of file iar.h.

#define _CONST_SEGMENT_BEGIN

Portable segment names.

Definition at line 436 of file iar.h.

#define _CONST_SEGMENT_END

Portable segment names.

Definition at line 466 of file iar.h.

#define _CONST_SEGMENT_SIZE

Portable segment names.

Definition at line 496 of file iar.h.

#define _CSTACK_SEGMENT_BEGIN

Portable segment names.

Definition at line 431 of file iar.h.

#define _CSTACK_SEGMENT_END

Portable segment names.

Definition at line 461 of file iar.h.

#define _CSTACK_SEGMENT_SIZE

Portable segment names.

Definition at line 491 of file iar.h.

#define _DATA_INIT_SEGMENT_BEGIN

Portable segment names.

Definition at line 433 of file iar.h.

#define _DATA_INIT_SEGMENT_END

Portable segment names.

Definition at line 463 of file iar.h.

#define _DATA_INIT_SEGMENT_SIZE

Portable segment names.

Definition at line 493 of file iar.h.

#define _DATA_SEGMENT_BEGIN

Portable segment names.

Definition at line 434 of file iar.h.

#define _DATA_SEGMENT_END

Portable segment names.

Definition at line 464 of file iar.h.

#define _DATA_SEGMENT_SIZE

Portable segment names.

Definition at line 494 of file iar.h.

#define _DEBUG_CHANNEL_SEGMENT_BEGIN

Portable segment names.

Definition at line 429 of file iar.h.

#define _DEBUG_CHANNEL_SEGMENT_END

Portable segment names.

Definition at line 459 of file iar.h.

#define _DEBUG_CHANNEL_SEGMENT_SIZE

Portable segment names.

Definition at line 489 of file iar.h.

#define _DLIB_PERTHREAD_INIT_SEGMENT_BEGIN

Portable segment names.

Definition at line 451 of file iar.h.

#define _DLIB_PERTHREAD_INIT_SEGMENT_END

Portable segment names.

Definition at line 481 of file iar.h.

#define _DLIB_PERTHREAD_INIT_SEGMENT_SIZE

Portable segment names.

Definition at line 511 of file iar.h.

#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_BEGIN

Portable segment names.

Definition at line 452 of file iar.h.

#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_END

Portable segment names.

Definition at line 482 of file iar.h.

#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_SIZE

Portable segment names.

Definition at line 512 of file iar.h.

#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_BEGIN

Portable segment names.

Definition at line 453 of file iar.h.

#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_END

Portable segment names.

Definition at line 483 of file iar.h.

#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_SIZE

Portable segment names.

Definition at line 513 of file iar.h.

#define _EMHEAP_OVERLAY_SEGMENT_BEGIN

Portable segment names.

Definition at line 449 of file iar.h.

#define _EMHEAP_OVERLAY_SEGMENT_END

Portable segment names.

Definition at line 479 of file iar.h.

#define _EMHEAP_OVERLAY_SEGMENT_SIZE

Portable segment names.

Definition at line 509 of file iar.h.

#define _EMHEAP_SEGMENT_BEGIN

Portable segment names.

Definition at line 448 of file iar.h.

#define _EMHEAP_SEGMENT_END

Portable segment names.

Definition at line 478 of file iar.h.

#define _EMHEAP_SEGMENT_SIZE

Portable segment names.

Definition at line 508 of file iar.h.

#define _FAT_SEGMENT_BEGIN

Portable segment names.

Definition at line 443 of file iar.h.

#define _FAT_SEGMENT_END

Portable segment names.

Definition at line 473 of file iar.h.

#define _FAT_SEGMENT_SIZE

Portable segment names.

Definition at line 503 of file iar.h.

#define _GUARD_REGION_SEGMENT_BEGIN

Portable segment names.

Definition at line 450 of file iar.h.

#define _GUARD_REGION_SEGMENT_END

Portable segment names.

Definition at line 480 of file iar.h.

#define _GUARD_REGION_SEGMENT_SIZE

Portable segment names.

Definition at line 510 of file iar.h.

#define _HAL_USE_COMMON_DIVMOD_

Use the Divide and Modulus Operations from platform-common.h.

Definition at line 312 of file iar.h.

#define _HAL_USE_COMMON_MEMUTILS_

If the line below is uncommented we will use Ember memory APIs, otherwise, we will use the C Standard library (memset,memcpy,memmove) APIs.

Definition at line 530 of file iar.h.

#define _HAL_USE_COMMON_PGM_

Use the Master Program Memory Declarations from platform-common.h.

Definition at line 126 of file iar.h.

#define _INTERNAL_STORAGE_SEGMENT_BEGIN

Portable segment names.

Definition at line 454 of file iar.h.

#define _INTERNAL_STORAGE_SEGMENT_END

Portable segment names.

Definition at line 484 of file iar.h.

#define _INTERNAL_STORAGE_SEGMENT_SIZE

Portable segment names.

Definition at line 514 of file iar.h.

#define _INTVEC_SEGMENT_BEGIN

Portable segment names.

Definition at line 430 of file iar.h.

#define _INTVEC_SEGMENT_END

Portable segment names.

Definition at line 460 of file iar.h.

#define _INTVEC_SEGMENT_SIZE

Portable segment names.

Definition at line 490 of file iar.h.

#define _LOCKBITS_IN_MAIN_FLASH_SEGMENT_BEGIN

Portable segment names.

Definition at line 455 of file iar.h.

#define _LOCKBITS_IN_MAIN_FLASH_SEGMENT_END

Portable segment names.

Definition at line 485 of file iar.h.

#define _LOCKBITS_IN_MAIN_FLASH_SEGMENT_SIZE

Portable segment names.

Definition at line 515 of file iar.h.

#define _NO_INIT_SEGMENT_BEGIN

Portable segment names.

Definition at line 428 of file iar.h.

#define _NO_INIT_SEGMENT_END

Portable segment names.

Definition at line 458 of file iar.h.

#define _NO_INIT_SEGMENT_SIZE

Portable segment names.

Definition at line 488 of file iar.h.

#define _NVM_SEGMENT_BEGIN

Portable segment names.

Definition at line 445 of file iar.h.

#define _NVM_SEGMENT_END

Portable segment names.

Definition at line 475 of file iar.h.

#define _NVM_SEGMENT_SIZE

Portable segment names.

Definition at line 505 of file iar.h.

#define _PSSTORE_SEGMENT_BEGIN

Portable segment names.

Definition at line 447 of file iar.h.

#define _PSSTORE_SEGMENT_END

Portable segment names.

Definition at line 477 of file iar.h.

#define _PSSTORE_SEGMENT_SIZE

Portable segment names.

Definition at line 507 of file iar.h.

#define _RAT_SEGMENT_BEGIN

Portable segment names.

Definition at line 444 of file iar.h.

#define _RAT_SEGMENT_END

Portable segment names.

Definition at line 474 of file iar.h.

#define _RAT_SEGMENT_SIZE

Portable segment names.

Definition at line 504 of file iar.h.

#define _RESETINFO_SEGMENT_BEGIN

Portable segment names.

Definition at line 432 of file iar.h.

#define _RESETINFO_SEGMENT_END

Portable segment names.

Definition at line 462 of file iar.h.

#define _RESETINFO_SEGMENT_SIZE

Portable segment names.

Definition at line 492 of file iar.h.

#define _SIMEE_SEGMENT_BEGIN

Portable segment names.

Definition at line 446 of file iar.h.

#define _SIMEE_SEGMENT_END

Portable segment names.

Definition at line 476 of file iar.h.

#define _SIMEE_SEGMENT_SIZE

Portable segment names.

Definition at line 506 of file iar.h.

#define _TEXT_SEGMENT_BEGIN

Portable segment names.

Definition at line 437 of file iar.h.

#define _TEXT_SEGMENT_END

Portable segment names.

Definition at line 467 of file iar.h.

#define _TEXT_SEGMENT_SIZE

Portable segment names.

Definition at line 497 of file iar.h.

#define _TEXTRW_INIT_SEGMENT_BEGIN

Portable segment names.

Definition at line 438 of file iar.h.

#define _TEXTRW_INIT_SEGMENT_END

Portable segment names.

Definition at line 468 of file iar.h.

#define _TEXTRW_INIT_SEGMENT_SIZE

Portable segment names.

Definition at line 498 of file iar.h.

#define _TEXTRW_SEGMENT_BEGIN

Portable segment names.

Definition at line 439 of file iar.h.

#define _TEXTRW_SEGMENT_END

Portable segment names.

Definition at line 469 of file iar.h.

#define _TEXTRW_SEGMENT_SIZE

Portable segment names.

Definition at line 499 of file iar.h.

#define _UNRETAINED_RAM_SEGMENT_BEGIN

Portable segment names.

Definition at line 456 of file iar.h.

#define _UNRETAINED_RAM_SEGMENT_END

Portable segment names.

Definition at line 486 of file iar.h.

#define _UNRETAINED_RAM_SEGMENT_SIZE

Portable segment names.

Definition at line 516 of file iar.h.

#define ALIGNMENT (   X)

Provide a portable way to align data.

Definition at line 329 of file iar.h.

#define assert (   condition)

A custom implementation of the C language assert macro. This macro implements the conditional evaluation and calls the function halInternalAssertFailed(). (see hal/micro/micro.h)

Definition at line 184 of file iar.h.

#define BIGENDIAN_CPU

A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.

Definition at line 139 of file iar.h.

#define EEPROM

A friendlier name for the compiler's intrinsic for eeprom reference.

Definition at line 158 of file iar.h.

#define HAL_HAS_INT64

Denotes that this platform supports 64-bit data-types.

Definition at line 121 of file iar.h.

#define halResetWatchdog ( )

A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.

Definition at line 215 of file iar.h.

#define MAIN_FUNCTION_ARGUMENTS

Definition at line 567 of file iar.h.

#define MAIN_FUNCTION_PARAMETERS

The kind of arguments the main function takes.

Definition at line 566 of file iar.h.

#define NO_INIT (   __symbol)

Provide a portable way to specify a non initialized symbol.

Definition at line 341 of file iar.h.

#define NO_OPERATION ( )

Define a generic no operation identifier to a compiler specific one.

Definition at line 253 of file iar.h.

#define NO_STRIPPING

A friendlier name for the compiler's intrinsic for not stripping.

Definition at line 152 of file iar.h.

#define NTOHL (   val)

A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.

Definition at line 146 of file iar.h.

#define NTOHS (   val)

Define intrinsics for NTOHL and NTOHS to save code space by making endian.c compile to nothing.

Definition at line 145 of file iar.h.

#define PLATCOMMONOKTOINCLUDE

Include platform-common.h last to pick up defaults and common definitions.

Definition at line 559 of file iar.h.

#define RAMFUNC

Define a generic RAM function identifier to a compiler specific one.

Definition at line 247 of file iar.h.

#define SET_CMSIS_REG (   reg,
  mask,
  value 
)

A convenience macro that makes it easy to change a register using the provided mask(s) and value(s). Example: SET_CMSIS_REG(GPIO->P[1].CFGH, (_GPIO_P_CFGH_Px5_MASK | _GPIO_P_CFGH_Px6_MASK), (GPIO_P_CFGH_Px5_OUT | GPIO_P_CFGH_Px6_OUT));.

Definition at line 276 of file iar.h.

#define SET_CMSIS_REG_FIELD (   reg,
  field,
  value 
)

A convenience macro that makes it easy to change the field of a register, as defined in CMSIS Device headers, to any unsigned value. Example using EM35xx: SET_CMSIS_REG_FIELD(GPIO->P[0].CFGL, GPIO_P_CFGL_Px0, _GPIO_P_CFGL_Px0_OUT);.

Definition at line 287 of file iar.h.

#define SET_REG_FIELD (   reg,
  field,
  value 
)

A convenience macro that makes it easy to change the field of a register to any unsigned value.

Definition at line 259 of file iar.h.

#define SIGNED_ENUM

Some platforms need to cast enum values that have the high bit set.

Definition at line 232 of file iar.h.

#define simulatedSerialTimePasses ( )

Stub for code not running in simulation.

Definition at line 307 of file iar.h.

#define simulatedTimePasses ( )

Stub for code not running in simulation.

Definition at line 297 of file iar.h.

#define simulatedTimePassesMs (   x)

Stub for code not running in simulation.

Definition at line 302 of file iar.h.

#define STACK_FILL_VALUE

Define the magic value that is interpreted by IAR C-SPY's Stack View.

Definition at line 237 of file iar.h.

#define STATIC_ASSERT (   __condition,
  __errorstr 
)

Provide a portable way to specify a compile time assert.

Definition at line 347 of file iar.h.

#define STRINGIZE (   X)

Convinience macro for turning a token into a string.

Definition at line 324 of file iar.h.

#define UNUSED

Declare a variable as unused to avoid a warning. Has no effect in IAR builds.

Definition at line 227 of file iar.h.

#define VAR_AT_SEGMENT (   __variableDeclaration,
  __segmentName 
)

Provide a portable way to specify the segment where a variable lives.

Definition at line 318 of file iar.h.

#define WEAK (   __symbol)

Provide a portable way to specify a symbol as weak.

Definition at line 335 of file iar.h.

Typedef Documentation

typedef bool boolean

A typedef to make the size of the variable explicitly known.

Definition at line 106 of file iar.h.

typedef signed short int16s

A typedef to make the size of the variable explicitly known.

Definition at line 110 of file iar.h.

typedef unsigned short int16u

A typedef to make the size of the variable explicitly known.

Definition at line 109 of file iar.h.

typedef signed int int32s

A typedef to make the size of the variable explicitly known.

Definition at line 112 of file iar.h.

typedef unsigned int int32u

A typedef to make the size of the variable explicitly known.

Definition at line 111 of file iar.h.

typedef signed long long int64s

A typedef to make the size of the variable explicitly known.

Definition at line 114 of file iar.h.

typedef unsigned long long int64u

A typedef to make the size of the variable explicitly known.

Definition at line 113 of file iar.h.

typedef signed char int8s

A typedef to make the size of the variable explicitly known.

Definition at line 108 of file iar.h.

typedef unsigned char int8u

A typedef to make the size of the variable explicitly known.

Definition at line 107 of file iar.h.

typedef unsigned int PointerType

A typedef to make the size of the variable explicitly known.

Definition at line 115 of file iar.h.

Function Documentation

void _executeBarrierInstructions ( void  )
int abs ( int  I)

Returns the absolute value of I (also called the magnitude of I). That is, if I is negative, the result is the opposite of I, but if I is nonnegative the result is I.

Parameters
IAn integer.
Returns
A nonnegative integer.
void halInternalAssertFailed ( const char *  filename,
int  linenumber 
)

A prototype definition for use by the assert macro. (see hal/micro/micro.h)

void halInternalResetWatchDog ( void  )

Macro to reset the watchdog timer. Note: be very very careful when using this as you can easily get into an infinite loop if you are not careful.