KEIL link failures for all my Cy components after copying code to new laptop with new Creator 2.2 installation

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
mimcc_974931
Level 1
Level 1

Link errors for all Cy components on my project. This project was built with creator 2.2 a long time ago and was good. Copied code to new laptop 2 years later, installed 2.2, opened Ok, did not need to update components. All building steps complete up to linker, where the symbols (every cy component I referenced) are not found. See section below from output.  I made sure the embedded keil is registered and expire date is confirmed in June 2020. At first, I thought Keil would mangle the libraries. The libraries referenced on the linker command link show below are verified to exist and do not seem corrupt.  I found under 'lib' a keil lib called CyCompLib.LIB, and added that to the linker external lib and verified it shows up on the linker line in the output. Still not luck.


What could this be? What should I do to debug this? I do not see the keil LIBx51.exe anywhere, or I would dump the symbols in the libraries to verify they exist in the library. This is the embedded distribution of keil DP8051_Keil_903 for this particular PSOC chip.

Thanks for any hints on how to debug this build issue.

OUTPUT SNIPPIT:

API Generation ...

Dependency Generation ...

Clean Temporary Files ...

c51.exe .\cr_lib.c NOIV LARGE MODDP2 OMF2 VB(1) PR(.\DP8051_Keil_903\Debug\cr_lib.lst) CD DB NOIP "OT(2, Size)" INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\cr_lib.obj)

c51.exe .\lcd_lib.c NOIV LARGE MODDP2 OMF2 VB(1) PR(.\DP8051_Keil_903\Debug\lcd_lib.lst) CD DB NOIP "OT(2, Size)" INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\lcd_lib.obj)

WARNING: .\lcd_lib.c:165: 'name': unreferenced local variable

WARNING: .\lcd_lib.c:80: not every exit path returns a value

WARNING: .\lcd_lib.c:93: not every exit path returns a value

c51.exe .\main.c NOIV LARGE MODDP2 OMF2 VB(1) PR(.\DP8051_Keil_903\Debug\main.lst) CD DB NOIP "OT(2, Size)" INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\main.obj)

WARNING: .\main.c:630: 'i': unreferenced local variable

Ax51.exe .\Generated_Source\PSoC3\CyBootAsmKeil.a51 NOCO MACRO DB PR(.\DP8051_Keil_903\Debug/CyBootAsmKeil.lst) CASE EP INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\CyBootAsmKeil.obj)

Ax51.exe .\Generated_Source\PSoC3\cymem.a51 NOCO MACRO DB PR(.\DP8051_Keil_903\Debug/cymem.lst) CASE EP INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\cymem.obj)

Ax51.exe .\Generated_Source\PSoC3\KeilStart.a51 NOCO MACRO DB PR(.\DP8051_Keil_903\Debug/KeilStart.lst) CASE EP INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\KeilStart.obj)

c51.exe .\Generated_Source\PSoC3\I2C_1_SLAVE.c NOIV LARGE MODDP2 OMF2 VB(1) PR(.\DP8051_Keil_903\Debug\I2C_1_SLAVE.lst) CD DB NOIP "OT(2, Size)" INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\I2C_1_SLAVE.obj)

c51.exe .\Generated_Source\PSoC3\I2C_1_MASTER.c NOIV LARGE MODDP2 OMF2 VB(1) PR(.\DP8051_Keil_903\Debug\I2C_1_MASTER.lst) CD DB NOIP "OT(2, Size)" INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\I2C_1_MASTER.obj)

c51.exe .\Generated_Source\PSoC3\adc_AMux.c NOIV LARGE MODDP2 OMF2 VB(1) PR(.\DP8051_Keil_903\Debug\adc_AMux.lst) CD DB NOIP "OT(2, Size)" INCDIR(Generated_Source\PSoC3) OJ(.\DP8051_Keil_903\Debug\adc_AMux.obj)

LIBX51.exe TRANSFER '.\DP8051_Keil_903\Debug\CyBootAsmKeil.obj', '.\DP8051_Keil_903\Debug\cymem.obj', '.\DP8051_Keil_903\Debug\KeilStart.obj', '.\DP8051_Keil_903\Debug\I2C_1_SLAVE.obj', '.\DP8051_Keil_903\Debug\I2C_1_MASTER.obj', '.\DP8051_Keil_903\Debug\adc_AMux.obj' TO '.\DP8051_Keil_903\Debug\MCM_00300_Rev1.lib'

LX51.exe '.\DP8051_Keil_903\Debug\cr_lib.obj', '.\DP8051_Keil_903\Debug\lcd_lib.obj', '.\DP8051_Keil_903\Debug\main.obj', '.\DP8051_Keil_903\Debug\MCM_00300_Rev1.lib', 'C:\Program Files (x86)\Cypress\PSoC Creator\2.2\PSoC Creator\psoc\content\cycomponentlibrary\CyComponentLibrary.cylib\DP8051\DP8051_Keil_903\Debug\CyComponentLibrary.lib' , "C:\Program Files (x86)\Cypress\PSoC Creator\2.2\PSoC Creator\lib\DP8051\DP8051_Keil_903\Debug\CyCompLib.LIB"  TO '.\DP8051_Keil_903\Debug\MCM_00300_Rev1.omf' PR(.\DP8051_Keil_903\Debug\MCM_00300_Rev1.map) IX CODE DW(16) RU CL(XDATA(X:0x0000-X:0x1FFF)) CL(CODE(C:0x0000-C:0xFFFF)) CL(CONST(C:0x0000-C:0xFFFF))

*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL

    SYMBOL:  cr_Read

    MODULE:  .\DP8051_Keil_903\Debug\cr_lib.obj (CR_LIB)

*** ERROR L127: UNRESOLVED EXTERNAL SYMBOL

    SYMBOL:  _cr_Write

    MODULE:  .\DP8051_Keil_903\Debug\cr_lib.obj (CR_LIB)

*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL

    SYMBOL:  cr_Read

    MODULE:  .\DP8051_Keil_903\Debug\cr_lib.obj (CR_LIB)

    ADDRESS: 10017ECH

*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL

    SYMBOL:  _cr_Write

    MODULE:  .\DP8051_Keil_903\Debug\cr_lib.obj (CR_LIB)

    ADDRESS: 10017F7H

*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL

    SYMBOL:  cr_Read

    MODULE:  .\DP8051_Keil_903\Debug\cr_lib.obj (CR_LIB)

    ADDRESS: 10017AAH

*** ERROR L128: REFERENCE MADE TO UNRESOLVED EXTERNAL

    SYMBOL:  _cr_Write

    MODULE:  .\DP8051_Keil_903\Debug\cr_lib.obj (CR_LIB)

    ADDRESS: 10017B9H

0 Likes
1 Solution
DheerajK_81
Moderator
Moderator
Moderator
First comment on KBA First comment on blog 5 questions asked

The error occurs because you are referencing to some functions which aren't being found because their corresponding header files might not have been included. Please check if you have all the required files in the project directory.

Check the compiler include directories in the Build Settings to see if you have added any additional include directories which may be referenced incorrectly.

Please attach the project, so that we can get more insight into the problem.

Regards,

Dheeraj

View solution in original post

0 Likes
1 Reply
DheerajK_81
Moderator
Moderator
Moderator
First comment on KBA First comment on blog 5 questions asked

The error occurs because you are referencing to some functions which aren't being found because their corresponding header files might not have been included. Please check if you have all the required files in the project directory.

Check the compiler include directories in the Build Settings to see if you have added any additional include directories which may be referenced incorrectly.

Please attach the project, so that we can get more insight into the problem.

Regards,

Dheeraj

0 Likes