L166: ?C_INITSEC and ?C_CLRMEMSEC located at wrong address
Information in this knowledgebase article applies to:
After adding some functions my application does not work any more. The project is compiled and linked without any errors and warnings. This is an excerpt from my Project.M66 file:
START STOP LENGTH TYPE RTYP ALIGN TGR GRP COMB CLASS SECTION NAME ===================================================================================== : : : : : : : : : : : 020000H 020001H 000002H XDATA REL WORD --- --- GLOB --- ?C_INITSEC 020002H 00000BH 00000AH CONST ABS WORD --- --- PRIV --- ?C_CLRMEMSEC
I see that the sections ?C_INITSEC and ?C_CLRMEMSEC are located outside my flash area. I specified the CLASSES NCODE, FCODE, ICODE and all others correctly. Why does ?C_INITSEC and ?C_CLRMEMSEC not get located within my specified flash areas?
The sections ?C_INITSEC and ?C_CLRMEMSEC do not belong to a CLASS. Since version 4, these sections are located with the L166 directive CINITTAB. Obviously this directive is missing in your linker command file or in the µVision dialog 'Options for Target — L166 Misc — Misc Controls'.
When Options for Target — L166 Locate — Use Memory Layout from Target Dialog is selected, µVision creates the CINITTAB directive automatically with the memory ranges you have chosen in Options for Target — Target.
- or -
Last Reviewed: Monday, August 20, 2012
of your data.