3 IAR Extended Keywords
This section shows a summary of IAR extended keywords and the best MPLAB XC8 replacement where that is available. These keywords and their MPLAB XC8 equivalents are discussed in more detail in the sections that follow. It is recommended that you compare the relevant sections in the MPLAB® XC8 C Compiler User's Guide for AVR MCUs with those in your IAR C/C++ Compiler User Guide to ensure that migrated code will work as expected in all situations.
IAR Keyword (links to explanatory section) | Suggested MPLAB XC8 Migration |
---|---|
__eeprom | Combined use of the EEMEM attribute and EEPROM-access
functions |
__ext_io | Use the address attribute |
__far | No simple migration recommended |
__farflash | Use either the__memx or
__flashn qualifier |
__farfunc | Remove the keyword |
__flash | No migration necessary |
__generic | Use the __memx qualifier |
__huge | No simple migration recommended |
__hugeflash | Either remove the keyword or use the __memx qualifier, based on
the const-in-program-memory feature setting |
__interrupt | Use the __interrupt(number) specifier |
__io | Use one of the io(n) ,
io_low(n) , or
address(n) attributes |
__monitor | No simple migration recommended. |
__near | Remove the keyword |
__nearfunc | Remove the keyword |
__nested | Use the interrupt attribute as well as the
__interrupt(n) specifier |
__no_alloc, __no_alloc16 | No simple migration recommended |
__no_alloc_str, __no_alloc_str16 | No simple migration recommended |
__no_init | Use the __persistent specifier or persistent
attribute |
__no_runtime_init | No simple migration recommended |
__noreturn | No simple migration recommended |
__raw | Consider the naked attribute |
__regvar | Use the asm("reg") syntax and register
keyword |
__ro_placement | Remove the keyword when using the const-data-in-program-memory feature;
otherwise, use the __memx qualifier |
__root | No simple migration recommended |
__task | No simple migration recommended |
__tiny | Remove the keyword |
__tinyflash | Use the __flash specifier |
__version1 , __version2 ,
__version4 | No simple migration recommended |
__x , __x_z , __z ,
__z_x | No simple migration recommended |