Code size limitation persist

Technical Note 24687



2/19/2015 1:06 PM


The IAR Embedded Workbench tools gives a message about too much code instead of the expected/desired executable.

Applicable diagnostic messages

Error[Li016]: size limit exceeded
Error[Li016]: size limit exceeded ##### > 12288
Fatal Error[e89]: Too much object code produced (more than x bytes) for this package

Possible causes

There are two possible scenarios.

Scenario A

There is also a "code size limited" license (for example a KickStart) installed on the PC, and this "code size limited" license is "in use".

Scenario B

The correct IAR Embedded Workbench version is "in use", but the problem persist.

Possible solutions

Scenario A

Check that you are indeed using a proper IAR Embedded Workbench variant (that is, without the size-limitation).

This procedure differs depending on the License Management System used. Since most products have made the transition to LMS2, we focus on this case. (If you are using the older system, please see the 'LMS1'  sections below.)

Open the license manager by selecting "License Manager" in the Help menu in the IAR Embedded Workbench IDE.

If you see something like "32K Kickstart" in the "selected license", the license is size limited. Ditto if you see features ending in "_KS" or "_BL" (e.g., ARM_EW_COMPILER_KS). If there is an OK license available in the drop-down list, please select this instead. If not, you need to get one.

Scenario B

Ensure all object code in your project is properly built (that is, without size limitation). Once you have verified you are using a proper edition:

  • Compile / assemble all source code in your project
  • Menu: Project -> Clean
  • Menu: Project -> Rebuild All
  • Also object code without source code (for example 3rd party libraries) must have been built with a proper edition.
  • If IAR Embedded Workbench for ARM is used and the exceeded limit is 12288 bytes, then disable C-RUN (enabled in size-limited mode): 
    Project > Options > Runtime Checking - unmark the 'Enable' checkbox.


Mixing object code from editions of IAR Embedded Workbench with and without size limitation for linked code, the limitation stays in effect (higher priority/precedence).


Scenario A

With LMS1, different binaries provides different functionality. Thus, the sign-on message shows if it is a Kickstart, Baseline etc. Example: IAR C/C++ Compiler V6.12.1.40500, Base-line Version for Atmel AVR

The sign-on message can be seen, for example, in

  • Compiler list file header
  • Build log window in IAR Embedded Workbench
  • Standard out, if running the command line compiler

If there is also a proper edition installed on your PC, please start that instead.

If not, you need to install one.

Scenario B

The actions are the same as above, that is as in Scenario B for LMS2.

All product names are trademarks or registered trademarks of their respective owners.

Related Tech Notes

© IAR Systems 1995-2016 - All rights reserved.