Code size limitation persist
Technical Note 24687
11/3/2020 4:32 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
There are two possible scenarios.
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".
Correct IAR Embedded Workbench is "in use", but the problem persist.
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. (If you are using the legacy system (in use till 2012-2013), please see further 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 "
- If there is an OK license available in the drop-down list, select this instead.
- If not, you need to get one. (You might have to contact Sales.)
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).
Legacy versions (older than 2012-2013)
With License Management System version 1, different binaries provides different functionality. Thus, the sign-on message shows if it is a Kickstart, Baseline etc. Example: IAR C/C++ Compiler V126.96.36.199500, Base-line Version for Atmel AVR
The sign-on message can be found 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.
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.