IAR Information Center for Arm

Release notes for the Arm IAR Embedded Workbench product package version 9.20.1

Important information

New features

Known problems

Program corrections

User guide corrections

Miscellaneous

Release history

V9.10 2021-02-19

Program corrections New features

V8.50 2020-02-17

Program corrections New features

V8.42 2020-01-17

Program corrections New features

V8.40 2019-05-24

Program corrections New features

V8.32 2018-10-12

Program corrections New features

V8.30 2018-06-15

Program corrections New features

V8.22 2018-01-22

Program corrections New features

V8.20 2017-10-16

Program corrections New features

V8.11 2017-04-11

Program corrections New features

V8.10 2017-03-10

Program corrections New features

V7.80 2016-10-17

Program corrections New features

V7.70 2016-06-17

Program corrections New features

V7.60 2015-03-31

Program corrections New features

V7.60 2016-03-31

Program corrections New features

V7.50 2015-11-10

Program corrections New features

V7.40 2015-02-19

Program corrections New features

V7.30 2014-09-24

Program corrections New features

V7.20 2014-05-19

Program corrections New features

V7.10 2014-02-21

Program corrections New features

V6.70 2013-10-29

Program corrections New features
  • Examples on demand
    To increase the download and installation speed for IAR Embedded Workbench, the example projects are no longer part of the installed product. Example projects can be downloaded per chip manufacturer using the Examples page in the IAR Embedded Workbench Information Center. In case no internet access is available, the examples can also be unpacked from the DVD installation media.

  • Improved integration with Freescale Processor Expert
    The Project Connection mechanism used to seamlessly pass project content from Processor Expert to IAR Embedded Workbench has been extended to also transfer device name, linker control file and complete path information.

  • #pragma default_variable_attributes and #pragma default_function_attributes
    Two new pragma directives have been added to set default placement and attributes for variable/function declarations and definitions.This means that you can override multiple declarations and definitions by using a single #pragma.

V6.60 2013-06-27

Program corrections
  • The editor now uses different colors and fonts for the preprocessor information.
    [EW23316]

  • The values of all Freescale Kinetis device-specific IRQs were incorrectly offset by 16 in the SVD files.
    [EW23788,EW23982]

  • A problem with high CPU load caused by the Workspace monitoring the time stamps of the project files (and their dependencies) too frequently has been improved.
    [EW23817]

  • Reloading an externally modified project file (.ewp) no longer causes the debugger to terminate unexpectedly.
    [EW23824]

  • Incorrect bitfields for GPIOx_BRR in iostm32f051x8.h.
    [EW23953]

  • Incorrect flashloader block size parameter for the Atmel SAM3x2, SAM3x4, and SAM3x8 devices.
    [EW23954]

  • Corrected errors in the EMI and RAS register sets in the header and debugger description files for ST SPEAr320.
    [EW23963]

  • Using the argument variables $DATE$ and $USER_NAME$ in, for example, a file path could lead to a Standard multi tool failed to establish output file name error.
    [EW23983]

  • See Important information above.
    [EW23993]

  • Trailing blanks were sometimes not trimmed from the name of the linker output file, which could cause problems when the extension ".out" was considered to be different from ".out ".
    [EW24009]

  • In EWARM 6.60.2:
    Changed the Atmel ATSAM9XE512 flashloader to use internal RAM instead of SDRAM.
    [EW23782]

  • In EWARM 6.60.2:
    Some Freescale Vybrid examples did not copy correctly to the user destination location.
    [EW24041]

  • In EWARM 6.60.2:
    Template projects for rebuilding libraries are available also in Japanese.
    [EW24043]

  • In EWARM 6.60.2:
    Fixed a problem in the Fujitsu MB9A130 flashloader.
    [EW24062]

  • In EWARM 6.60.2:
    The Fujitsu MB9AF31xK Dual Timer example did not copy correctly to the user destination location.
    [EW24064]

  • In EWARM 6.60.2:
    Wrong base address for some TI TMS570 peripheral registers.
    [EW24065]

  • In EWARM 6.60.2:
    The flash value for Atmel SAM4L4C was wrongly set to 64 KB, the correct value is 256 KB.
    [EW24077]

  • In EWARM 6.60.2:
    Find/Replace in files sometimes failed to find matches in files that contain utf-8 encoded text.
    [EW24078]

  • In EWARM 6.60.2:
    Missing debugger macro file for the Renesas R-IN32M3 examples.
    [EW24101]

  • In EWARM 6.60.2:
    Include paths that did not match the capitalization of the actual files and directories were ignored by the Source Browser.
    [EW24115]

  • In EWARM 6.60.2:
    In some cases IarBuild.exe failed to expand argument variables based on environment variables.
    [EW24169]

New features
  • Support for the IAR I-scope power measurement probe
    I-scope is a small probe that adds higher-precision current and voltage measurement capabilities to I-jet. The measurement capability is supported on all ARM cores. Cortex-M3/M4 cores will in addition provide code correlation with the measured values.

  • Support for Texas Instruments XDS200
    Support has been added for the Texas Instruments XDS200 debug probe.

  • External analyzers
    A flexible mechanism to invoke external analyzers for project files. This is typically used to interface to static analysis tools like PC-lint.

  • Code generation for execute-only code memory systems
    The compiler can now be configured to not generate any data accesses to code memory. This is useful for systems that prohibit data accesses in code memory for security reasons.

V6.50 2012-11-10

Program corrections
  • A license related problem that occurred when updating IAR Embedded Workbench from 6.21 or older, to version 6.30 or later, is no longer a problem since the new license management system (LMS2) is introduced in IAR Embedded Workbench for ARM.
    [EW22831]

  • The example for the Freescale TWR-LCD-RGB board did not take into account the differing pixel clock depending on board revision.
    [EW23546]

  • The ICU DLLs are now included in the IAR Embedded Workbench for ARM installation.
    [EW23563]

  • In EWARM 6.50.2:
    In previous versions of IAR Embedded Workbench, source browser and build status updates stopped when the IDE was not the foreground process. This behavior is now controlled by an option in the Tools>Options...>Project dialog box.
    [EW23609]

  • In EWARM 6.50.2:
    The source browser generated incomplete information when the --preinclude directive was used. This has been corrected.
    [EW23611]

  • In EWARM 6.50.2/6.50.3:
    The device description file for ST STM32L152xC erroneously defined the FSMC controller.
    [EW23640,EW23699]

  • In EWARM 6.50.3:
    The editor's Open include file command did not work correctly for include files excluded from the build. This has been corrected.
    [EW23233]

  • In EWARM 6.50.3:
    The Freescale K70 examples did not enable the VFP properly.
    [EW23561]

  • In EWARM 6.50.3:
    It is now only possible to select the BE32 endian mode for the TMS570LS device family.
    [EW23589]

  • In EWARM 6.50.3:
    If a search for a regular expression in the Find in Files window produced a result containing line breaks, only the first line was displayed.
    [EW23647]

  • In EWARM 6.50.3:
    The Go to Definition and Go to Declaration commands did not find names located in comments or inactive source code. This has been corrected.
    [EW23668, EW23719]

  • In EWARM 6.50.3:
    The memory region at 0x0FE08000 was missing in the EnergyMicro device description files.
    [EW23686]

  • In EWARM 6.50.3:
    The source browser no longer issues repeated warnings if undefined environment variables are part of any include path.
    [EW23687]

  • In EWARM 6.50.3:
    The Freescale Kinetis CDC Device example was incorrectly referred to as a USB mouse example.
    [EW23691]

  • In EWARM 6.50.3:
    If a Project>Project Connection command added an include path to the Additional include directories field on the Project>Options>C/C++ Compiler>Preprocessor options page, and that path contained any environment variables like $PROJ_DIR$, they were expanded and the path was saved that way. Now paths are saved unconverted.
    [EW23698]

  • In EWARM 6.50.3:
    Projects with many include files and/or many #define statments could make the source browser slow. This has been corrected.
    [EW23710]

  • In EWARM 6.50.3:
    The device files for STM32F205 did not include the OTG_FS registers.
    [EW23724]

  • In EWARM 6.50.3:
    The address values for CLKSEL_TIMER2_CLK and CLKSEL_TIMER3_CLK have been corrected in the device files for TI AM335x.
    [EW23729]

  • In EWARM 6.50.3:
    The example projects for STM32F4xx incorrectly specified the CPU clock frequency to 150 MHz instead of 168 MHz in the project options. This caused SWO trace problems.
    [EW23735]

  • In EWARM 6.50.3:
    Auto-indentation could sometimes fail to indent a line directly after a preprocessor directive.
    [EW23740]

  • In EWARM 6.50.3:
    Undoing an auto indentation command applied to a source block required an undo for every line in the block. Now a single undo command reverts the entire block.
    [EW23742]

  • In EWARM 6.50.3:
    If a function was defined using the static keyword but declared without it, or vice versa, a Go to definition command for this function failed.
    [EW23756]

  • In EWARM 6.50.3:
    Because of a problem with processing paths containing ..\\.. patterns, some include files could be displayed twice in the Workspace window.
    [EW23775]

  • In EWARM 6.50.3:
    The flashloader configuration for Freescale MAC7100 devices was incorrect.
    [EW23779]

  • In EWARM 6.50.3:
    The wrong flashloader was selected for Toshiba TMPM380FDFG and TMPM384FDFG.
    [EW23781]

  • In EWARM 6.50.4:
    In some situations, IAR Embedded Workbench might incorrectly stop reporting build errors if you retry Project>Make several times in a row without making any changes to source files. This is, of course incorrect. The errors are still there even if they are not reported, and the build will not be successful despite being reported as such.
    [EW23826]

  • In EWARM 6.50.5:
    The Infineon XMC45xx P14_PDISC/P15_PDISC registers were wrongly declared as read only in the debugger description file. This has been corrected.
    [EW23803]

  • In EWARM 6.50.5:
    The RTOS awareness plug-in for MQX has been corrected so that it now works in combination with multiple flash loaders.
    [EW23808]

  • In EWARM 6.50.5:
    The Freescale Kinetis L flashloader failed to program parts of the flash option bytes. This has been corrected.
    [EW23814]

  • In EWARM 6.50.5:
    Default linker control files are now selected for Energy Micro devices.
    [EW23839]

  • In EWARM 6.50.5:
    The current position (green) arrow is now visible when stopping at a breakpoint in the Disassembly window.
    [EW23852]

  • In EWARM 6.50.5:
    Printing more than 16,000 characters to the Terminal I/O window produced incorrect output. This has been corrected.
    [EW23874]

  • In EWARM 6.50.6:
    Go to definition failed to find functions defined in .cpp files if they were defined with extern 'C' linkage. This has been corrected.
    [EW23809]

  • In EWARM 6.50.6:
    The IAR License Manager now handles paths with folder names in Japanese correctly.
    [EW23854]

  • In EWARM 6.50.6:
    The linker control file editor did not recognize Toshiba TMPM061 as a Cortex-M device.
    [EW23936]

  • IAR Embedded Workbench IDE - Corrected problems

New features

Version 6.50.6

  • Support for the IAR I-scope power measurement probe
    I-scope is a small probe that adds current and voltage measurement capabilities to I-jet.

Version 6.50.5

  • CMSIS 3.20
    The run-time system and DSP software library.

Version 6.50.3

  • Support for ARM CMSIS-DAP
    The debugger now supports development boards that use the ARM CMSIS-DAP interface over USB.

Version 6.50.2

  • Support for MTB (Micro Trace Buffer)
    The MTB trace mechanism gives access to instruction trace on devices based on the Cortex-M0+ core.

  • Improved uC/Probe integration
    A new debugger plug-in connects uC/Probe to C-SPY over TCP/IP, making it possible to use Micrium's graphical tool uC/Probe at the same time as you debug with IAR Embedded Workbench.

