iar for detailed documentation. More...
#include <intrinsics.h>#include <stdarg.h>#include <assert.h>#include "hal/micro/generic/compiler/platform-common.h"Go to the source code of this file.
Defines | |
| #define | _HAL_USE_COMMON_PGM_ |
| Use the Master Program Memory Declarations from platform-common.h. | |
| #define | _HAL_USE_COMMON_MEMUTILS_ |
| Use the C Standard Library Memory Utilities from platform-common.h. | |
| #define | PLATCOMMONOKTOINCLUDE |
| Include platform-common.h last to pick up defaults and common definitions. | |
Portable segment names | |
| #define | __NO_INIT__ ".noinit" |
| Portable segment names. | |
| #define | __INTVEC__ ".intvec" |
| #define | __CSTACK__ "CSTACK" |
| #define | __DATA_INIT__ ".data_init" |
| #define | __DATA__ ".data" |
| #define | __BSS__ ".bss" |
| #define | __CONST__ ".rodata" |
| #define | __TEXT__ ".text" |
| #define | __TEXTRW_INIT__ ".textrw_init" |
| #define | __TEXTRW__ ".textrw" |
| #define | __FAT__ "FAT" |
| #define | __NVM__ "NVM" |
Typedefs | |
Master Variable Types | |
| typedef unsigned char | boolean |
| A typedef to make the size of the variable explicitly known. | |
| typedef unsigned char | int8u |
| typedef signed char | int8s |
| typedef unsigned short | int16u |
| typedef signed short | int16s |
| typedef unsigned int | int32u |
| typedef signed int | int32s |
| typedef unsigned int | PointerType |
Functions | |
External Declarations | |
| int | abs (int I) |
| Returns the absolute value of I (also called the magnitude of I). | |
Miscellaneous Macros | |
|
| |
| #define | BIGENDIAN_CPU FALSE |
| A convenient method for code to know what endiannes processor it is running on. | |
| #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 | __delay_cycles(x) please_use_halCommonDelayMicroseconds_instead_of_delay_cycles |
| __delay_cycles() is an intrinsic IAR call; however, we have explicity disallowed it since it is too specific to the system clock. | |
| #define | APPLICATION_IMAGE_START ((u32) __section_begin("FLASH_IMAGE")) |
| Set debug level based on whether or DEBUG is defined. | |
| #define | APPLICATION_IMAGE_END ((u32) __section_end ("FLASH_IMAGE")) |
| #define | halResetWatchdog() halInternalResetWatchDog() |
| #define | __attribute__(nothing) |
| Define __attribute__ to nothing since it isn't handled by IAR. | |
| #define | UNUSED |
| Declare a variable as unused to avoid a warning. | |
| #define | SIGNED_ENUM |
| Some platforms need to cast enum values that have the high bit set. | |
| #define | STACK_FILL_VALUE 0xCDCDCDCD |
| 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 value. | |
| #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 | _QUOTEME(a) #a |
| #define | QUOTEME(a) _QUOTEME(a) |
| #define | ALIGN_VAR(__variableDeclaration, alignment) |
| void | halInternalResetWatchDog (void) |
| Macro to reset the watchdog timer. | |
Global Interrupt Manipulation Macros | |
Note: The special purpose BASEPRI register is used to enable and disable interrupts while permitting faults. When BASEPRI is set to 1 no interrupts can trigger. The configurable faults (usage, memory management, and bus faults) can trigger if enabled as well as the always-enabled exceptions (reset, NMI and hard fault). When BASEPRI is set to 0, it is disabled, so any interrupt can triggger if its priority is higher than the current priority. | |
| #define | ATOMIC_LITE(blah) ATOMIC(blah) |
| #define | DECLARE_INTERRUPT_STATE_LITE DECLARE_INTERRUPT_STATE |
| #define | DISABLE_INTERRUPTS_LITE() DISABLE_INTERRUPTS() |
| #define | RESTORE_INTERRUPTS_LITE() RESTORE_INTERRUPTS() |
| #define | DECLARE_INTERRUPT_STATE int8u _emIsrState |
| This macro should be called in the local variable declarations section of any function which calls DISABLE_INTERRUPTS() or RESTORE_INTERRUPTS(). | |
| #define | DISABLE_INTERRUPTS() |
| Disable interrupts, saving the previous state so it can be later restored with RESTORE_INTERRUPTS(). | |
| #define | RESTORE_INTERRUPTS() |
| Restore the global interrupt state previously saved by DISABLE_INTERRUPTS(). | |
| #define | INTERRUPTS_ON() |
| Enable global interrupts without regard to the current or previous state. | |
| #define | INTERRUPTS_OFF() |
| Disable global interrupts without regard to the current or previous state. | |
| #define | INTERRUPTS_ARE_OFF() ( _basePriIsDisabled() ) |
| #define | INTERRUPTS_WERE_ON() (_emIsrState == 0) |
| #define | ATOMIC(blah) |
| A block of code may be made atomic by wrapping it with this macro. | |
| #define | HANDLE_PENDING_INTERRUPTS() |
| Allows any pending interrupts to be executed. | |
| #define | SET_BASE_PRIORITY_LEVEL(basepri) |
| Sets the base priority mask (BASEPRI) to the value passed, bit shifted up by PRIGROUP_POSITION+1. | |
| int8u | _readBasePri (void) |
| void | _writeBasePri (int8u priority) |
| void | _enableBasePri (void) |
| int8u | _disableBasePri (void) |
| boolean | _basePriIsDisabled (void) |
| void | _setPriMask (void) |
| void | _clearPriMask (void) |
iar for detailed documentation.
Definition in file iar.h.
1.6.1