I just ordered the PK51 tool chain.
Installed it and tried to compile some code on an old project.
The files appear to compile, but the linking step is throwing the error shown below.
I searched the project for LIMUL and no occurrence was found.
Is there any process I can use to find the source of this error?
The project is large and I cant publish the code.
Any help would be very much appreciated.
Thanks
.....
compiling ....c...linking...*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C?LIMUL MODULE: main.obj (MAIN)*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: ?C?LIMUL MODULE: main.obj (MAIN) ADDRESS: 100233CHProgram Size: data=104.1 xdata=5121 const=18 code=13610Target not created.Build Time Elapsed: 00:00:02
https://developer.arm.com/documentation/101655/0961/BL51-User-s-Guide/Error-Messages/Error-L127
https://developer.arm.com/documentation/101655/0961/LX51-User-s-Guide/Error-Messages/Error-L128
rkopsch,
Thanks for the link. But we have two machines that need to compile the code.
The older toolchain builds fine. But the new toolchain does not build the code
I also searched the project for files for LIMUL. Cant find it.
Where is this error coming from?
Thanks for your help
BUILD is okay
LX51 LINKER/LOCATER V4.25 02/06/2023 11:04:27 PAGE 1
LX51 LINKER/LOCATER V4.25, INVOKED BY:
C:\KEIL_V5\C51\BIN\LX51.EXE traceIf.obj, commApp.obj, linkLevel.obj, main.obj, regIf.obj, asyncDriver.obj, STARTUP.obj,
>> Coherent.obj, SfrRegs.obj, MotorCtrl.obj, globals.obj, ResolverIntfc.obj, IsOddParity.obj, eeprom.obj, miscLoad.obj,
>> Timer1.obj, HallIntfc.obj, .\C51FPL.LIB, .\C51L.LIB TO Vector_Drive NODEFAULTLIBRARY CLASSES (XDATA (X:0XB000-X:0XBFF
>> F, X:0XF800-X:0XFFFF), HDATA (X:0XB000-X:0XBFFF, X:0XF800-X:0XFFFF), CODE (C:0X0-C:0XAFFF), CONST (C:0X0-C:0XAFFF), E
>> CODE (C:0X0-C:0XAFFF), HCONST (C:0X0-C:0XAFFF))
New toolchain does not build
LX51 LINKER/LOCATER V4.66.97.0 02/06/2023 10:58:55 PAGE 1
LX51 LINKER/LOCATER V4.66.97.0, INVOKED BY:
?C?LIMUL is almost certainly a runtime support function,which is called by compiled code to implement elementary functions that the CPU core cannot do on its own.
My guess would be that it's the implementation of Long Integer MULtiplication. You may have shot yourself in the foot by issuing that "NODEFAULTLIB" option, as it's exactly the default libraries supplied by the compiler that are supposed to contain such functions.