IAR PLATFORM_HEADER Configuration
Compiler and Platform specific definitions and typedefs for the IAR ARM C compiler.
Macros |
|
#define | HAL_HAS_INT64 |
Denotes that this platform supports 64-bit data-types.
|
|
#define | _HAL_USE_COMMON_PGM_ |
Use the Master Program Memory Declarations from
platform-common.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.
|
|
#define | PLATCOMMONOKTOINCLUDE |
Include
platform-common.h
last to pick up defaults and common definitions.
|
|
#define | MAIN_FUNCTION_PARAMETERS void |
The kind of arguments the main function takes.
|
|
#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.
|
|
typedef unsigned char | int8u |
A typedef to make the size of the variable explicitly known.
|
|
typedef signed char | int8s |
A typedef to make the size of the variable explicitly known.
|
|
typedef unsigned short | int16u |
A typedef to make the size of the variable explicitly known.
|
|
typedef signed short | int16s |
A typedef to make the size of the variable explicitly known.
|
|
typedef unsigned int | int32u |
A typedef to make the size of the variable explicitly known.
|
|
typedef signed int | int32s |
A typedef to make the size of the variable explicitly known.
|
|
typedef unsigned long long | int64u |
A typedef to make the size of the variable explicitly known.
|
|
typedef signed long long | int64s |
A typedef to make the size of the variable explicitly known.
|
|
typedef unsigned int | PointerType |
A typedef to make the size of the variable explicitly known.
|
Miscellaneous Macros |
|
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.
|
|
#define | BIGENDIAN_CPU false |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
|
|
#define | NTOHS (val) (__REV16(val)) |
Define intrinsics for NTOHL and NTOHS to save code space by making endian.c compile to nothing.
|
|
#define | NTOHL (val) (__REV(val)) |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
|
|
#define | NO_STRIPPING __root |
A friendlier name for the compiler's intrinsic for not stripping.
|
|
#define | EEPROM errorerror |
A friendlier name for the compiler's intrinsic for eeprom reference.
|
|
#define | __SOURCEFILE__ __FILE__ |
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.
|
|
#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
)
|
|
#define | halResetWatchdog () halInternalResetWatchDog () |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
|
|
#define | __attribute__ (...) |
Define
attribute
to nothing since it isn't handled by IAR.
|
|
#define | UNUSED |
Declare a variable as unused to avoid a warning. Has no effect in IAR builds.
|
|
#define | SIGNED_ENUM |
Some platforms need to cast enum values that have the high bit set.
|
|
#define | STACK_FILL_VALUE 0xCDCDCDCDU |
Define the magic value that is interpreted by IAR C-SPY's Stack View.
|
|
#define | RAMFUNC __ramfunc |
Define a generic RAM function identifier to a compiler specific one.
|
|
#define | NO_OPERATION () __no_operation() |
Define a generic no operation identifier to a compiler specific one.
|
|
#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.
|
|
#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));.
|
|
#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);.
|
|
#define | simulatedTimePasses () |
Stub for code not running in simulation.
|
|
#define | simulatedTimePassesMs (x) |
Stub for code not running in simulation.
|
|
#define | simulatedSerialTimePasses () |
Stub for code not running in simulation.
|
|
#define | _HAL_USE_COMMON_DIVMOD_ |
Use the Divide and Modulus Operations from
platform-common.h
.
|
|
#define | VAR_AT_SEGMENT (__variableDeclaration, __segmentName) __variableDeclaration @ __segmentName |
Provide a portable way to specify the segment where a variable lives.
|
|
#define | STRINGIZE (X) #X |
Convinience macro for turning a token into a string.
|
|
#define | ALIGNMENT (X) _Pragma( STRINGIZE (data_alignment = X)) |
Provide a portable way to align data.
|
|
#define | WEAK (__symbol) __weak __symbol |
Provide a portable way to specify a symbol as weak.
|
|
#define | NO_INIT (__symbol) __no_init __symbol |
Provide a portable way to specify a non initialized symbol.
|
|
#define | STATIC_ASSERT (__condition, __errorstr) static_assert(__condition, __errorstr) |
Provide a portable way to specify a compile time assert.
|
Portable segment names |
|
#define | __NO_INIT__ ".noinit" |
Portable segment names.
|
|
#define | __DEBUG_CHANNEL__ "DEBUG_CHANNEL" |
Portable segment names.
|
|
#define | __INTVEC__ ".intvec" |
Portable segment names.
|
|
#define | __CSTACK__ "CSTACK" |
Portable segment names.
|
|
#define | __RESETINFO__ "RESETINFO" |
Portable segment names.
|
|
#define | __DATA_INIT__ ".data_init" |
Portable segment names.
|
|
#define | __DATA__ ".data" |
Portable segment names.
|
|
#define | __BSS__ ".bss" |
Portable segment names.
|
|
#define | __CONST__ ".rodata" |
Portable segment names.
|
|
#define | __TEXT__ ".text" |
Portable segment names.
|
|
#define | __TEXTRW_INIT__ ".textrw_init" |
Portable segment names.
|
|
#define | __TEXTRW__ ".textrw" |
Portable segment names.
|
|
#define | __AAT__ "AAT" |
Portable segment names.
|
|
#define | __BAT__ "BAT" |
Portable segment names.
|
|
#define | __BAT_INIT__ "BAT" |
Portable segment names.
|
|
#define | __FAT__ "FAT" |
Portable segment names.
|
|
#define | __RAT__ "RAT" |
Portable segment names.
|
|
#define | __SIMEE__ "SIMEE" |
Portable segment names.
|
|
#define | __PSSTORE__ "PSSTORE" |
Portable segment names.
|
|
#define | __LONGTOKEN__ "LONGTOKEN" |
Portable segment names.
|
|
#define | __EMHEAP__ "EMHEAP" |
Portable segment names.
|
|
#define | __GUARD_REGION__ "GUARD_REGION" |
Portable segment names.
|
|
#define | __DLIB_PERTHREAD_INIT__ "__DLIB_PERTHREAD_init" |
Portable segment names.
|
|
#define | __DLIB_PERTHREAD_INITIALIZED_DATA__ "DLIB_PERTHREAD_INITIALIZED_DATA" |
Portable segment names.
|
|
#define | __DLIB_PERTHREAD_ZERO_DATA__ "DLIB_PERTHREAD_ZERO_DATA" |
Portable segment names.
|
|
#define | __INTERNAL_STORAGE__ "INTERNAL_STORAGE" |
Portable segment names.
|
|
#define | __LOCKBITS_IN_MAINFLASH__ "LOCKBITS_IN_MAINFLASH" |
Portable segment names.
|
|
#define | __UNRETAINED_RAM__ "UNRETAINED_RAM" |
Portable segment names.
|
|
#define | _NO_INIT_SEGMENT_BEGIN __segment_begin( __NO_INIT__ ) |
Portable segment names.
|
|
#define | _DEBUG_CHANNEL_SEGMENT_BEGIN __segment_begin( __DEBUG_CHANNEL__ ) |
Portable segment names.
|
|
#define | _INTVEC_SEGMENT_BEGIN __segment_begin( __INTVEC__ ) |
Portable segment names.
|
|
#define | _CSTACK_SEGMENT_BEGIN __segment_begin( __CSTACK__ ) |
Portable segment names.
|
|
#define | _RESETINFO_SEGMENT_BEGIN __segment_begin( __RESETINFO__ ) |
Portable segment names.
|
|
#define | _DATA_INIT_SEGMENT_BEGIN __segment_begin( __DATA_INIT__ ) |
Portable segment names.
|
|
#define | _DATA_SEGMENT_BEGIN __segment_begin( __DATA__ ) |
Portable segment names.
|
|
#define | _BSS_SEGMENT_BEGIN __segment_begin( __BSS__ ) |
Portable segment names.
|
|
#define | _CONST_SEGMENT_BEGIN __segment_begin( __CONST__ ) |
Portable segment names.
|
|
#define | _TEXT_SEGMENT_BEGIN __segment_begin( __TEXT__ ) |
Portable segment names.
|
|
#define | _TEXTRW_INIT_SEGMENT_BEGIN __segment_begin( __TEXTRW_INIT__ ) |
Portable segment names.
|
|
#define | _TEXTRW_SEGMENT_BEGIN __segment_begin( __TEXTRW__ ) |
Portable segment names.
|
|
#define | _AAT_SEGMENT_BEGIN __segment_begin( __AAT__ ) |
Portable segment names.
|
|
#define | _BAT_SEGMENT_BEGIN __segment_begin( __BAT__ ) |
Portable segment names.
|
|
#define | _BAT_INIT_SEGMENT_BEGIN __segment_begin( __BAT_INIT__ ) |
Portable segment names.
|
|
#define | _FAT_SEGMENT_BEGIN __segment_begin( __FAT__ ) |
Portable segment names.
|
|
#define | _RAT_SEGMENT_BEGIN __segment_begin( __RAT__ ) |
Portable segment names.
|
|
#define | _SIMEE_SEGMENT_BEGIN __segment_begin( __SIMEE__ ) |
Portable segment names.
|
|
#define | _PSSTORE_SEGMENT_BEGIN __segment_begin( __PSSTORE__ ) |
Portable segment names.
|
|
#define | _LONGTOKEN_SEGMENT_BEGIN __segment_begin( __LONGTOKEN__ ) |
Portable segment names.
|
|
#define | _EMHEAP_SEGMENT_BEGIN __segment_begin( __EMHEAP__ ) |
Portable segment names.
|
|
#define | _GUARD_REGION_SEGMENT_BEGIN __segment_begin( __GUARD_REGION__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_INIT_SEGMENT_BEGIN __segment_begin( __DLIB_PERTHREAD_INIT__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_BEGIN __segment_begin( __DLIB_PERTHREAD_INITIALIZED_DATA__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_BEGIN __segment_begin( __DLIB_PERTHREAD_ZERO_DATA__ ) |
Portable segment names.
|
|
#define | _INTERNAL_STORAGE_SEGMENT_BEGIN __segment_begin( __INTERNAL_STORAGE__ ) |
Portable segment names.
|
|
#define | _LOCKBITS_IN_MAINFLASH_SEGMENT_BEGIN __segment_begin( __LOCKBITS_IN_MAINFLASH__ ) |
Portable segment names.
|
|
#define | _UNRETAINED_RAM_SEGMENT_BEGIN __segment_begin( __UNRETAINED_RAM__ ) |
Portable segment names.
|
|
#define | _NO_INIT_SEGMENT_END __segment_end( __NO_INIT__ ) |
Portable segment names.
|
|
#define | _DEBUG_CHANNEL_SEGMENT_END __segment_end( __DEBUG_CHANNEL__ ) |
Portable segment names.
|
|
#define | _INTVEC_SEGMENT_END __segment_end( __INTVEC__ ) |
Portable segment names.
|
|
#define | _CSTACK_SEGMENT_END __segment_end( __CSTACK__ ) |
Portable segment names.
|
|
#define | _RESETINFO_SEGMENT_END __segment_end( __RESETINFO__ ) |
Portable segment names.
|
|
#define | _DATA_INIT_SEGMENT_END __segment_end( __DATA_INIT__ ) |
Portable segment names.
|
|
#define | _DATA_SEGMENT_END __segment_end( __DATA__ ) |
Portable segment names.
|
|
#define | _BSS_SEGMENT_END __segment_end( __BSS__ ) |
Portable segment names.
|
|
#define | _CONST_SEGMENT_END __segment_end( __CONST__ ) |
Portable segment names.
|
|
#define | _TEXT_SEGMENT_END __segment_end( __TEXT__ ) |
Portable segment names.
|
|
#define | _TEXTRW_INIT_SEGMENT_END __segment_end( __TEXTRW_INIT__ ) |
Portable segment names.
|
|
#define | _TEXTRW_SEGMENT_END __segment_end( __TEXTRW__ ) |
Portable segment names.
|
|
#define | _AAT_SEGMENT_END __segment_end( __AAT__ ) |
Portable segment names.
|
|
#define | _BAT_SEGMENT_END __segment_end( __BAT__ ) |
Portable segment names.
|
|
#define | _BAT_INIT_SEGMENT_END __segment_end( __BAT_INIT__ ) |
Portable segment names.
|
|
#define | _FAT_SEGMENT_END __segment_end( __FAT__ ) |
Portable segment names.
|
|
#define | _RAT_SEGMENT_END __segment_end( __RAT__ ) |
Portable segment names.
|
|
#define | _SIMEE_SEGMENT_END __segment_end( __SIMEE__ ) |
Portable segment names.
|
|
#define | _PSSTORE_SEGMENT_END __segment_end( __PSSTORE__ ) |
Portable segment names.
|
|
#define | _LONGTOKEN_SEGMENT_END __segment_end( __LONGTOKEN__ ) |
Portable segment names.
|
|
#define | _EMHEAP_SEGMENT_END __segment_end( __EMHEAP__ ) |
Portable segment names.
|
|
#define | _GUARD_REGION_SEGMENT_END __segment_end( __GUARD_REGION__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_INIT_SEGMENT_END __segment_end( __DLIB_PERTHREAD_INIT__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_END __segment_end( __DLIB_PERTHREAD_INITIALIZED_DATA__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_END __segment_end( __DLIB_PERTHREAD_ZERO_DATA__ ) |
Portable segment names.
|
|
#define | _INTERNAL_STORAGE_SEGMENT_END __segment_end( __INTERNAL_STORAGE__ ) |
Portable segment names.
|
|
#define | _LOCKBITS_IN_MAINFLASH_SEGMENT_END __segment_end( __LOCKBITS_IN_MAINFLASH__ ) |
Portable segment names.
|
|
#define | _UNRETAINED_RAM_SEGMENT_END __segment_end( __UNRETAINED_RAM__ ) |
Portable segment names.
|
|
#define | _NO_INIT_SEGMENT_SIZE __segment_size( __NO_INIT__ ) |
Portable segment names.
|
|
#define | _DEBUG_CHANNEL_SEGMENT_SIZE __segment_size( __DEBUG_CHANNEL__ ) |
Portable segment names.
|
|
#define | _INTVEC_SEGMENT_SIZE __segment_size( __INTVEC__ ) |
Portable segment names.
|
|
#define | _CSTACK_SEGMENT_SIZE __segment_size( __CSTACK__ ) |
Portable segment names.
|
|
#define | _RESETINFO_SEGMENT_SIZE __segment_size( __RESETINFO__ ) |
Portable segment names.
|
|
#define | _DATA_INIT_SEGMENT_SIZE __segment_size( __DATA_INIT__ ) |
Portable segment names.
|
|
#define | _DATA_SEGMENT_SIZE __segment_size( __DATA__ ) |
Portable segment names.
|
|
#define | _BSS_SEGMENT_SIZE __segment_size( __BSS__ ) |
Portable segment names.
|
|
#define | _CONST_SEGMENT_SIZE __segment_size( __CONST__ ) |
Portable segment names.
|
|
#define | _TEXT_SEGMENT_SIZE __segment_size( __TEXT__ ) |
Portable segment names.
|
|
#define | _TEXTRW_INIT_SEGMENT_SIZE __segment_size( __TEXTRW_INIT__ ) |
Portable segment names.
|
|
#define | _TEXTRW_SEGMENT_SIZE __segment_size( __TEXTRW__ ) |
Portable segment names.
|
|
#define | _AAT_SEGMENT_SIZE __segment_size( __AAT__ ) |
Portable segment names.
|
|
#define | _BAT_SEGMENT_SIZE __segment_size( __BAT__ ) |
Portable segment names.
|
|
#define | _BAT_INIT_SEGMENT_SIZE __segment_size( __BAT_INIT__ ) |
Portable segment names.
|
|
#define | _FAT_SEGMENT_SIZE __segment_size( __FAT__ ) |
Portable segment names.
|
|
#define | _RAT_SEGMENT_SIZE __segment_size( __RAT__ ) |
Portable segment names.
|
|
#define | _SIMEE_SEGMENT_SIZE __segment_size( __SIMEE__ ) |
Portable segment names.
|
|
#define | _PSSTORE_SEGMENT_SIZE __segment_size( __PSSTORE__ ) |
Portable segment names.
|
|
#define | _LONGTOKEN_SEGMENT_SIZE __segment_size( __LONGTOKEN__ ) |
Portable segment names.
|
|
#define | _EMHEAP_SEGMENT_SIZE __segment_size( __EMHEAP__ ) |
Portable segment names.
|
|
#define | _GUARD_REGION_SEGMENT_SIZE __segment_size( __GUARD_REGION__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_INIT_SEGMENT_SIZE __segment_size( __DLIB_PERTHREAD_INIT__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_SIZE __segment_size( __DLIB_PERTHREAD_INITIALIZED_DATA__ ) |
Portable segment names.
|
|
#define | _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_SIZE __segment_size( __DLIB_PERTHREAD_ZERO_DATA__ ) |
Portable segment names.
|
|
#define | _INTERNAL_STORAGE_SEGMENT_SIZE __segment_size( __INTERNAL_STORAGE__ ) |
Portable segment names.
|
|
#define | _LOCKBITS_IN_MAINFLASH_SEGMENT_SIZE __segment_size( __LOCKBITS_IN_MAINFLASH__ ) |
Portable segment names.
|
|
#define | _UNRETAINED_RAM_SEGMENT_SIZE __segment_size( __UNRETAINED_RAM__ ) |
Portable segment names.
|
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.
|
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 includesplatform-common.h
.
See
iar.h
and
platform-common.h
for source code.
Macro Definition Documentation
#define __AAT__ "AAT" |
Portable segment names.
#define __attribute__ | ( |
...
|
) |
Define attribute to nothing since it isn't handled by IAR.
#define __BAT__ "BAT" |
Portable segment names.
#define __BAT_INIT__ "BAT" |
Portable segment names.
#define __BSS__ ".bss" |
Portable segment names.
#define __CONST__ ".rodata" |
Portable segment names.
#define __CSTACK__ "CSTACK" |
Portable segment names.
#define __DATA__ ".data" |
Portable segment names.
#define __DATA_INIT__ ".data_init" |
Portable segment names.
#define __DEBUG_CHANNEL__ "DEBUG_CHANNEL" |
Portable segment names.
#define __DLIB_PERTHREAD_INIT__ "__DLIB_PERTHREAD_init" |
Portable segment names.
#define __DLIB_PERTHREAD_INITIALIZED_DATA__ "DLIB_PERTHREAD_INITIALIZED_DATA" |
Portable segment names.
#define __DLIB_PERTHREAD_ZERO_DATA__ "DLIB_PERTHREAD_ZERO_DATA" |
Portable segment names.
#define __EMHEAP__ "EMHEAP" |
Portable segment names.
#define __FAT__ "FAT" |
Portable segment names.
#define __GUARD_REGION__ "GUARD_REGION" |
Portable segment names.
#define __INTERNAL_STORAGE__ "INTERNAL_STORAGE" |
Portable segment names.
#define __INTVEC__ ".intvec" |
Portable segment names.
#define __LOCKBITS_IN_MAINFLASH__ "LOCKBITS_IN_MAINFLASH" |
Portable segment names.
#define __LONGTOKEN__ "LONGTOKEN" |
Portable segment names.
#define __NO_INIT__ ".noinit" |
Portable segment names.
#define __PSSTORE__ "PSSTORE" |
Portable segment names.
#define __RAT__ "RAT" |
Portable segment names.
#define __RESETINFO__ "RESETINFO" |
Portable segment names.
#define __SIMEE__ "SIMEE" |
Portable segment names.
#define __SOURCEFILE__ __FILE__ |
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.
#define __TEXT__ ".text" |
Portable segment names.
#define __TEXTRW__ ".textrw" |
Portable segment names.
#define __TEXTRW_INIT__ ".textrw_init" |
Portable segment names.
#define __UNRETAINED_RAM__ "UNRETAINED_RAM" |
Portable segment names.
#define _AAT_SEGMENT_BEGIN __segment_begin( __AAT__ ) |
Portable segment names.
#define _AAT_SEGMENT_END __segment_end( __AAT__ ) |
Portable segment names.
#define _AAT_SEGMENT_SIZE __segment_size( __AAT__ ) |
Portable segment names.
#define _BAT_INIT_SEGMENT_BEGIN __segment_begin( __BAT_INIT__ ) |
Portable segment names.
#define _BAT_INIT_SEGMENT_END __segment_end( __BAT_INIT__ ) |
Portable segment names.
#define _BAT_INIT_SEGMENT_SIZE __segment_size( __BAT_INIT__ ) |
Portable segment names.
#define _BAT_SEGMENT_BEGIN __segment_begin( __BAT__ ) |
Portable segment names.
#define _BAT_SEGMENT_END __segment_end( __BAT__ ) |
Portable segment names.
#define _BAT_SEGMENT_SIZE __segment_size( __BAT__ ) |
Portable segment names.
#define _BSS_SEGMENT_BEGIN __segment_begin( __BSS__ ) |
Portable segment names.
#define _BSS_SEGMENT_END __segment_end( __BSS__ ) |
Portable segment names.
#define _BSS_SEGMENT_SIZE __segment_size( __BSS__ ) |
Portable segment names.
#define _CONST_SEGMENT_BEGIN __segment_begin( __CONST__ ) |
Portable segment names.
#define _CONST_SEGMENT_END __segment_end( __CONST__ ) |
Portable segment names.
#define _CONST_SEGMENT_SIZE __segment_size( __CONST__ ) |
Portable segment names.
#define _CSTACK_SEGMENT_BEGIN __segment_begin( __CSTACK__ ) |
Portable segment names.
#define _CSTACK_SEGMENT_END __segment_end( __CSTACK__ ) |
Portable segment names.
#define _CSTACK_SEGMENT_SIZE __segment_size( __CSTACK__ ) |
Portable segment names.
#define _DATA_INIT_SEGMENT_BEGIN __segment_begin( __DATA_INIT__ ) |
Portable segment names.
#define _DATA_INIT_SEGMENT_END __segment_end( __DATA_INIT__ ) |
Portable segment names.
#define _DATA_INIT_SEGMENT_SIZE __segment_size( __DATA_INIT__ ) |
Portable segment names.
#define _DATA_SEGMENT_BEGIN __segment_begin( __DATA__ ) |
Portable segment names.
#define _DATA_SEGMENT_END __segment_end( __DATA__ ) |
Portable segment names.
#define _DATA_SEGMENT_SIZE __segment_size( __DATA__ ) |
Portable segment names.
#define _DEBUG_CHANNEL_SEGMENT_BEGIN __segment_begin( __DEBUG_CHANNEL__ ) |
Portable segment names.
#define _DEBUG_CHANNEL_SEGMENT_END __segment_end( __DEBUG_CHANNEL__ ) |
Portable segment names.
#define _DEBUG_CHANNEL_SEGMENT_SIZE __segment_size( __DEBUG_CHANNEL__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_INIT_SEGMENT_BEGIN __segment_begin( __DLIB_PERTHREAD_INIT__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_INIT_SEGMENT_END __segment_end( __DLIB_PERTHREAD_INIT__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_INIT_SEGMENT_SIZE __segment_size( __DLIB_PERTHREAD_INIT__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_BEGIN __segment_begin( __DLIB_PERTHREAD_INITIALIZED_DATA__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_END __segment_end( __DLIB_PERTHREAD_INITIALIZED_DATA__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_INITIALIZED_DATA_SEGMENT_SIZE __segment_size( __DLIB_PERTHREAD_INITIALIZED_DATA__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_BEGIN __segment_begin( __DLIB_PERTHREAD_ZERO_DATA__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_END __segment_end( __DLIB_PERTHREAD_ZERO_DATA__ ) |
Portable segment names.
#define _DLIB_PERTHREAD_ZERO_DATA_SEGMENT_SIZE __segment_size( __DLIB_PERTHREAD_ZERO_DATA__ ) |
Portable segment names.
#define _EMHEAP_SEGMENT_BEGIN __segment_begin( __EMHEAP__ ) |
Portable segment names.
#define _EMHEAP_SEGMENT_END __segment_end( __EMHEAP__ ) |
Portable segment names.
#define _EMHEAP_SEGMENT_SIZE __segment_size( __EMHEAP__ ) |
Portable segment names.
#define _FAT_SEGMENT_BEGIN __segment_begin( __FAT__ ) |
Portable segment names.
#define _FAT_SEGMENT_END __segment_end( __FAT__ ) |
Portable segment names.
#define _FAT_SEGMENT_SIZE __segment_size( __FAT__ ) |
Portable segment names.
#define _GUARD_REGION_SEGMENT_BEGIN __segment_begin( __GUARD_REGION__ ) |
Portable segment names.
#define _GUARD_REGION_SEGMENT_END __segment_end( __GUARD_REGION__ ) |
Portable segment names.
#define _GUARD_REGION_SEGMENT_SIZE __segment_size( __GUARD_REGION__ ) |
Portable segment names.
#define _HAL_USE_COMMON_DIVMOD_ |
Use the Divide and Modulus Operations from
platform-common.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.
#define _HAL_USE_COMMON_PGM_ |
Use the Master Program Memory Declarations from
platform-common.h
.
#define _INTERNAL_STORAGE_SEGMENT_BEGIN __segment_begin( __INTERNAL_STORAGE__ ) |
Portable segment names.
#define _INTERNAL_STORAGE_SEGMENT_END __segment_end( __INTERNAL_STORAGE__ ) |
Portable segment names.
#define _INTERNAL_STORAGE_SEGMENT_SIZE __segment_size( __INTERNAL_STORAGE__ ) |
Portable segment names.
#define _INTVEC_SEGMENT_BEGIN __segment_begin( __INTVEC__ ) |
Portable segment names.
#define _INTVEC_SEGMENT_END __segment_end( __INTVEC__ ) |
Portable segment names.
#define _INTVEC_SEGMENT_SIZE __segment_size( __INTVEC__ ) |
Portable segment names.
#define _LOCKBITS_IN_MAINFLASH_SEGMENT_BEGIN __segment_begin( __LOCKBITS_IN_MAINFLASH__ ) |
Portable segment names.
#define _LOCKBITS_IN_MAINFLASH_SEGMENT_END __segment_end( __LOCKBITS_IN_MAINFLASH__ ) |
Portable segment names.
#define _LOCKBITS_IN_MAINFLASH_SEGMENT_SIZE __segment_size( __LOCKBITS_IN_MAINFLASH__ ) |
Portable segment names.
#define _LONGTOKEN_SEGMENT_BEGIN __segment_begin( __LONGTOKEN__ ) |
Portable segment names.
#define _LONGTOKEN_SEGMENT_END __segment_end( __LONGTOKEN__ ) |
Portable segment names.
#define _LONGTOKEN_SEGMENT_SIZE __segment_size( __LONGTOKEN__ ) |
Portable segment names.
#define _NO_INIT_SEGMENT_BEGIN __segment_begin( __NO_INIT__ ) |
Portable segment names.
#define _NO_INIT_SEGMENT_END __segment_end( __NO_INIT__ ) |
Portable segment names.
#define _NO_INIT_SEGMENT_SIZE __segment_size( __NO_INIT__ ) |
Portable segment names.
#define _PSSTORE_SEGMENT_BEGIN __segment_begin( __PSSTORE__ ) |
Portable segment names.
#define _PSSTORE_SEGMENT_END __segment_end( __PSSTORE__ ) |
Portable segment names.
#define _PSSTORE_SEGMENT_SIZE __segment_size( __PSSTORE__ ) |
Portable segment names.
#define _RAT_SEGMENT_BEGIN __segment_begin( __RAT__ ) |
Portable segment names.
#define _RAT_SEGMENT_END __segment_end( __RAT__ ) |
Portable segment names.
#define _RAT_SEGMENT_SIZE __segment_size( __RAT__ ) |
Portable segment names.
#define _RESETINFO_SEGMENT_BEGIN __segment_begin( __RESETINFO__ ) |
Portable segment names.
#define _RESETINFO_SEGMENT_END __segment_end( __RESETINFO__ ) |
Portable segment names.
#define _RESETINFO_SEGMENT_SIZE __segment_size( __RESETINFO__ ) |
Portable segment names.
#define _SIMEE_SEGMENT_BEGIN __segment_begin( __SIMEE__ ) |
Portable segment names.
#define _SIMEE_SEGMENT_END __segment_end( __SIMEE__ ) |
Portable segment names.
#define _SIMEE_SEGMENT_SIZE __segment_size( __SIMEE__ ) |
Portable segment names.
#define _TEXT_SEGMENT_BEGIN __segment_begin( __TEXT__ ) |
Portable segment names.
#define _TEXT_SEGMENT_END __segment_end( __TEXT__ ) |
Portable segment names.
#define _TEXT_SEGMENT_SIZE __segment_size( __TEXT__ ) |
Portable segment names.
#define _TEXTRW_INIT_SEGMENT_BEGIN __segment_begin( __TEXTRW_INIT__ ) |
Portable segment names.
#define _TEXTRW_INIT_SEGMENT_END __segment_end( __TEXTRW_INIT__ ) |
Portable segment names.
#define _TEXTRW_INIT_SEGMENT_SIZE __segment_size( __TEXTRW_INIT__ ) |
Portable segment names.
#define _TEXTRW_SEGMENT_BEGIN __segment_begin( __TEXTRW__ ) |
Portable segment names.
#define _TEXTRW_SEGMENT_END __segment_end( __TEXTRW__ ) |
Portable segment names.
#define _TEXTRW_SEGMENT_SIZE __segment_size( __TEXTRW__ ) |
Portable segment names.
#define _UNRETAINED_RAM_SEGMENT_BEGIN __segment_begin( __UNRETAINED_RAM__ ) |
Portable segment names.
#define _UNRETAINED_RAM_SEGMENT_END __segment_end( __UNRETAINED_RAM__ ) |
Portable segment names.
#define _UNRETAINED_RAM_SEGMENT_SIZE __segment_size( __UNRETAINED_RAM__ ) |
Portable segment names.
#define ALIGNMENT | ( |
X
|
) | _Pragma( STRINGIZE (data_alignment = X)) |
Provide a portable way to align data.
#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
)
#define BIGENDIAN_CPU false |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
#define EEPROM errorerror |
A friendlier name for the compiler's intrinsic for eeprom reference.
#define HAL_HAS_INT64 |
Denotes that this platform supports 64-bit data-types.
#define halResetWatchdog | ( |
|
) | halInternalResetWatchDog () |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
#define MAIN_FUNCTION_ARGUMENTS |
#define MAIN_FUNCTION_PARAMETERS void |
The kind of arguments the main function takes.
#define NO_INIT | ( |
__symbol
|
) | __no_init __symbol |
Provide a portable way to specify a non initialized symbol.
#define NO_OPERATION | ( |
|
) | __no_operation() |
Define a generic no operation identifier to a compiler specific one.
#define NO_STRIPPING __root |
A friendlier name for the compiler's intrinsic for not stripping.
#define NTOHL | ( |
val
|
) | (__REV(val)) |
A convenient method for code to know what endiannes processor it is running on. For the Cortex-M3, we are little endian.
#define NTOHS | ( |
val
|
) | (__REV16(val)) |
Define intrinsics for NTOHL and NTOHS to save code space by making endian.c compile to nothing.
#define PLATCOMMONOKTOINCLUDE |
Include
platform-common.h
last to pick up defaults and common definitions.
#define RAMFUNC __ramfunc |
Define a generic RAM function identifier to a compiler specific one.
#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));.
#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);.
#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.
#define SIGNED_ENUM |
Some platforms need to cast enum values that have the high bit set.
#define simulatedSerialTimePasses | ( |
|
) |
Stub for code not running in simulation.
#define simulatedTimePasses | ( |
|
) |
Stub for code not running in simulation.
#define simulatedTimePassesMs | ( |
x
|
) |
Stub for code not running in simulation.
#define STACK_FILL_VALUE 0xCDCDCDCDU |
Define the magic value that is interpreted by IAR C-SPY's Stack View.
#define STATIC_ASSERT | ( |
__condition,
|
|
__errorstr
|
|||
) | static_assert(__condition, __errorstr) |
Provide a portable way to specify a compile time assert.
#define STRINGIZE | ( |
X
|
) | #X |
Convinience macro for turning a token into a string.
#define UNUSED |
Declare a variable as unused to avoid a warning. Has no effect in IAR builds.
#define VAR_AT_SEGMENT | ( |
__variableDeclaration,
|
|
__segmentName
|
|||
) | __variableDeclaration @ __segmentName |
Provide a portable way to specify the segment where a variable lives.
#define WEAK | ( |
__symbol
|
) | __weak __symbol |
Provide a portable way to specify a symbol as weak.
Typedef Documentation
typedef bool boolean |
A typedef to make the size of the variable explicitly known.
typedef signed short int16s |
A typedef to make the size of the variable explicitly known.
typedef unsigned short int16u |
A typedef to make the size of the variable explicitly known.
typedef signed int int32s |
A typedef to make the size of the variable explicitly known.
typedef unsigned int int32u |
A typedef to make the size of the variable explicitly known.
typedef signed long long int64s |
A typedef to make the size of the variable explicitly known.
typedef unsigned long long int64u |
A typedef to make the size of the variable explicitly known.
typedef signed char int8s |
A typedef to make the size of the variable explicitly known.
typedef unsigned char int8u |
A typedef to make the size of the variable explicitly known.
typedef unsigned int PointerType |
A typedef to make the size of the variable explicitly known.
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
-
I
An 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.