Keil™, An ARM® Company

Technical Support

L166: ERROR 101 (SECTION COMBINATION ERROR)


Information in this article applies to:

  • C166 Version 3.12
  • C166 Version 4.02

SYMPTOMS

L166 returns Error L101 when linking a project.

CAUSE

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.

RESOLUTION

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

MORE INFORMATION

Last Reviewed: Friday, July 15, 2005


Did this article provide the answer you needed?
 
Yes
No
Not Sure