11.07.2015 Views

PicC 9.50 dsPIC Manual.pdf

PicC 9.50 dsPIC Manual.pdf

PicC 9.50 dsPIC Manual.pdf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Error and Warning Messages(474) no psect specified for function variable/argument allocation (Linker)The FNCONF assembler directive which specifies to the linker information regarding the auto/parameterblock was never seen. This is supplied in the standard runtime files if necessary. This error may implythat the correct run-time startoff module was not linked. Ensure you have used the FNCONFdirective if the runtime startup module is hand-written.(475) conflicting FNCONF records (Linker)The linker has seen two conflicting FNCONF directives. This directive should only be specified onceand is included in the standard runtime startup code which is normally linked into every program.(476) fixup overflow referencing * * (loc 0x* (0x*+*), size *, value 0x*) (Linker)The linker was asked to relocate (fixup) an item that would not fit back into the space after relocation.See the following error message (477) for more information..(477) fixup overflow in expression (loc 0x* (0x*+*), size *, value 0x*) (Linker)Fixup is the process conducted by the linker of replacing symbolic references to variables etc, in anassembler instruction with an absolute value. This takes place after positioning the psects (programsections or blocks) into the available memory on the target device. Fixup overflow is when thevalue determined for a symbol is too large to fit within the allocated space within the assemblerinstruction. For example, if an assembler instruction has an 8-bit field to hold an address and thelinker determines that the symbol that has been used to represent this address has the value 0x110,then clearly this value cannot be inserted into the instruction.The causes for this can be many, but hand-written assembler code is always the first suspect.Badly written C code can also generate assembler that ultimately generates fixup overflow errors.Consider the following error message.main.obj: 8: Fixup overflow in expression (loc 0x1FD (0x1FC+1), size 1, value 0x7FC)This indicates that the file causing the problem was main.obj. This would be typically be the outputof compiling main.c or main.as. This tells you the file in which you should be looking. The nextnumber (8 in this example) is the record number in the object file that was causing the problem. Ifyou use the DUMP utility to examine the object file, you can identify the record, however you do notnormally need to do this.The location (loc) of the instruction (0x1FD), the size (in bytes) of the field in the instructionfor the value (1) , and the value which is the actual value the symbol represents, is typically the onlyinformation needed to track down the cause of this error. Note that a size which is not a multiple of287

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!