ARM Technical Support Knowledge Articles


Applies to: L166 Linker/Locator


Information in this article applies to:


L166 returns Error L101 when linking a project.


This error typically only occurs with assembly modules. In general, you can define a section with a specific name and a specific class in one assembly module. Then you can define the same section with the same name and class in other (assembly-) modules. The linker will combine all sections with the same name to one section. The problem here is, that all sections which have the same name and class information must also have the same attributes (WORD, BYTE, BITADDRESSABLE.....). If this is not the case, the linker prints error 101 with the module name and section name.

The C compiler usually generates sections with section name derived from the module name. Therefore you won't see this problems with C modules. The only exceptions are the CLEARMEMSEC and INITMEMSEC which contain initialization information for variables. They are combined from every module so that the startup code can take all information from only two tables.


Be sure that all of your sections have the same attributes no matter which file they are declared in.


Article last edited on: 2005-07-15 15:30:42

Rate this article

Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential