Cypress Perform

Home > Design Support > Cypress Developer CommunityTM > Cypress Forums > USB Controllers > Compile error with SDK 1.2

Bookmark and Share
Cypress Developer CommunityTM
Forums | Videos | Blogs | Training | Rewards Program | Community Components



Compile error with SDK 1.2
Moderator:
RSKV

Post Reply
Follow this topic



Compile error with SDK 1.2

Chris R. posted on 20 Aug 2012 4:37 AM PST
Top Contributor
135 Forum Posts

I´m trying to compile my sync slave fifo application without modifications on the newest SDK version 1.2 but get the following error from the linker:

 

 C:\Cypress\EZ-USB FX3 SDK\1.2\\firmware\u3p_firmware\lib\fx3_debug\cyfxapi.a(cyu3usb.o): In function `CyU3PUsbJumpBackToBooter':
(.text+0x65c): undefined reference to `jump'
c:/cypress/ez-usb fx3 sdk/1.2/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/bin/ld.exe: SlaveFifoSync.elf: hidden symbol `jump' isn't defined

 

How can I fix this? The (new) 1.2 examples compile correctly, but the source from sdk 1.1.1 will not link.




Re: Compile error with SDK 1.2

PicoPete posted on 20 Aug 2012 06:46 AM PST
Member
8 Forum Posts

Hi Chris,

I had to update the startup script, cyfx_gcc_startup.S in my project from one in the V1.2 examples, which  include the Jump definition

"

.global jump
jump:
    bx  R0

"



Re: Compile error with SDK 1.2

Chris R. posted on 20 Aug 2012 08:02 AM PST
Top Contributor
135 Forum Posts

Ah, thank you, I will try this tomorrow.

Has anyone tested the 32 Bit sync slave FIFO with the 1.2 SDK? Is this bug fixed?



Re: Compile error with SDK 1.2

Katas posted on 22 Aug 2012 03:00 AM PST
Member
6 Forum Posts

Not fixed. At least I'm unable to run 32-bit mode with example from sdk 1.2.



Re: Compile error with SDK 1.2

RSKV posted on 23 Aug 2012 06:15 AM PST
Cypress Employee
655 Forum Posts

 

Guys,

Please change the starting piece of code in the main function as shown below:

CyU3PIoMatrixConfig_t io_cfg;
    CyU3PReturnStatus_t status = CY_U3P_SUCCESS;
    CyU3PSysClockConfig_t clkCfg = {
            CyTrue,
            2, 2, 2,
            CyFalse,
            CY_U3P_SYS_CLK
    };

    /* Initialize the device */
    status = CyU3PDeviceInit (&clkCfg);
    if (status != CY_U3P_SUCCESS)
    {
        goto handle_fatal_error;
    }

    /* Initialize the caches. Enable instruction cache and keep data cache disabled.
     * The data cache is useful only when there is a large amount of CPU based memory
     * accesses. When used in simple cases, it can decrease performance due to large
     * number of cache flushes and cleans and also it adds to the complexity of the
     * code. */

Let me know the result after doing this modification.

Thanks,

sai kirshna.



Re: Compile error with SDK 1.2

potam posted on 03 Sep 2012 09:14 PM PST
Member
7 Forum Posts
Same problem occurred. Also,many link errors (undefined reference to `CyU3PGpioInit' etc...) happen. How can I build correctly the project from 1.1.1 on 1.2?

Re: Compile error with SDK 1.2

RSKV posted on 03 Sep 2012 09:46 PM PST
Cypress Employee
655 Forum Posts

Hi,

You have to do the following things:

 Try adding this in the linker paths - "${FX3_INSTALL_PATH}\firmware\u3p_firmware\lib\fx3_debug\cyu3lpp.a".

I am assuming that you have done the following thing:

change your cyfx_gcc_startup.S file according to the latest SDK.

Thanks,

sai krishna.

 



Re: Compile error with SDK 1.2

potam posted on 04 Sep 2012 10:25 PM PST
Member
7 Forum Posts
It completely worked! Thank you for the quick response!

Re: Compile error with SDK 1.2

jiaozi posted on 16 Sep 2012 07:58 PM PST

1 Forum Post

work well with changing on startup.S . Thanks.



Re: Compile error with SDK 1.2

clh23047 posted on 13 Nov 2012 03:09 AM PST
Top Contributor
65 Forum Posts

 

Hello, I have the same problem. I have added the linker path "${FX3_INSTALL_PATH}\firmware\u3p_firmware\lib\fx3_debug\cyu3lpp.a".
and also the starting code in the main function
CyU3PReturnStatus_t status = CY_U3P_SUCCESS;
    CyU3PSysClockConfig_t clkCfg = {
            CyTrue,
            2, 2, 2,
            CyFalse,
            CY_U3P_SYS_CLK
    };
    /* Initialize the device */
status = CyU3PDeviceInit (&clkCfg);
But the problem is still there. Some guys suggested modifying the Jump definition in the cyfx_gcc_startup.S. How to do that in detail? Thank you.


Re: Compile error with SDK 1.2

Lumpi6 posted on 13 Nov 2012 05:02 AM PST
Top Contributor
183 Forum Posts

Hi,

 

just add global jump after section text like....

 

.

.

.section .text
.code 32

.global jump
jump:
    bx  R0
.

.

in the cyfx_gxx.startup.S file

regards

lumpi
 



Re: Compile error with SDK 1.2

Lumpi6 posted on 13 Nov 2012 05:05 AM PST
Top Contributor
183 Forum Posts



Re: Compile error with SDK 1.2

clh23047 posted on 15 Nov 2012 05:25 AM PST
Top Contributor
65 Forum Posts

Thank you very much






ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.