Version 6.50.1

  • Speed optimizations
    Coremark performance improved by up to 13% compared to the industry-leading IAR Embedded Workbench for ARM 6.40.

  • JTAGjet-Trace support
    Full support, including ETB and ETM, for the JTAGjet-Trace debug probe from IAR Systems.

  • Project connection
    Files or file packages generated by external code generation tools can be imported and IAR Embedded Workbench automatically detects changes in the generated file set. This enables automated integration with Freescale Processor Expert, and other device configuration tools.

  • Source browser call graph display
    The source browser can now display a call graph for easy navigation of the function hierarchy.

  • Multi-core SWD support
    Two instances of IAR Embedded Workbench can now access one core each in a multi-core device via SWD, and JTAG.

  • New license management system (LMS2)
    The new LMS that is used with this release introduces new features like commuter licenses, automatic license activation, and support for virtual servers. It is easier to administrate and a single installer concept enables easy transfer between all variants of IAR Embedded Workbench for a certain product through a license upgrade.

  • You can now toggle expanding/collapsing code blocks in the editor.

  • Improved Source Browser performance.

V6.40 2012-06-05

Program corrections
  • Editor line numbers exceeding 5 digits were partly displayed outside the line number column. This has been corrected.
    [EW21642]

  • Printing a multipage selection in the editor window that did not start at the begining of a line and/or end at the end of a line could fail to print all selected content. This has been corrected.
    [EW21961]

  • The source browser could cause the IDE to become unresponsive if the license for the compiler could not be verified. This no longer occurs.
    [EW22350, EW22499]

  • The context menu command Go to definition could fail if the function was defined in a header file. This has been corrected.
    [EW22518, EW22612]

  • Having a shift-left operator within a macro definition, as in:
    #define RUN_LED 1<<10
    caused a number of functions following such a definition to be omitted from the editor Go to Function window. This has been corrected.
    [EW22809]

  • The following construction:

    #define INCLUDE 
    #include INCLUDE
    int main(void)
    { 
      ......
    
    could cause the source browser to miss the definition of main. This no longer happens.
    [EW22948]

  • A failed post-build step was not included in the error count displayed in the status bar. This has been corrected.
    [EW23110]

  • Setting the editor font to "Terminal" resulted in "Courier" instead. This has been corrected.
    [EW23156]

  • In EWARM 6.40.2:
    Reloaded editor files were incorrectly scrolled to the beginning. They are now opened at the expected location.
    [EW23252, EW23280]

  • In EWARM 6.40.2:
    The editor no longer tries to identify special comments like //! or /// (e.g. Doxygen or javadoc comments). Now everything after // is handled as a normal C++ comment.
    [EW23264, EW23275]

  • In EWARM 6.40.2:
    The Find/replace operation generated a sound for each replacement. Now a beep is emitted during a replace operation only when the document is read-only. [EW23265]

  • In EWARM 6.40.2:
    The caret color is now set to white if the background is dark, and black otherwise.
    [EW23277, EW23291]

  • In EWARM 6.40.2:
    The IDE could crash when a leaf was double clicked in the Code Coverage window, because of a missing path in the editor view. This has been corrected. [EW23283]

  • In EWARM 6.40.2:
    The editor could become sluggish when operating on files located on a slow network drive. Speed has been improved by changing the behavior of file monitoring (i.e. detecting file changes made externally).
    [EW23284]

  • In EWARM 6.40.2:
    Input via a non-Latin keyboard (e.g. Cyrillic) was not working. This has been corrected.
    [EW23323]

  • In EWARM 6.40.2:
    The flash loader for Freescale MK61FN1M0xxx12 did not work.
    [EW23326, EW23203]

  • In EWARM 6.40.3:
    Specifying the Project>Options...>General Options>Output>Executables/libraries path with a trailing space caused IAR Embedded Workbench to quit unexpectedly. This no longer occurs.
    [EW23084]

  • In EWARM 6.40.3:
    The horizontal scrollbar in the editor window did not show all of a very long line. This has been corrected.
    [EW23333]

  • In EWARM 6.40.3:
    Defining a typedef and a struct using the same identifier caused the source browser to stop working. This has been corrected.
    [EW23367]

  • In EWARM 6.40.3:
    Wrong definition of IPU in the Freescale header file iomcimx535.h.
    [EW23384]

  • In EWARM 6.40.3:
    The registers CCR3 and CCR4 were missing on TIM3 and TIM4 for ST STM32F407 in the debugger register view.
    [EW23402]

  • In EWARM 6.40.3:
    The text editor will now correctly reload files that were opened as read-only.
    [EW23408]

  • In EWARM 6.40.3:
    The definition of the register CPSW_P2_MAX_BLKS has been corrected in the header file and the debugger device configuration file for TI AM335x.
    [EW23456]

  • In EWARM 6.40.4:
    Now all *_LOC registers are present in Lpc11xx.h in the LPC11xx example projects.
    [EW23395]

  • In EWARM 6.40.4:
    The Project>Import File List... dialog box in the Japanese version of IAR Embedded Workbench did not show *.ewp files by default. This has been corrected.
    [EW23453]

  • In EWARM 6.40.4:
    Missing bit field definitions RCC_CSR.LSECSSON and RCC_CSR.LSECSSD in the device files for ST STM32Lxxx.
    [EW23469]

  • In EWARM 6.40.4:
    Strings and C/C++-style comments were not colored in assembler files. This has been corrected.
    [EW23508]

  • In EWARM 6.40.5:
    The region 0x60000000-0x6FFFFFFF was missing in the memory map for Freescale i.MX25.
    [EW23498]

  • In EWARM 6.40.5:
    The commands Next/Previous Bookmark now wrap at the beginning and the end of the document.
    [EW23499, EW23510]

  • In EWARM 6.40.5:
    The ST STM32 header files lacked definitions for the ACR register.
    [EW23507]

  • In EWARM 6.40.5:
    Incorrect meta information in the Toshiba TMPM061FWFG default linker control file.
    [EW23527]

  • IAR Embedded Workbench IDE - Corrected problems

New features
  • None.

V6.30 2011-10-22

Program corrections
  • The source browser no longer consumes memory without returning it.
    [EW22527]

  • C++ options are no longer used when --c++ isn't used.
    [EW22532]

  • Files in editor panes are now restored correctly.
    [EW22602]

  • Some of the linker configuration files for Freescale Kinetis no longer handle the border between the RAM banks at 0x20000000 incorrectly.
    [EW22635]

  • The setup for Fujitsu MB9EF126 no longer specifies the wrong ARM core.
    [EW22661]

  • The getting started example for Phytec LPC3180 now works with newer versions of the NAND memory.
    [EW22666]

  • Definitions for CCR3/CCR4 are no longer missing in the iostm32l151xx.ddf file.
    [EW22680]

  • RCC_APB2LPENR and RCC_APB1LPENR are now correctly named in the header files for STM32L15x.
    [EW22683]

  • TI Stellaris examples with bootloaders at address zero now work also when debugging.
    [EW22753]

  • In EWARM 6.30.3:
    The Overwrite old file option on the Tools>Options>Messages options page now works also when the path given in the log file text box contains an argument variable, for example $PROJ_DIR$.
    [EW22709]

  • In EWARM 6.30.3:
    Function-like macros with zero parameters caused the Source Browser to lose the definition following the macro. For example, after this definition:

        #define MACRO() macro_body
    x in the following lines would not be recognized the Source Browser:
        MACRO()
        int x;
    This has been corrected.
    [EW22794]

  • In EWARM 6.30.3:
    The debugger device description file for Freescale Kinetis K20 is now included.
    [EW22811]

  • In EWARM 6.30.3:
    The My Pages link in the Information Center now opens My Pages in an external web browser.
    [EW22813]

  • In EWARM 6.30.3:
    The TZIC_PRIOMASK register in the header file iomcimx535.h has the correct address now.
    [EW22821]

  • In EWARM 6.30.3:
    The PWR_CR/LPSDSR bit in the header file iostm32L151xx.h has the correct name now.
    [EW22835]

  • In EWARM 6.30.3:
    The VFP option was greyed out for Freescale Kinetis devices with floating point unit.
    [EW22860]

  • In EWARM 6.30.3:
    A number of register definitions were missing from the Analog devices header files ioaduc7023.h, ioaduc7060.h and ioaduc7122.h.
    [EW22863]

  • In EWARM 6.30.4:
    The LPC2468 simple examples wrongly enabled IRQ before enabling the VIC.
    [EW22870]

  • In EWARM 6.30.4:
    Some of the STM32f4xx examples wrongly configured the SWO clock to 120 MHz, it is now set to the correct value 150 MHz.
    [EW22904]

  • In EWARM 6.30.6:
    The IAR Embedded Workbench integration with Subversion could misinterpret some Subversion version 1.7.x messages, which resulted in the error message:
    SVN: Internal Error: SVN_Status - did not find file.
    [EW22892]

  • In EWARM 6.30.6:
    The Source Browser failed to browse include files specified with an absolute path.
    [EW22919]

  • In EWARM 6.30.6:
    The STM32L15x flashloader failed to handle gaps and fill values within the selected address range.
    [EW22924, EW22926]

  • In EWARM 6.30.6:
    Header and debugger device description file corrections for NXP LPC177x and LPC178x.
    [EW22934]

  • In EWARM 6.30.6:
    The Freescale Kinetis debugger device description files iok10xxxx.ddf and iok20xxxx.ddf were missing from the installation.
    [EW22945]

  • In EWARM 6.30.6:
    Header and debugger device description file corrections for Fujitsu MB9EF126.
    [EW22961]

  • In EWARM 6.30.6:
    The description of MISRA-C:2004 rule 1.1 is now correct:
    1.1: [required] All code shall conform to ISO 9899:1990 'Programming languages - C', amended and corrected by ISO/IEC 9899/COR1:1995, ISO/IEC 9899/AMD1:1995, and ISO/IEC 9899/COR2:1996.
    [EW22970]

  • In EWARM 6.30.6:
    Wrong flashloader selected for Freescale Kinetis MK10FN1M0xxx12.
    [EW22986]

  • In EWARM 6.30.6:
    Missing definition for SYSCFG_CMPCR in the header and debugger device description file for ST STM32F2xx.
    [EW22992]

  • In EWARM 6.30.6:
    The project manager in the IAR Embedded Workbench now behaves correctly after a massive burst of error logging in the Debug Log window.
    [EW23059]

  • In EWARM 6.30.7:
    Previously IAR Embedded Workbench did not remember a connection to some source control systems (for example ClearCase) between sessions. This has been corrected.
    [EW22968]

  • In EWARM 6.30.7:
    The address for FSPULLUP in ios3fn21x.h was wrongly defined.
    [EW23056]

  • In EWARM 6.30.7:
    The Freescale K70 flashloader could fail during download.
    [EW23090]

  • In EWARM 6.30.8:
    Wrong addresses for ADC_CSR and ADC_CCR in the header and debugger device description files for ST STM32L151xx, STM32L152xx, STM32L162xx.
    [EW23119]

  • In EWARM 6.30.8:
    Missing definitions for RTC registers in the debugger device description file for ST STM32F4xx.
    [EW23125]

  • In EWARM 6.30.8:
    The linker configuration editor was wrongly configured for Toshiba Cortex-M3 devices.
    [EW23142]

  • In EWARM 6.30.8:
    Incorrect address set for Fujitsu MB9AF131K/132K internal RAM.
    [EW23154]

  • In EWARM 6.30.8:
    Better debugger display of the ST STM32F2xx timer registers.
    [EW23155]

  • In EWARM 6.30.8:
    Correction of the example clock setup code in system_LPC11xx.c.
    [EW23166]

  • In EWARM 6.30.8:
    Missing bit definitions for the register RCC_AHB1ENR in the header and debugger device description file for ST STM32F2xx.
    [EW23167]

  • In EWARM 6.30.8:
    Fixed a bug in the Freescale Kinetis USB CDC example that could cause an unexpected exception.
    [EW23190]

  • In EWARM 6.30.8:
    The examples for the IAR-LPC-1768-SK board specified more RAM than what is available.
    [EW23201]

  • In EWARM 6.30.8:
    Missing definition for EXTI in the debugger device description file for ST STM32F4xx.
    [EW23202]

  • IAR Embedded Workbench IDE - Corrected problems

New features
  • Extended XDS100v2 support (new in 6.30.4)
    The XDS100v2 debugger driver now supports all TI Stellaris Cortex-M3 devices and the TI TMS470M family.

  • Stack usage analysis
    With stack usage analysis enabled, a stack usage section will be added to the linker map file with listings of the maximum stack depth for each call graph root. The analysis process can be customized to take into account such constructs as calls via function pointers and recursion. The output can optionally be generated in XML format for post-processing activities.

  • Extended inline assembler
    The inline assembler have been extended with the possiblity to take input arguments, have return values, and read or write to C symbols. The syntax is similar to the syntax used in GNU GCC.

  • Cortex-M3/M4 speed optimizations
    The compiler optimizer have been tuned to generate faster code, with special focus on the coremark and DSP library code bases.

  • JTAGjet-Trace integration
    Signum JTAGjet-Trace, an advanced debug probe for high-end applications, is now integrated with its trace module in the debugger, making it possible to take full advantage of the trace capabilities on Cortex-A and Cortex-R devices when debugging complex systems.

  • ITM event plot function in timeline window
    The Timeline window has been enhanced with a graphical event log for Cortex-M3/M4 users. To aid in analyzing the behavior of your code, place predifined macro functions at places of interest in the code, and when these points are reached during execution, event messages will be sent and appear in the Timeline window. The plotted events can be correlated with the source code, detailed context timing is also provided.

  • Function exclude mechanism in profiler
    The function profiling window has been enhanced with a function hide mechanism. Functions that are not of interest can be filtered out. This can be useful when working with an RTOS, RTOS kernel functions can be filtered out, to get a focused picture of where the execution time is spent in the actual application code.

  • Support for Texas Instruments Stellaris ICDI (new in 6.21.3)
    Support has been added for the Texas Instruments Stellaris ICDI debug interface. The same C-SPY debugger driver is used for both the FTDI- and the ICDI-interface. This debugger driver is now called TI Stellaris.

  • RTOS awareness support for AVIX-RT (new in 6.21.2)
    An RTOS awareness plug-in for AVIX-RT is now included.

V6.21 2011-07-05

Program corrections
  • A build problem where $VARIABLES$, in some circumstances, were not expanded relative to the configuration actually being built has been corrected.
    [EW22400]

  • The Undo Checkout command on the Version Control System submenu for SCC now works correctly.
    [EW22462]

  • Wrong RCC_AHBRSTR definition in iostm32L151xx.h and iostm32L152xx.h.
    [EW22514]

  • In EWARM 6.21.2:
    Corrected some register definitions in iostm32f207xx.h.
    [EW22577]

  • In EWARM 6.21.2:
    Missing GPIOH definition in iostm32L151xx.h and iostm32L152xx.h.
    [EW22580]

  • In EWARM 6.21.2:
    The device configuration file for STM32F205Vx was missing.
    [EW22587]

  • In EWARM 6.21.2:
    Corrected some register definitions in ios3fn41f.h.
    [EW22588]

  • In EWARM 6.21.2:
    Selecting Hilscher Net.x50 wrongly used ARM926 as core, it now uses the correct core ARM966.
    [EW22600]

  • In EWARM 6.21.3:
    The Freescale Kinetis K70 flashloader did not work correctly.

New features

V6.20 2011-04-29

Program corrections
  • The USB VirtualCom driver now works on Windows 7.
    [EW22181]

  • The register HcBCR0 has been added to the device specific files for Toshiba TMPA900CM.
    [EW22264]

  • IarBuild.exe can now run the same command lines in Project Options>Build Actions as the IAR Embedded Workbench IDE.
    [EW22293]

  • The EXTI registers have been added to the device specific files for ST STM32F2xx.
    [EW22288]

  • The dialog box to choose a directory for Find in Files is now displayed with the correct dialog box title and button name.
    [EW22304]

  • If two or more IAR Embedded Workbench toolchains (for different microcontroller architectures) were installed in the same directory, and some of the toolchains were only available in English, launching IAR Embedded Workbench in a non-English language meant that the Information Center was not available for English-only toolchains. This has been corrected.
    [EW22341]

  • The definition of EECLKDIV in the device-specific files for NXP LPC1778/LPC1788 has been corrected.
    [EW22358]

  • The block layout in the ST STM32F105xB flashloader has been corrected.
    [EW22366]

  • The definition of TSI in the device specific files for Freescale K60 has been corrected.
    [EW22388]

  • Non-existent SPI registers defined in the device-specific files for Freescale K60 have been removed.
    [EW22395]

  • In EWARM 6.20.2:
    The RAM configuration in the Freescale Kinetis getting started example is now correct.
    [EW22428]

  • In EWARM 6.20.2:
    The correct linker configuration file is now specified in the Freescale K60 getting started example.
    [EW22429]

  • In EWARM 6.20.2:
    A syntax error in the jlink script file for OMAP-L138 has been corrected.
    [EW22431]

  • In EWARM 6.20.4:
    Wrong register definitions for the Samsung S3FN60D device.
    [EW22466]

  • In EWARM 6.20.4:
    Wrong memory map specification in the linker files for The Samsung S3FN21F, S3FN41F and S3FN60D devices.
    [EW22467]

New features
  • DSP library for Cortex-M3/M4
    The ARM CMSIS DSP library is now supported and delivered with the product. The library comes with a powerful collection of DSP functionality; FIR/IIR filters, FFT, DCT, Clarke and Park transforms, PID controller and much more. See the CMSIS DSP Software Library documentation for more information.
    The CMSIS support is enabled from Project>Options...>General Options>Library Configuration, CMSIS include paths and the DSP library will automatically be included when enabled.

  • Cortex-A8
    Support for code generation for and debugging of ARM Cortex-A8 cores.

  • Cortex-A9
    Support for code generation for and debugging of ARM Cortex-A9 cores.

  • Subversion
    The version control integration has been extended with support for Subversion (SVN).

  • Power debugging enhancements

    • The J-Link Ultra now supports sampling rates up to 10 kHz.
    • Power data can be filtered based on a threshold value.
    • Execution can be stopped based on a threshold value (power breakpoint).
    • Power samples can be logged to a file, either the collected data up to that point or live acquisition.

  • Automatic selection of printf/scanf formatter
    The compiler/linker will parse the printf/scanf format specifiers and select the smallest possible formatter from the library.

  • Virtual Function Elimination (VFE)
    The compiler/linker will optimize C++ applications and remove unused virtual functions.

  • RTOS context sensitive help
    Context-sensitive help is available for some RTOS'es, and gives easy access to descriptions of API functions.

V6.10 2010-11-04

Program corrections
  • The AT91C_ISRAM_SIZE definition in the Atmel header file ioat9sam7se512.h was incorrect, the correct value is 0x00008000.
    [EW21581]

  • A file path exceeding the _MAX_PATH Windows limit could cause the IAR Embedded Workbench to freeze or quit unexpectedly. Now such situatations are detected and flagged as errors.
    [EW21645]

  • Using a path containing .. to defined output directories could make it impossible to start the debugger. This has been corrected.
    [EW21839]

  • The DLIB template project is now possible to build without modifications.
    [EW21902]

  • The register bit definition ADEN has been added to iotmpm370FxFG.h.
    [EW21994]

  • The Project>Options...>Linker>Output>Output file text box accepted a file path instead of just a filename which could lead to project building problems. This has been corrected and the option has been renamed.
    [EW22004]

  • In EWARM 6.10.2:
    Incorrect function description for GPIO_SetInterrupt() in examples\NXP\LPC13xx\LPC1300CMSIS\Drivers\source\lpc13xx_gpio.c.
    [EW22086]

  • In EWARM 6.10.2:
    Incorrect register width definitions in iolpc3250.h.
    [EW22114,EW22154]

  • In EWARM 6.10.2:
    The IDE no longer terminates unexpectedly when changing editor font type and size.
    [EW22115]

  • In EWARM 6.10.2:
    Missing volatile declarations in examples\ST\STM32F10x\IAR-STM32F107VC-SK\Accelerometer_Demo\modules\i2c1_drv.c caused application error at high optimization levels.
    [EW22139]

  • In EWARM 6.10.5:
    The Atmel AT91SAM9260 TWI_SR register bits EOSACC, SCLWS and ARBLST was missing in the processor support files.
    [EW20728]

  • In EWARM 6.10.5:
    The Atmel AT91SAM9260 TWI_SR register bits TXBUFF, RXBUFF, ENDTX, ENDRX was defined in the processor support files, but they do not exist in real hardware.
    [EW20729]

  • In EWARM 6.10.5:
    The IDE command Stop Build now works properly when it is applied to pre- or post build actions when they are started in a new command shell.
    [EW22075]

  • In EWARM 6.10.5:
    Large and complex projects no longer cause the IAR Embedded Workbench source browser to freeze.
    [EW22126]

  • In EWARM 6.10.5:
    The flashloader did not work with AT91SAM7S256 revision C.
    [EW22165]

  • In EWARM 6.10.5:
    Recursive definitions of a preprocessor macro no longer causes IAR Embedded Workbench to terminate abnormally.
    [EW22177]

  • In EWARM 6.10.5:
    The numbers of errors and warnings reported at end of build are now correct.
    [EW22202]

  • In EWARM 6.10.5:
    The header file iolpc3250.h failed the MISRA-C check.
    [EW22268]

New features
  • Power debugging
    Power debugging is a methodology that provides software developers with information about how the software implementation in an embedded system affects system level power consumption. By coupling source code to power consumption, testing and tuning for power optimization is enabled. The debug probe samples the momentary current drawn by the system and feeds it to the debugger where the measured current is synchronized with time stamped program counter values. This allows the debugger to present power consumption directly correlated to the source code. The debugger supports power data from the following sources:

    • J-Link Ultra
      Power data is measured with high accuracy at the board level. A future adapter will be available in Q2 2011 to measure power at the MCU level. Supports calibration.
    • J-Link
      Power data is measured with low accuracy at the board level. Does not support calibration.
    • The Energy Micro EFM32 Gecko development and starter kits
      They have a J-Link compatible debug probe integrated on-board. Power data is measured with high accuracy at the MCU level. Does not need calibration.

    Power data can be visualized as a power log, a graph on a time scale, or in the function profiler as energy consumption.
    More information can be found in IAR Embedded Workbench® C-SPY Debugging Guide

  • C-SPY Debugging Guide introduced
    A new user guide called C-SPY Debugging Guide has been introduced. The purpose of this guide is to help you fully use the features in the IAR C-SPY Debugger for debugging your application.

  • C99
    The product now uses the current C standard defined in 1999, known as C99, as the default C language.

  • C++
    Support for the C++ language has been added. By default, it fully supports the ISO/IEC 14882:2003 C++ standard. The EC++ and EEC++ dialects are still available.

  • Cortex-A5
    Support for code generation and debugging of ARM Cortex-A5 cores.

  • RTOS integration
    Product information, evaluation versions, and example projects for third party RTOS and middleware solutions are now integrated into IAR Embedded Workbench for easy evaluation. RTOS and middleware information and example projects can be accesses via IAR Information Center.

  • C library
    The DLIB library now has improved support for threaded environments.

  • Floating point optimizations
    The compiler can now optimize floating-point expressions better by using the option --relaxed_fp. If enabled, the compiler tries to use a smaller floating-point type in floating-point expressions.

  • CMSIS SVD
    The debugger supports the CMSIS System View Description files to display peripheral register content.

  • P&E Micro JTAG probes
    The P&E Micro Multilink, Cyclone and OSJTAG are supported. Read about how to configure C-SPY to use a P&E Micro probe in Configuring the IAR Workbench Debugger to use a P&E Microcomputer Systems Interface.

  • Freescale MQX plugin
    The Freescale MQX kernel awareness plugin is now included in the product.

  • FreeRTOS/OPENRTOS plugin
    The FreeRTOS/OPENRTOS kernel awareness plugin is now included in the product.

V5.50 2010-04-21

Program corrections
  • The interrupt handler used in Atmel ARM7 examples did not align the stack on 8 byte boundaries as required by the ARM EABI.
    [EW21302]

  • Incorrect content in the Atmel header files ioat91sam3s1.h, ioat91sam3s2.h and ioat91sam3s4.h.
    [EW21511]

  • Incorrect ADC2_SMPR2 and ADC3_SMPR2 definitions in the ST header files iostm32f10xx4.h, iostm32f105xx.h, iostm32f10xxB.h, iostm32f10xxE.h and iostm32f107xx.h
    [EW21667]

  • Incorrect definition of _AT91S_SYS in the Atmel header file ioat91sam9260.h.
    [EW21719]

  • The flash loader for TI TMS470R1B1M failed to write in the address range 0x70000-0x7ffff.
    [EW21722]

  • In EWARM 5.50.5:
    Go to definition now works for registers defined in device header files (using __IO_REG* macros).
    [EW21755]

  • In EWARM 5.50.5:
    The option Cortex-M4F in Project>Options...>General Options>Target>Core now works with the Assembler.
    [EW21772]

  • In EWARM 5.50.5:
    The LPC2923 flashloader did not work correctly.
    [EW21787]

  • In EWARM 5.50.5:
    The USB register base address was wrong in iolpc2923.h.
    [EW21788]

  • In EWARM 5.50.5:
    The Toshiba TMPM380-SK examples wrongly specified the RAM size to 32 kbyte instead of the correct value 16 kbyte.
    [EW21867]

  • In EWARM 5.50.6:
    A corrupt settings file (.wsdt) no longer causes IAR Embedded Workbench to terminate abnormally.
    [EW21750]

  • In EWARM 5.50.6:
    Fixed problem with the NUMONYX M29W640GT flash on Toshiba TMPA900 board.
    [EWARM-1015]

New features
  • Cortex-M4
    Support for code generation and debugging of ARM Cortex-M4 cores.

  • Trace enhancements
    A new Timeline window allows correlated visualization of call stack, interrupt log, and data log values plotted against time.

  • Position-independent code and data
    The compiler can now optionally generate position-independent code and/or position-independent data.

  • C library floating-point optimizations
    A number of C library floating-point functions have been optimized for speed and size.

  • CP15 register display
    The debugger can display CP15 coprocessor registers when using the J-Link/J-trace debug probe.

  • SC000
    Support for code generation and debugging of ARM SC000 secure cores.

V5.41 2009-12-14

Program corrections
  • When switching from multi-file compilation mode to single-file compilation, the error "Build error: Multiple tools write to the same file" is no longer issued.
    [EW20855]

  • The tutorials are now configured to be built for Cortex-M3.
    [EW21356]

  • INT_SSI in iomcimx27.h is no longer defined incorrectly.
    [EW21410]

  • Opening a context menu in the Editor window does no longer produce strange error entries in the Debug Log window.
    [EW21412]

  • Corrected some register definitions in ioat91cap7.ddf.
    [EW21415]

  • The example arm\examples\TexasInstruments\Stellaris\boards\rdk-bdc\qs-bdc does no longer select wrong device.
    [EW21432]

  • The example arm\examples\NXP\LPC17xx\IAR-LPC-1768-SK\simple\ADC no longer fails to build when configured to be interrupt driven.
    [EW21465]

  • The default flash loader for LPC1764 is now correct.
    [EW21486]

  • In EWARM 5.41.2:
    Adding a file to a project will now use the current case of the filename, even if it was previously known with another case.
    [EW21490]

  • In EWARM 5.41.2:
    Some register definitions was missing in the header and ddf file for TI Stellaris LM3S5B91.
    [EW21497]

  • In EWARM 5.41.2:
    Some timer register definitions was missing in the header and ddf file for ST STM3210x.
    [EW21548]

  • In EWARM 5.41.2:
    The AHB mode GPIOJ and GPIOA-GPIOJ register definitions was missing in the header and ddf file for TI Stellaris LM3Sxxxx.
    [EW21562]

  • In EWARM 5.41.2:
    The PINSEL initialization code for NXP LPC2xxx examples disabled the trace port.
    [EW21610]

New features
  • Cortex-R4F
    Support for code generation and debugging of ARM Cortex-R4F cores with VFP unit.

  • Cortex-M0 speed optimizations
    Cortex-M0 code generation have been tuned to generate code with faster execution speed.

  • Trace start and stop triggers
    The instruction trace can be started and stopped based on conditions like code locations and data accesses. This feature is now available for the J-Trace for ARM trace probe, in addition to the J-Trace for Cortex-M3 trace probe.

  • SWO support in J-Trace for Cortex-M3
    The J-Trace for Cortex-M3 trace probe now supports SWO trace. The firmware will be automatically upgraded by the debugger.

  • Enhanced Find in files
    Regular expressions can now be used in the Find in files search field.

  • Workspace-relative paths
    Workspace-relative paths are used for opened editor windows, which makes it easier to move a workspace to a new location.

V5.40 2009-07-10

Program corrections
  • An '#undef' preprocessor directive not followed by a preprocessor symbol no longer causes the IAR Embedded Workbench IDE to exit unexpectedly.
    [EW20779]

  • Duplicate of problem (20812) corrected in EWARM 5.30.2: A library project could not be built without a preceding Clean command.
    [EW20814]

  • Flash loader specific arguments were not correctly documented. Starting with this release, the documentation is provided as part of the flash loader edit mechanism.
    [EW20848]

  • The LPC2468 uip_webserver example did not work stand-alone (without debugger control).
    [EW20851]

  • iolpc2470.h has been completed with some bit definitions.
    [EW20905]

  • The Atmel AT91SAM9XE512 flash loader for internal flash has been corrected.
    [EW20908,20990]

  • A LPC2378 example included a function with an erroneous clock calculation.
    [EW20930]

  • A problem that could cause an upgrade from EWARM 5.30.1 to 5.30.2 to fail has been corrected.
    [EW20951]

  • The flash loader for AT91sam7xc512 could hang.
    [EW20955]

  • The STM32 watchdog must be disabled to not interfere and make the flashloading fail. Use the utility .../arm/bin/jlinkstm32.exe to disable the watchdog.
    [EW20995]

  • When the startup screen copied an example application for TexasInstruments TMS470R1B1M, the wrong folder was copied.
    [EW20997]

  • Selecting LM3Sx6xx for the Luminary LM3S2616 failed because this chip only have 16 kbyte RAM. The fix was to add LM3S2616 as a selectable device.
    [EW21012]

  • The Atmel AT91SAM9263-EK project basic-sd-spi-project failed to copy external_libs correctly when started from the startup screen.
    [EW21013]

  • The Atmel AT91SAM9XE256 flash loader for internal flash has been corrected.
    [EW21072]

  • The CRC calculation unit registers on the STM32 devices were missing.
    [EW21078]

  • All device header files now use C style comments.
    [EW21081]

  • In EWARM 5.40.4:
    The Toshiba TMPM330 flash loader caused the error:
    Unknown or ambiguous symbol. __argc
    to be displayed. The error did not affect the correctness of the flash download.
    [EW21172]

  • In EWARM 5.40.4:
    Some examples for ST STM32 failed to build.
    [EW21179,EW21184]

  • In EWARM 5.40.4:
    Some of the examples for Analog Devices did not have the flash loader enabled.
    [EW21208]

  • In EWARM 5.40.4:
    The LPC2468 flash loader was wrongly built in debug mode, causing debug messages to be sent over the serial port.
    [EW21216]

  • In EWARM 5.40.4:
    You cannot use the Output converter on library files. This option is now excluded from the EWARM Category list for library projects.
    [EW21291]

New features
  • New Cortex-M3 debug features
    Several new presentation methods are available for display and analysis of Cortex-M3 SWV/SWO data

  • Information Center
    An integrated navigation system that gives easy access to tutorials, product documentation, and example projects. Select Help>Information Center to display the Information Center.

  • Cortex-R4
    Support for code generation and debugging of ARM Cortex-R4 cores.

  • Cortex-M0
    Support for code generation and debugging of ARM Cortex-M0 cores. Debugging on Cortex-M0 hardware is supported using the J-Link probe.

  • J-Trace for Cortex-M3
    Using the J-Trace for Cortex-M3 debug, the debugger can now take advantage of the ETM trace port available on some Cortex-M3 devices. Instruction trace can be started and stopped based on conditions like code locations and data accesses. This feature requires the J-Trace for Cortex-M3 trace probe.

  • Trace start and stop triggers
    The instruction trace can be started and stopped based on conditions like code locations and data accesses. This feature requires the J-Trace for Cortex-M3 trace probe.

  • Direct flash erase and download
    Flash erase and download can be performed without starting the debugger.

  • Debugging multiple images
    C-SPY is now capable of debugging several independently built images during one debug session. Under Project options>Debugger>Images you specify the location of the images to be downloaded in addition to the current application. There is also a new debugger window called Images where you select for which application debug information will be displayed.

  • Cortex-M3 data breakpoint enhancements
    A data breakpoint in Cortex-M3 is now able to break on a specific value in addition to the address of the accessed variable.

  • Auto refresh in the debugger memory window
    The debugger memory window can be refreshed during program execution, both manually and periodically.

V5.30 2009-01-23

Program corrections
  • In EWARM 5.30.2:
    All files were opened in the IAR Embedded Workbench editor, even if an external editor had been set up and should have been used instead.
    [EW20794]

  • In EWARM 5.30.2:
    A library project could not be built without a preceding Clean command.
    [EW20812]

  • In EWARM 5.30.2:
    A C/C++ macro definition containing a '#' character no longer causes the Embedded Workbench IDE to exit unexpectedly.
    [EW20823]

  • In EWARM 5.30.2:
    Downloading to AT91SAM7S64 failed.
    [EW20858]

  • In EWARM 5.30.2:
    In some cases, during initialization of the Stack plugin immediately after downloading the ELF/DWARF input file, the Embedded Workbench IDE exited unexpectedly.
    [EW20903]

  • Previously, there was no way to select the checksum algorithm sum32 in Project>Options>Linker>Checksum.
    [EW20236]

  • The flash loader for Atmel AT91SAM9260EK was missing.
    [EW20301]

  • Previously, the display of the SD-card size in the example arm\examples\ST\STR91x\STR912-SK-IAR\MassStorage was incorrect.
    [EW20333]

  • The Toshiba TMPA910CR header file iotmpa910cr.h previously defined some of the peripheral registers incorrectly.
    [EW20364]

  • Interrupt handlers in Atmel examples failed to align the stack on an 8-byte boundary before calling the AIC interrupt vector function.
    [EW20412]

  • If an input expression in the Linker configuration file editor dialog box contained space or tab characters, the expression could incorrectly be evaluated to 0.
    [EW20424]

  • A debugger description file (.ddf) for Atmel AT91SAM7A1 and AT91SAM7A2 was previously missing. it is now available.
    [EW20418]

  • Flash download to NXP LPC2364 did not work.
    [EW20456, 20566]

  • The ILINK checksum fields Alignment and Initial value are now correctly enabled and disabled.
    [EW20487]

  • Go to definition did not work for functions declared with the __noreturn keyword.
    [EW20605]

  • The system startup files cstartup_M.s and cstartup_M.c have been added to the evaluation version.
    [EW20670]

  • It is no longer necessary to update ilinkarm options when debugging an externally built project.
    [EW20707]

  • The Embedded Workbench could crash if a large selection in the text edtor was right-clicked.
    [EW20751]

New features
  • New Cortex-M3 debug features
    Several new presentation methods are available for display and analysis of Cortex-M3 SWV/SWO data
    • Function profiler.
    • Disassembly window with instruction trace count.
    • Data Log window that logs accesses to up to four different memory locations or areas, including time information. A condensed summary for each memory location is also available.
    • Interrupt Log window that logs entrances and exits to and from interrupts, including time information. A condensed summary for each interrupt source is also available.
    • Interrupt Graph window that shows interrupt activity on a time scale for each interrupt source.
    • Enhanced SWO trace window.
    • J-Link download speed using the SWD interface have been improved by 40%.

    For more information see the Debugging guide.

  • Compiler size optimizations
    The compiler optimizer has been tuned to generate industry-leading code size for Cortex-M3 code.
  • Compressed initializers
    The linker can compress initialized data to minimize flash use. The compressed data will be atomatically uncompressed when moved from flash to RAM by the startup code. For more information see the Development guide.
  • MISRA C:2004 support
    IAR Embedded Workbench now supports checking of source code for conformance to the MISRA C:2004 standard.
  • ST ST-LINK debug probe
    Support for the ST ST-LINK JTAG debug probe.
  • ARM7EJ-S
    Support for the ARM7EJ-S core.
  • The fields and content in the Linker configuration file editor is dynamically adapted to the type of the core, classical ARM or Cortex.

V5.20 2008-06-24

Program corrections
  • The definitions SPI_CSR0-SPI_CSR3 have been restored to the file ioat91sam7s64.ddf.
    [EW16853]

  • The UDP_CSR0-3 and UDP_FDR0-3 definitions for the USB interface have been restored to the C header and DDF files for Atmel AT91SAM7S64, 128, and 256.
    [EW17163]

  • The IDE no longer freezes or crasches, if the extension of any output file from the linker or output converter is a valid extension for an input file to the assembler or compiler.
    [EW17515]

  • Using the IDE variable TARGET_DIR to reach a parent directory, for example $TARGET_DIR$\..\.., caused the IDE to crash.
    [EW17756]

  • The AIC_SMR0-AIC_SMR31 and AIC_SVR0-AIC_SVR31 definitions have been restored to the files ioat91sam7s64.ddf and ioat91sam7xc256.ddf.
    [EW17830,19000]

  • Atmel example projects can now be opened from the Startup screen.
    [EW17869]

  • Paths containing dollar sign characters '$' are now handled correctly.
    [EW18252]

  • Recursive macros can now be used in a preprocessor expression with the "Generate browse information" option selected in the IDE options dialog box.
    [EW18721]

  • Circular #include preprocessor directives can now be used.
    [EW19037]

  • The fill pattern can now be of any length as long as it is composed of full bytes, but it must be given in hexadecimal notation, starting with 0x.
    [EW19697]

  • Texas Instruments example projects can now be opened from the Startup screen.
    [EW19795]

  • The str91x-isc.mac debugger macro file did not work correctly with G and H revisions of the STR91x.
    [EW19931]

  • Some STM32 application layouts could cause errors when downloading code to flash.
    [EW20027]

  • Missing SPI and AIC registers have been added to ioat91sam7s256.ddf.
    [EW20028]

  • In iostr912f.h, the UART_RSECR register is no longer incorrectly named UART0_RSR.
    [EW20074]

  • An incorrect preprocessor directive in the form of
    #define X(y) #x
    could make the Embedded Workbench IDE terminate abnormally. This has been corrected.
    [EW20096]

  • The --BE32 command line option is now sent to the linker if BE32 is selected in the option dialog.
    [EW20118]

  • Multiple definitions of HECC_CR, HECC_MR, HECC_SR, HECC_PR, HECC_NPR, HECC_VR have been removed from the file ioat91sam9260.ddf.
    [EW20121]

New features
  • Multi-file compilation
    It is now possible to use the IDE to define compilation units with multiple files that will be compiled as one unit, giving the compiler a larger scope for code optimizations.
  • Cortex-M3 SWV/SWO
    Cortex-M3 SWV (Single Wire Viewer) trace packets sent over the Cortex-M3 SWO channel can be presented by the debugger. The user have full control over the selection of trace packet types. The communication rate is 6 MHz when using J-Link v7 or newer (500 kHz for older J-Link versions)
  • Printf via SWO at the click of a button
    For Cortex-M3, printf output can be sent via the SWO channel (that is part of the SWD interface), and displayed in the debugger terminal I/O window. The advantage is real-time performance for debug log messages because the CPU does not need to be halted.
    To enable: Project Options>General Options>Library Configuration>Via SWO.
  • Printf via DCC
    For ARM7 and ARM9, printf output can be sent via the DCC channel, and displayed in the debugger terminal I/O window. The advantage is real-time performance for debug log messages because the CPU does not need to be halted.
    Further information can be found here.
  • Flash breakpoints
    Flash breakpoints allows an unlimited number of breakpoints to be active even when locating code in flash. Flash breakpoints is available for the J-Link probe and available as a separate product.
  • Compiler speed optimizations
    The compiler optimizer has been tuned to generate industry-leading execution speed for Cortex-M3 code.
  • VFP
    Support for the VFPv1 and VFPv2 floating point coprocessors.
  • Linking with references to other link images
    Symbols from one link image can be used as input when linking another image. This is useful when an application depends on code in a resident (ROM) image. See the description of the ISymExport tool for more information.
  • J-Link control panel
    When a debug session is active, the J-Link control panel can be activated using the J-Link button in the Windows notification area. The control panel gives access to J-Link setup parameters and shows J-Link status information.
  • $CONFIG_NAME$
    A new argument variable $CONFIG_NAME$ has been added. It expands to the name of the current build configuration, for example Debug or Release.
  • IAR proprietary variant of semihosting
    An IAR proprietary variant of semihosting can be selected that does not use the SVC instruction and thus does not need to set a breakpoint on the SVC vector. This is an advantage for applications which require the SVC vector for their own use, for example an RTOS.

V5.11 2007-11-28

Program corrections
  • Changing the default object file output directory no longer causes the IDE to link two copies of the output file.
    [EW17458]

  • The Texas Instruments HET assembler het470.exe could in some cases fail to generate the C output files.
    The HET assembler wrapper het470wrap.exe was provided in an attempt to create a clean environment for the HET assembler het470.exe.
    In addition, the custom build rule in the examples was modified with the dummy argument -iii, which was been observed to reduce the problem in some environments.
    The problem is now completely solved by an updated het470.exe.
    [EW18098]

  • Default flash loader command line arguments can be read from device configuration (i79) files.
    [EW18713]

  • The AT91SAM7S512 flash loader can now handle the dual Embedded Flash Controllers.
    [EW19036]

  • The function browser in the editor window now recognizes functions within a 'namespace' block.
    [EW19230]

  • Missing registers have been added to the STR912FA device support files.
    [EW19349]

  • All example projects for the STR912-SK board now run also after a power cycle of the board.
    [EW19353]

  • The ILINK configuration file editor no longer loses data at the end of the file each time it is edited.
    [EW19447,19401]

  • Adding additional libraries using the Linker->Library option dialog box now works.
    [EW19477]

  • The TMS470R1M1B cannot have an LDR instruction at the reset vector due to the chip protection mechanism, it must be a B instruction. A specific cstartup.s file has been added to the relevant examples.
    [EW19479]

  • When copying a project configuration, the 'exclude from build' status of the files in the project is copied now.
    [EW19482]

  • All header files for NXP LPC devices now correctly define IO0PIN and IO1PIN as read-only.
    [EW19489]

  • The LPC2378 and LPC2468 flash loaders now make use of the last 4-Kbyte of flash.
    [EW19524]

  • Division by 0 within preprocessor directives no longer causes IAR Embedded Workbench to terminate abnormally.
    [EW19549]

  • Changing output directories no longer results in build problems.
    [EW19551]

  • STM32 examples no longer give verify errors on 4 bytes from 0x20000004.
    [EW19680]

  • Checksum fill patterns in the range 0x00-0x0F now work. However, patterns larger than 0xFF with 0 in the most significant nibble still do not work.
    [EW19697]

  • The Treat all warnings as errors option on the Linker > Diagnostics page no longer causes linker failure.
    [EW19699]

  • The flash loader for the i.MX21 now supports the Spansion S29WS128N0PBFW01 used on the RoHS compliant i.MX21 ADSE.
    [EW19706]

  • Incorrect bit struct definitions in iomcimx27.h have been corrected.
    [EW19728]

  • The readme.txt in arm\examples\ST\STR91x\STR91xlibrary\examples\UART now correctly specifies a male/female PC RS232 cable.
    [EW19732]

New features
  • Cortex-M1
    Support for code generation and debugging of ARM Cortex-M1 cores. Debugging on Cortex-M1 hardware is supported using the J-Link probe.
  • ARM11 debug with J-Link
    The J-Link driver now supports ARM11.
  • Expanding system environment variables
    System environment variable can now be expanded from within the IDE in the same way as the built-in argument variables.
    Syntax: <$_environment variable name_$
    For example, to use the system environment variable HOMEPATH in a path inside the IDE:
    $_HOMEPATH_$\CONFIG\linkerconf.icf.
  • Editor background color
    You can now select a background color for the text editor.
  • J-Link STR9 Commander (Command line tool)
    J-Link Commander (arm\bin\JLinkSTR91x.exe) is a tool that can be used to configure ST STR91x cores. It permits some STR9 specific commands, like setting the flash configuration register and erasing the flash. This tool can be used to erase the flash of the controller even if a program is in flash, which causes the ARM core to stall. The tool is described in the J-Link/J-Trace User Guide.

V5.10 2007-05-25

Program corrections

  • It is possible to select Arm/Thumb mode on each individual C/C++ source code file in the IDE.
    [EW14209]

  • A missing debug driver GUI DLL (WTD) might cause a warning dialog box to appear every time a project is opened.
    [EW18350]

  • In a custom build rule, the files listed in Additional input files were not always selected correctly when determining if the rule should be applied during a build operation.
    [EW18659]

  • The DDF files for NXP LPC2xxx devices contained redundant instances of the fast IO registers.
    [EW18720]

  • The example AT91SAM7S-Interrupt did not enable flash download in the FLASH_Debug configuration.
    [EW18733]

  • A startup error in the Atmel FlashAT91SAM7Sx flash loader has been corrected.
    [EW18734]

  • The iomc9328mx1.h file now defines UART3.
    [EW18748]

  • The iomc9328mx1.h file now defines the SSI2_CLK_EN and UART3_CLK_EN bits.
    [EW18766]

  • The LPC2148 Audiodevice example used the wrong configuration of PINSEL1_bit.P0_17 and PINSEL1_bit.P0_18 for capture mode.
    [EW18817]

  • The iotms470r1a288.h file now defines the C2SIB registers.
    [EW18834]

  • Corrected problems with the STR750 and STR912 mass storage examples.
    [EW18897,EW18941,EW18942]

  • Corrected the definition of IC2 for MAC7121.
    [EW18905]

  • The iolpc2210.h file now defines the U0TER, U1TER, T0CTCR, T1CTCR and SCS registers.
    [EW18928]

  • The default.i79 file was corrupt.
    [EW18952]

  • The Nohau NXP LPC288x example failed to load to flash memory.
    [EW18953]

  • Corrected the LPC214x USB uart virtual com example.
    [EW18965]

  • Corrected the Freescale i.MX21 flash loader.
    [EW18985]

  • The iolpc2138.h file now defines P0_26-P0_31 in the __pinsel1_bits struct.
    [EW19002]

  • Corrected the addresses of AD0 and AD1 in the header file iolpc2138.h.
    [EW19075]

  • The Additional include directories list in the IDE options dialog box, Project>Options>C/C++ Compiler>Preprocessor, was not saved between sessions, if the list started with a blank line.
    [EW19084]

  • The iotms470r1b1m.h file now defines DWCTRL, DWKEY and DWPRLD.
    [EW19131]

New features
  • ARM EABI compliance
    The IAR C/C++ compiler, assembler, linker and debugger comply with ARM EABI 2.0 - the Embedded Application Binary Interface for ARM - based on ELF/DWARF 3.0. The advantage of AEABI compliance is that any such module can be linked with any other AEABI compliant module, even modules provided by other vendors. This will for example allow modules created by GNU, ARM RealView and IAR Embedded Workbench for ARM to be linked together. For more information, see http://www.arm.com/products/DevTools/ABI.html.

  • ETB
    The debugger can now display trace data from the ETB (Embedded Trace Buffer) available on some ARM devices. This is supported when the J-Link probe is used.

  • Data breakpoints
    Data breakpoints is now supported on real hardware. The data breakpoint feature is supported by the J-Link, RDI, Macraigor, and Luminary FTDI debugger drivers.

  • GDB server connectivity
    A debugger driver for connection to GDB server is included. It is intended for use with the ST STR9-comStick development kit. All other uses are considered experimental.

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (C and assembler) and during debugging. Additional files in this release are provided for:
    • Freescale MCIMX27, MCIMX31
    • Luminary LM3S317, LM3S617, LM3S618, LM3S817, LM3S818, LM3S2110, LM3S2139, LM3S2410, LM3S2412, LM3S2432, LM3S2533, LM3S2620, LM3S2637, LM3S2651, LM3S2730, LM3S2739, LM3S2939, LM3S2948, LM3S2950, LM3S2965, LM3S6100, LM3S6110, LM3S6420, LM3S6422, LM3S6432, LM3S6610, LM3S6633, LM3S6637, LM3S6730, LM3S6938, LM3S6952, LM3S6965
    • NXP LPC2109
    • NXP SJA2020
    • ST STM32F101, STM32F103, STR751, STR752, STR755, STR910FA, STR911FA, STR912FA
    • Winbond W90P710

V4.41A 2006-12-08

Program corrections

  • The ST STR71x flash loader will fill gaps in the code with ones instead of skipping over them.
    [EW18036]

  • Fast GPIO definitions, for example FIODIR, were missing in iolpc2148.h and iolpc2101.h.
    [EW18315]

  • Adding a trailing semicolon to the File types list box in the Find in Files dialog box, no longer causes the Embedded Workbench IDE to exit unexpectedly.
    [EW18357]

  • Incorrect definitions for ENET_MAH, ENET_MAL, ENET_MAH_BUF and ENET_MAL_BUF in iostr912.h have been corrected.
    [EW18397]

  • The flash loader for Analog Devices ADuC702x did not work for the latest revision of the device.
    [EW18412]

  • The Make command will no longer always rebuild the whole project if the application output file is located outside the project directory.
    [EW18441]

  • Interrupt simulation was always incorrectly enabled after reload of a project.
    [EW18480]

  • There was a problem in all NXP LPC2xxx flash loaders. Writing code with gaps to the flash memory could earlier fail if the gap spanned more than 512 bytes into a sector, in that case the sector failed to be erased.
    [EW18546]

  • The definition of the SCS register for NXP LPC23xx has been corrected.
    [EW18599]

  • Incorrect core setting for TI OMAP5910 and Atmel AT91SAM9260.
    [EW18602]

  • The code for the FIQ handler has been corrected in NXP LPC213x\IAR-P213x\app\demo.c.
    [EW18618]

  • The watchdog was not disabled in the ARM\examples\Philips\LPC3180\Phytec\Gettingstarted\main.c file. This caused the watchdog to time out and jump to an unknown address.
    [EW18619]

New features
  • IAR PowerPac for ARM
    IAR PowerPac for ARM is an integrated middleware family that combines a small memory footprint RTOS and a versatile file system. The bundled evaluation version of PowerPac supports three tasks for the RTOS and one open file in the file system.

  • Live watch on target hardware
    The debugger supports ARM DCC (ARM Debug Communication Channel) to display live watch of global/static variables, memory, and peripherals.

  • Code coverage using J-trace
    The execution data captured with J-Trace can be presented in a code coverage view.

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (C and assembler) and during debugging. Additional files in this release are provided for:
    • Atmel AT91SAM7X512, AT91SAM7XC512, AT91SAM9260, AT91SAM9263
    • Freescale MC9328MX31
    • Hilscher netX50, netX100, netX500
    • Luminary LM3S328, LM3S601, LM3S610, LM3S611, LM3S612, LM3S613, LM3S615, LM3S628, LM3S801, LM3S811, LM3S812, LM3S815, LM3S828
    • NXP LPC2364, LPC2366, LPC2368, LPC2378, LPC2458, LPC2468, LPC2880, LPC2888, LPC3180
    • Samsung S3C2510A
    • ST STR750
    • Winbond W90P710, W90N740, W90N745.

  • New Find commands
    Two new search commands have been added, Find Next (Selected) and Find Previous (Selected). If there is a non-empty selection, that text is immediately searched for. Otherwise, if the insertion point is placed in a word, that word is searched for.

  • New source browser filter
    A new filter, Non-member functions & variables has been added to the source browser context menu. This filter will limit the display to functions and variables that are not members of a class.

V4.40A 2006-05-18

Program corrections

  • None.

New features
  • Cortex M3
    Support for code generation and debugging for ARM Cortex M3 cores. Debugging on Cortex M3 hardware is supported using the J-Link probe or the Luminary FTDI solution.

  • Macraigor usb2Demon and usb2Sprite
    The Macraigor usb2Demon and usb2Sprite JTAG probes are supported.

  • µC/OS-II RTOS plugin
    The Micriµm µC/OS-II kernel awareness plugin is now included in the product.

  • Memory save/restore
    Transfers memory contents from/to file in intel-hex or motorola format.

  • Full control over hardware and software breakpoint selection
    The type of individual breakpoints and the default breakpoint type can now be controlled. Available breakpoint types are auto, hardware and software.
    The type of a specific breakpoint is displayed in a tool tip.

  • Statics watch window
    Displays global and static variables, including function and class statics.

  • Symbolic memory window
    Displays memory content annotated with global symbols.

  • Stack check window.
    The stack check window has been enhanced with more configuration capatibilities.
    The selected options are now stored at the project level instead of at Embedded Workbench level.

V4.31A 2006-02-03

Program corrections

  • The addresses of the PEDR and PEDDR registers were incorrect in ioep73xx.h.
    [EW17024]

  • The vector area size for the Freescale MAC7100 example was incorrect.
    [EW17149]

  • There was an error in the definition of the RCPC HCLK Prescaler register in iolh75401.h and iolh75400.h.
    [EW17183]

  • The Philips flash loader did not disable the PLL prior to programming flash. This could cause data errors due to a too high (PLL) system clock.
    [EW17242]

  • The T0CTCR and T1CTCR registers were missing in iolpc2130.h, iolpc2131.h, iolpc2132.h, iolpc2134.h, iolpc2136.h, iolpc2138.h, iolpc2142.h and iolpc2148.h.
    [EW17243]

  • The file declaring intrinsic functions was incorrectly named intrinsic.h, the correct name is intrinsics.h.
    [EW17253]

  • Pressing the Toggle Source button in the Trace window could under certain circumstances crash the debugger.
    [EW17256]

  • Incorrect address definition for the BCON registers in iostr710.h and iostr710.ddf.
    [EW17378]

  • Definition of the register DYNMRCON has been added to iolh79524.h and iolh79525.h.
    [EW17493]

  • The flash loader for STR71x devices, FlashSTR71xF.d79, did not program bank 1 correctly.
    [EW17494]

  • A linker output file with a .s file name extension could cause the IDE to hang during build.
    [EW17509]

  • "First Record" appeared as tooltip for variables in the debugger editor windows until an explicit focus was made on the editor window.
    [EW17564]

  • The LPC2148 LCD example failed to service more than one UART interrupt.
    [EW17632,EW17652]

  • Changed the definition of REV to _REV in iomac7100.h and iomac7200.h to avoid name conflicts in the assembler.
    [EW17767]

New features
  • J-Trace support
    J-Trace is an advanced trace probe that can capture trace data from ARM devices with ETM (Embedded Trace Macrocell) support. J-Trace is fully supported by the C-SPY debugger.

  • J-Link JTAG probe download speed
    J-Link and J-Trace now achieves download speeds of up to 580 Kbyte/sec for ARM7 and 370 Kbyte/sec for ARM9.
    J-Link and J-Trace also supports adaptive clocking using the RTCK JTAG signal.

  • Multi-core debugging
    The C-SPY debugger and J-Link supports debugging of multiple ARM cores with multiple instances of the IAR Embedded Workbench IDE. There can be multiple cores on the same JTAG scan chain, multiple J-Links on the same host computer, or a combination of the two.

  • Stack window
    To monitor the memory consumption and integrity of the stack, a new Stack window has been added. It shows the stack contents as raw data, C/C++ variables, and function frames. It also shows current and maximum stack consumption graphically. Warnings can be issued when the stack exceeds a certain level or if the stack pointer points outside the stack memory.

  • New breakpoint category - Log breakpoint
    Log breakpoints make it easy to log messages whenever execution passes a certain code location without having to add any code to the target application. When a log breakpoint is triggered, it writes to the Debug Log window and then the application continues execution.

  • New way to toggle breakpoints
    You can now set or clear a breakpoint by double-clicking in the left margin of the editor window; the breakpoint location is marked by a red X. If there is more than one possible breakpoint location in the source line, the breakpoint is placed on the first location.

  • ADS and RealView migration guides
    Migration guides to help you migrate from the ARM ADS and RealView tools to IAR Embedded Workbench for ARM.

  • embOS C-SPY plugin
    A C-SPY debugger plugin for the embOS realtime operating system from Segger Microcontroller Systems is included in this release. The plugin provides embOS awareness during debugging sessions and enables you to inspect the state of several embOS primitives such as the task list, resource semaphores, mailboxes, or timers. For more information, see embOS plugin for IAR Embedded Workbench.

  • Compatible with the SMX RTOS from Micro Digital
    The IAR Embedded Workbench for ARM now supports the SMX RTOS, and a plugin for the IAR C-SPY Debugger is available from Micro Digital. Please visit Micro Digital at http://www.smxrtos.com for details about SMX RTOS and their IAR C-SPY Debugger plugin.

  • Compatible with the NORTi RTOS from MISPO
    The IAR Embedded Workbench for ARM now supports the NORTi, and a plugin for the IAR C-SPY Debugger is available from MISPO. Please visit MISPO at http://www.mispo.co.jp for details about NORTi and their IAR C-SPY Debugger plugin.

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (C and assembler) and during debugging. New additions in this release are:
    • Analog Devices ADuC7019, ADuC7030, ADuC7031, ADuC7032, ADuC7033, ADuC7128, ADuC7129, ADuC7229
    • Atmel AT91SAM7A1, AT91SAM7A2, AT91SAM7S321, AT91SAM7X128, AT91SAM7XC128, AT91SAM7X256, AT91SAM7XC256, AT91SAM9261, AT91FR40162S, AT91C140
    • Freescale MAC7116
    • Freescale MC9328MX21, MC9328MXL, MC9328MXS
    • NetSilicon NS9360
    • OKI ML696201, ML69Q6203, ML696500, ML69Q6501
    • Philips LPC2101, LPC2102, LPC2103, LPC2141, LPC2144, LPC2146, LPC2210, LPC2220, LPC3100
    • ST STR730, STR911, STR912, SpearNet
    • Texas Instruments TMS470R1A64, TMS470R1A288, TMS470R1B1M

  • It is now possible to specify the segment alignment and the initial start value for the CRC checksum calculation. These settings are available on the Processing page under Project>Options>Linker.
  • A block selected in the editor can be commented/uncommented by single commands.
  • The editor now indicates an appropriate line width for printing, either based on a user-configurable fixed number of characters or on the current printer page width.

  • Workspace and project files are now optionally saved before a project is built.
  • Improved Find, Find and Replace, and Incremental Search dialog boxes.
  • Custom file types are now available in the Find in Files dialog box.
  • A parameter to filter build messages has been added to the command-line build utility iarbuild.
  • To make pre- and post-build actions easier, browse buttons have been added.

V4.30A 2005-06-23

Program corrections

  • Removed ; at end of macro definitions in io_macros.h. ; are already present at end of register definitions in chip header files. This resulted in many unnecessary remarks about double semicolons, if remarks were enabled.
    [EW16428]

  • If a project was placed in the Embedded Workbench installation directory, Find in Files regarded the project's files as system include files. This meant that when the option "Project files and user include files" (i.e. no system include files) was selected, no files were searched through.
    [EW16441]

  • The Memory window now displays "--" for each individual memory unit that cannot be read-accessed, as opposed to the whole row.
    [EW16446]

  • The MAM registers were missing and the GPIO and SPI0 registers had the wrong names in the header files iolpc2131.h, iolpc2132.h and iolpc2138.h.
    [EW16459,EW16463]

  • Some interrupt vector numbers were missing in the header files iolpc2119.h, iolpc2129.h, iolpc2194.h, iolpc2292.h and iolpc2294.h.
    [EW16460]

  • Errors and missing fields in the header files ioat91sam7s32.ddf and ioat91sam7s64.ddf.
    [EW16504,EW16583,EW16693]

  • In debugger windows, bitfields are now shown with the correct value, instead of the value of the whole encompassing integer.
    [EW16524]

  • If you selected a cursive font like "Monotype Corsiva", all fonts selected thereafter also became cursive.
    [EW16604]

  • AT91SAM7 flash programming could give a verification error even when the flash memory was correctly programmed.
    [EW16610]

  • Variable names in SAM7 macro files could easily conflict with global variables in the application, causing confusion when displaying such variables in the debugger watch window.
    [EW16643]

  • A problem with source code control operations on Embedded Workbench projects connected to Microsoft Visual SourceSafe has been corrected. Now all operations can be performed on the projects.
    [EW16644]

  • Loading of large projects, or specifically projects with large dependency files (.dep), has been speeded up considerably.
    [EW16731]

  • The XTI_CTRL and XTI_SR registers had incorrect address definitions in the header files iostr710.h, iostr711.h, and iostr712.h.
    [EW16746]

  • The bitfields urxint1, utxint1, urxint2 and utxint2 were incorrectly defined in the header file ioep73xx.h.
    [EW16794]

  • Bit names have been added to the definition of PINSEL2 in the header files iolpc2212.h and iolpc2214.h.
    [EW16884]

  • The bit EN_HALT has been added to the definition of the RCCU_CCR register in the header files iostr710.h, iostr711.h, and iostr712.h.
    [EW16912]

  • Creating a new project gave the warning:
    Chip config file $TOOLKIT_DIR$\config\chip\ not found.
    [EW16922]

New features
  • ARM11
    Support for code generation and debugging for ARM11 cores. With this new addition, EWARM supports the ARM families ARM7, ARM9, ARM9E, ARM10 and ARM11 (ARM instruction set v4, v5 and v6). The Intel XScale architecture (excluding co-processors) is also supported.

  • Speed optimizations
    The compiler speed optimizations have been improved. In addition, the floating point library have been rewritten and is about twice as fast as the previous version.

  • Multi-file compilation
    Several source files can be combined and compiled at the same time by the compiler. This allows the optimizer to operate on a larger set of code and can result in smaller code.

  • OSEK Run Time Interface (ORTI) support
    The ORTI Interface specifies a way to inform the debugger about all the internals of an OSEK OS. Based on this interface, C-SPY now provides sophisticated debug awareness for any ORTI-compliant OS.

  • OSE Epsilon RTOS plugin
    The OSE Epsilon Kernel Awareness plugin is delivered and installed as a part of the IAR Embedded Workbench® IDE.

  • Multiple flash loaders
    Multiple flash loaders can be configured to support systems with more than one flash memory.

  • Generic flash loader
    The generic flash loader mechanism was introduced in version 4.10.
    The document IAR Embedded Workbench flash loader developer guide describes the flash loader functionality, the API and how to develop a flash loader. The source code for supported flash loaders can be found in the ...\arm\src\flashloader directory.

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (C and assembler header files) and during debugging. New additions in this release are:
    • Atmel AT91SAM7S128, AT91SAM7S256, AT91SAM7A3, AT91RM3400
    • Cirrus EP9302, EP9307
    • Freescale MAC7106, MAC7126, MAC7136, MAC7202, MAC7212, MAC7222, MAC7242, MAC7252
    • NetSilicon NS9360
    • OKI ML67Q4050, ML67Q4051, ML67Q4060, ML67Q4061
    • Philips LPC2131, LPC2134, LPC2136, LPC2142, LPC2148
    • Samsung S3C2410, S3C2440A, S3C2440X, S3F445HX
    • ST STR715, STR730
    • Texas Instruments TMS470R1A1M

  • Editor features
    • Code templates in the editor allow for quick insertion of commonly used code constructs. You can add your own customized code templates.
    • Include files can be conveniently accessed via a context menu.
    • Automatic parenthesis matching.
  • Trace
    New trace handling. In addition to hardware trace, the new trace mechanism is also available in the simulator.

  • J-Link TCP/IP server
    The debugger can connect remotely to a J-Link JTAG interface on another PC running the J-Link TCP/IP server.

  • By using the Show As command, available from the context menu in watch-type windows, you can select a different type interpretation of a variable than the one used by default. This command can be used on any variable, but typically, it is useful for assembler labels as they by default are treated as variables of type int.
  • The Memory window now displays "--" for each individual memory unit that cannot be read-accessed, as opposed to the whole row.
  • It is now possible to launch the interactive debugger with a given debug file, and pass command line parameters.

V4.20A 2005-01-10

Program corrections

  • Adding multiple source files with the same name would cause valid but annoying repeating error messages in the Build log window. This has been corrected and now the error message doesn't appear until an actual build operation is performed (and it only appears once).
    [EW15483]

  • The option to choose project files has been put back in the Find in Files dialog box. The dialog box has also been redesigned.
    [EW15634]

  • Errors in custom build settings could cause annoying repeating error messages in the Build log window. Also, certain custom build errors could cause some problems with subsequent builds even after being corrected.
    [EW15638 (EW15636)]

  • The SSI2 and UART3 registers were missing in the file iomc9328mx1.h.
    [EW15658,EW15677]

  • Incorrect bit definitions were used for the ICR registers of the GPIO module in the file iomc9328mx1.h.
    [EW15662]

  • DMA channel registers were numbered 1-11 instead of 0-10 in the file iomc9328mx1.h.
    [EW15572]

  • An icon in the workspace window looked confusingly like a check box. It has been replaced by a less ambiguous icon.
    [EW15688]

  • The option dialog box allowed settings that are incompatible with the chosen chip (.i79) file.
    [EW15724]

  • The file low_level_init.s79 could not be assembled.
    [EW15809]

  • The GPIO2 and GPIO3 registers were missing in the files iolpc2212.h and iolpc2214.h.
    [EW15999, EW16189]

  • The Philips flash loaders have changed names to FlashPhilipsLPC128k.d79 for 128 Kbytes devices and FlashPhilipsLPC256k.d79 for 256 Kbytes devices. LPC2212 now uses the 128 Kbytes variant and LPC2124 uses the 256 Kbytes flash loader.
    [EW16057]

  • The derivative support files iolpc2294.h and iolpc2292.h were missing definitions for the registers IO2PIN, IO2SET, IO2DIR, IO2CLR, IO3PIN, IO3SET, IO3DIR and IO3CLR.
    [EW16141]

  • A few register definitions in the PIO modules were missing in ioat91rm9200.h and ioat91rm9200.ddf.
    [EW16163]

  • Some interrupt sources were incorrect, and some were missing in the files iolpc2114.h, iolpc2124.h, iolpc2212.h and iolpc2214.h.
    [EW16190]

New features
  • Integration with source code control systems
    IAR Embedded Workbench can identify and access any third-party source code control system that conforms to the SCC interface published by Microsoft.
  • MISRA C support
    The Motor Industry Software Reliability Association (MISRA) has developed a set of guidelines for C programming of safety-related embedded automotive systems. IAR Embedded Workbench now supports automatic checking of most of these rules. For more information, see the IAR Embedded Workbench MISRA C Reference Guide.
  • Multiple and virtual inheritance
    Support for C++ multiple inheritance and virtual inheritance.
  • Source browser
    The source browser has been improved. New features include filtering and sorting of symbols.
  • Linking of raw binary images
    The linker can link raw binary images directly. This is useful for linking large binary data like multimedia files.
  • Compiler optimizations
    Improved optimizations will give faster target code execution and smaller code size.

  • Improved context-sensitive help
    Context-sensitive compiler reference information is now available in the online help system, for example on intrinsic functions and extended keywords.

  • Generic flash loader
    The generic flash loader mechanism was introduced in version 4.10.
    The document IAR Embedded Workbench flash loader developer guide describes the flash loader functionality, the API and how to develop a flash loader. The source code for supported flash loaders can be found in the ...\arm\src\flashloader directory.

  • Flash loaders
    Flash loaders for the following devices are included in the installation
    • Analog Devices ADuC7020, ADuC7021, ADuC7022, ADuC7024, ADuC7025, ADuC7026, ADuC7027
    • Atmel AT91SAM7S32, AT91SAM7S64
    • Freescale MAC7101, MAC7111, MAC7112, MAC7121, MAC7122, MAC7131, MAC7141, MAC7142
    • Philips LPC2104, LPC2105, LPC2106, LPC2114, LPC2124, LPC2212, LPC2214, LPC2119, LPC2129, LPC2194, LPC2292, LPC2294
    • ST STR710, STR711, STR712
    • Texas Instruments TMS470R1A128, TMS470R1A256, TMS470R1A384

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (C and assembler header files) and during debugging. New additions in this release are:
    • Atmel AT91SAM7S32, AT91SAM7S64
    • Philips LPC2132, LPC2138
    • ST STR710, STR711, STR712, STR720
    • Texas Instruments TMS470R1A128, TMS470R1A256, TMS470R1A384

  • Example projects
    Example projects for various evaluation boards, including evaluation boards from IAR Systems, Analog Devices, Aiji Systems, ARM, Atmel, Cirrus Logic, Freescale, Keil, OKI, Olimex, Pasat, Philips, Phytec, ST and Texas Instruments, are included in the installation, see the ...\arm\examples directory.

  • Find in files
    The find in files search mechanism has been improved. Various search scopes can be specified like project files, directory and file groups.
  • Drag and drop to project manager
    Drag and drop of files to the project manager, and project files to the workspace.
  • Auto indent
    The editor can auto indent according to C syntax.
  • Pre and post build
    Pre and post build commands can be configured.
  • File viewers
    Files in a project can now be opened with another application than the built-in editor. Choose Tools>Configure Viewers and configure which application to use with a certain filename extension.
  • File properties
    You can now right-click a file in the Workspace window to display the file properties.
  • File status
    File name and line number are now displayed in the Build log window.
  • Compiling a selection of source files
    The Compile command can now be applied to a selection of source files.
  • Editing in the Memory window
    Editing memory in the Memory window now applies to a whole unit (8/16/32). When you start typing, an edit box appears with the contents of the part of the memory you are about to modify. The data is not written until the box is closed.
  • Editor removal of trailing blanks
    The editor now removes trailing blanks when text files are saved. To turn off this feature choose Tools>Options and click the Editor tab and select Remove trailing blanks.

V4.11A 2004-06-10

Program corrections

  • The context help did not work for the debugger option dialogs associated with JTAG and ROM monitors.
    [EW15001]

  • Converting a project file (.pew) created with the old project manager (3.30 and older) could crash the IDE.
    The conversion actually succeeded and completed before the IDE crashed. The workaround was to restart the Embedded Workbench and add the new project file (.ewp) to the workspace.
    Note that the new project file (.ewp) was created just before the crash of the IDE when converting the old project (.pew).
    [EW15027]

  • Pressing F1 in the C-SPY Live Watch window displayed help for the Watch window.
    [EW15100]

  • The flash loader API documentation was missing from the product installation.
    [EW15397]

  • The GPIO address in iolh75401.h had the wrong value.
    [EW15399]

  • The obsolete segment HUGE_Z was used in swi_handler.s79 instead of DATA_Z.
    [EW15415]

  • The file arm\src\sim\stack.xcl contained obsolete segment names.
    [EW15416]

New features
  • Compiler optimizations
    Improved speed optimizations will give faster target code execution.

  • More C99 features
    The following C99 features can now be used in the C language if language extensions (-e) are enabled:
    • The inline keyword. It works as the C++ inline keyword (and the #pragma inline declaration).
    • Mixing declarations and statements within the same scope.
    • Having a declaration in the initialization expression of a for-loop.

  • CMX Tiny+ RTOS plugin
    A CMX Tiny+ RTOS plugin for the IAR C-SPY Debugger is now included in the product. When used together with the CMX Tiny+ RTOS, which is available separately from CMX Systems, the plugin facilitates powerful RTOS-aware debugging. Visit the http://www.cmx.com web site for details about CMX Tiny+.

  • Macraigor USBdemon
    The Macraigor USBdemon JTAG interface is supported.

  • Generic flash loader
    The generic flash loader mechanism was introduced in version 4.10. The API has been improved in 4.11 to facilitate the development of custom flash loaders.
    The document IAR Embedded Workbench flash loader developer guide describes the flash loader functionallity, the API and how to develop a flash loader. The source code for supported flash loaders can be found in the ...\arm\src\flashloader directory.

  • Flash loaders
    Flash loaders for the following devices are included in the installation
    • Analog Devices ADuC7020, ADuC7021, ADuC7022, ADuC7024, ADuC7025, ADuC7026, ADuC7027
    • Philips LPC2104, LPC2105, LPC2106, LPC2114, LPC2124, LPC2212, LPC2214, LPC2119, LPC2129, LPC2194, LPC2292, LPC2294

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (C/assembler header files) and during debugging. New additions in this release are
    • Analog Devices ADuC7020, ADuC7021, ADuC7022, ADuC7024, ADuC7025, ADuC7026, ADuC7027
    • Atmel AT91SAM7S64
    • Cirrus EP9301, EP9315
    • Motorola MAC7100, MAC7101, MAC7111, MAC7112, MAC7121, MAC7122, MAC7131, MAC7141, MAC7142
    • Philips LPC2130

  • USB dongles
    The license management system now supports USB dongles. Parallel port dongles will continue to be supported.

  • NDEBUG
    The project manager by default defines the symbol NDEBUG for release projects.
  • Log of build output
    The build messages generated when a project is built can be logged to a file.

V4.10B 2004-03-09

Program corrections

  • Small windows close to the screen end could become inaccessible when moving a project to a computer with lower screen resolution.
    [EW13210]

  • The default linker control file produced by the command file configuration tool generated a link error.
    [EW14942]

  • The selection of the default flash loader did not work. Even if the path was correct it would fail.
    [EW14999]

  • The source browser could in some situations fail, the failing mode could vary. The Workbench could hang, consume too much CPU power or use large amounts of memory.
    [EW15000]

New features
  • Compiler optimizations
    Improved optimizations will give up to 10% smaller code in both ARM and Thumb mode.

  • Easier window management
    Dockable windows make it easier to organize windows. Windows can be organized in tab groups.

  • Source browser
    Builds a catalog of functions, variables, macros, classes and member functions. The source browser allows quick navigation to definitions and declarations.

  • Improved context sensitive help
    In addition to standard context help functions, it is now possible to click on keywords and library functions in the editor and quickly get to the help page.

  • Generic flash downloader framework
    Flash loaders can be loaded by the IAR C-SPY Debugger to handle code download to flash memory. A set of flash loaders for various chips is provided with the EWARM distribution. Due to the vast amount of flash solutions in the ARM marketplace it is likely that more flash loaders will be provided by chip manufacturers, third party vendors and end users. Flash loader API, documentation and an example loader in source form is provided to make it easy for developers to implement flash algorithms.

  • IAR/Segger J-Link JTAG interface
    The IAR/Segger J-Link JTAG interface is supported by the debugger.

  • ETM trace
    The IAR C-SPY Debugger now supports the ARM ETM (Embedded Trace Macrocell) trace when using the EPI Majic JTAG interface.

  • Compatible with the RTXC Quadros from Quadros Systems
    The IAR Embedded Workbench for ARM now fully supports the RTXC Quadros, and a plugin for the IAR C-SPY Debugger is available from Quadros Systems. Please visit Quadros Systems at http://www.quadros.com for details about RTXC Quadros and their IAR C-SPY Debugger plugin.

  • Optimized handling of large applications
    Large applications which are larger than 4 MB in Thumb mode and larger than 32 MB in ARM mode, need relay functions to branch/call functions outside that area. The linker will automatically use the optimal way of branching. Because of this, there is no need for the small/large code models used in previous versions.

  • VFP floating-point support
    The ARM VFP floating-point coprocessors are supported. The whole tool chain is VFP aware; the compiler, assembler, and debugger.

  • Coprocessor intrinsic functions
    New intrinsic functions make it possible to access ARM coprocessors from C/C++ without having to revert to assembler or inline assembler.

  • Easy configuration of the C/C++ libraries
    The C/C++ libraries come in two variants, normal and full. Each variant can be further customized to reach an optimum balance between functionality and size. To allow even more detailed tuning of the libraries, the library configuration and individual source files can be modified. A template project is available to make it easy to rebuild the whole C/C++ library.

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (header files) and during debugging. New additions in this release are Atmel AT91RM9200, Intel XScale PXA255, OKI ML674000, ML674001, ML67Q4002, ML67Q4003, ML675001, ML67Q5002, ML67Q5003, Motorola Dragonball MC9328MX1, Philips LPC2114, LPC2124, LPC2212, LPC2214, LPC2119, LPC2129, LPC2194, LPC2292, LPC2294, Sharp LH7A400, LH7A404, LH75400, LH75401, LH75410 and LH75411.

  • New example projects
    Example projects for various evaluation boards, including boards from IAR Systems, Aiji Systems, ARM, Atmel, Cirrus Logic, OKI, and Philips, are included in the installation, see the ...\arm\examples directory.

  • Nested interrupts
    A new compiler keyword, __nested, will generate interrupt function code that allows nested interrupts.

  • Smart display of STL containers during debugging
    Allows objects in STL containers to be viewed and manipulated.

  • New auto-display debugger window
    Displays currently active variables and objects.

  • Startup screen
    The workbench optionally displays a startup screen where projects can be opened and created. New projects can be based on templates to get started quickly.

  • Template projects
    When creating a project, you can base it on a project template. Project templates can be C, C++, assembler or library projects. Template projects can also be used to prefabricate project configurations that can be used in development groups.

  • Improved debugger plugin management
    Gives an overview of available plugins and the possibility to enable/disable individual plugins.

V4.10A 2004-02-21

  • Executing a "Memory Fill" command for very large chunks of memory could take a long time and occasionally lead to debugger crashes.
    [EW14252]

  • Mixing Embedded Workbench products based on different generations of internal platforms could cause the wrong Workbench IDE to be opened when double clicking on old project files (.pew). EWARM version 4.x is installed in a separate directory, thereby solving this problem.
    [EW14254]

  • The Embedded Workbench can now be closed and the workspace can be changed even when the debugger is running.
    [EW14375]

  • Opening a workspace in the EWARM-LE limited edition opened an error dialog box with the message
    Failed to locate the Debugger package "DebuggerGui.dll"
    No debugger will be present
    [EW14512]

V3.40C 2003-12-15

  • The linker file configurator did not start.
    [EW14240,EW14242]

V3.40A 2003-07-03

Program corrections

  • Extra command line options did not allow space.
    [EW12324]

New features
  • New Embedded Workbench project manager
    In the new project manager the workspace concept is introduced. It gives you the possibility to collect all your related projects in the same workspace.
    The new project manager also gives easy access to compiler and assembler list files.

  • Express Logic ThreadX RTOS plugin
    A ThreadX RTOS plugin for the IAR C-SPY debugger is now included in the product. When used together with the ThreadX RTOS, which is available separately from Express Logic Systems, the plugin facilitates powerful RTOS-aware debugging. Please visit http://www.expresslogic.com for details about ThreadX.

  • VFP floating point support
    The ARM VFP floating point coprocessors are now supported. The whole tool chain is VFP aware; the compiler, assembler, and debugger.

  • Macraigor mpDemon JTAG interface
    The Macraigor mpDemon JTAG interface is supported. All possible connections (Ethernet, parallel, and serial) are supported.

  • Macraigor on ARM9
    The Macraigor C-SPY debugger driver now supports ARM9 cores.

  • Support for EPI's Jeeni over ethernet
    The IAR C-SPY debugger now supports connection to the Jeeni JTAG emulator from EPI over Ethernet in addition to the serial port connection.

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (header files) and during debugging. New additions in this release are Cirrus EP9312, Philips LPC210x, OKI ML674001, ML67Q4002 and ML67Q4003.

  • New example projects
    Example projects for various evaluation boards, including boards from Aiji Systems, ARM, Atmel, Cirrus Logic, OKI, and Philips, are included in the installation, see the ...\arm\examples directory.

V3.30A 2003-02-18

  • CMX-RTX RTOS plugin
    A CMX-RTX RTOS plugin for the IAR C-SPY debugger is now included in the product. When used together with the CMX-RTX RTOS, which is available separately from CMX Systems, the plugin facilitates powerful RTOS-aware debugging. Please visit http://www.cmx.com for details about CMX-RTX.

  • Compatible with the uC/OS-II RTOS
    The IAR Embedded Workbench for ARM now fully supports the uC/OS-II RTOS, and a plugin for the IAR C-SPY debugger is available from Micriµm. Please visit Micriµm at http://www.micrium.com for details about uC/OS-II and their IAR C-SPY debugger plugin.

  • Extended EC++ support
    Support for EC++ has been extended with templates and STL. Now it is possible to use advanced C++ features such as templates, namespaces, mutable, static cast, reinterpret cast, and const cast.

  • Support for Angel
    The IAR C-SPY debugger now supports the Angel ROM-monitor protocol, which is very popular on evaluation boards. Now you can connect directly to those boards by simply connecting a serial cable between your PC and the evaluation board.

  • Support for EPI's Jeeni
    The IAR C-SPY debugger now supports the Jeeni JTAG emulator from EPI. Now you can create your application in the IAR Embedded Workbench, download it using Jeeni, and use the debug features of C-SPY.

  • I/O register definition files
    I/O register definition files for symbolic access to registers are used both when programming (header files) and during debugging. New additions in this release are Intel XScale IOP321, PXA210, and PXA250, Cirrus EP73xx.h, and Samsung S3C4530A. It has also been verified that the Atmel chips AT91F40816, AT91FR40162, AT91FR4042, and AT91FR4081 are supported through existing definition files.

  • Multibyte character support in compiler
    The compiler now supports multibyte characters, which makes it possible to write strings and comments in Asian languages.

  • Linker setup editor
    A user friendly graphical tool which generates the linker configuration file (.xcl) is now integrated into the IAR Embedded Workbench for ARM.

  • File I/O debugger support
    Support for file I/O now allows the target application to access the host PC file system.

  • Simulator trace module
    A new trace module now allows tracing of applications which are executing in the IAR C-SPY simulator.

  • Example Projects
    Example projects for various evaluation boards, including boards from Aiji Systems, ARM, Atmel, Cirrus Logic, and OKI, are included in the installation.

V3.21A 2002-09-27

  • The wrong library was selected when generating code for XScale.
    [EW12344]

V3.20A 2001-12-04

Program corrections

  • The XLINK option '-ysa' could not be specified.
    [EW11518]

New features
  • ARM instruction set version 5TE is supported in addition to version 4T.

  • The ARM families ARM7, ARM9, ARM9E and ARM10 are supported.
    The Intel XScale architecture (excluding co-processors) is supported.
  • IAR Launcher is an application that searches your computer for installed IAR applications and then displays them in a convenient menu for quick access. IAR Launcher resides in your system tray as an icon until you activate it by clicking on it. Please see the separate readme file in the Start menu for more information.
  • Example projects for a few evaluation boards are available in the directory ...\ARM\src.

V3.11A 2001-12-04

  • Source files with the .cpp or .cc extension are now treated as source files.

V3.10A 2001-10-04

  • This version of the IAR Embedded Workbench introduces C-SPY 3.2, a new debugger generation. Some of the principal features are:
    • Tight integration with the IAR Embedded Workbench IDE
    • Support for real stack backtrace
    • Support for RTOS-aware debugging
    • A modular and extensible architecture
  • This product is supported on Windows 98, NT, ME, 2000 and XP.
  • IAR UML State Chart Design and Simulation Tool is a collection of software tools for designing and simulating real-time applications. This tool is installed separately from the product CD.
  • Support for Embedded C++.
  • Support for the ARM9TDMI core.
  • Support for the big-endian byte order.