This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/TMS320F28388D: Unable to resolve the linker issues

Part Number: TMS320F28388D


Tool/software: TI C/C++ Compiler

Hi,

I have created my own flash_api library with the same functionality as what TI based library file, F2838x_C28x_FlashAPI.lib have. I have mentioned details in the my following post, https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/927675/3433231#3433231

I tried to test the library with one example program, which is flashapi_ex1_programming inTMS320 F28388D.

I have excluded the existing flash API library from the project but then added and linked my library, rts_TMS320F28388D_FlashAPI.lib, which I have linked to FlashAPI_LIB_ROOT.

Also, I have edited the name of the library in the linker file as well, but I am getting the following error which I am unable to understand.

Could you please check the attached screenshot below:

Thanks & Regards,

Gurusha

  • There appears to be an extra underscore there __c_int00. Can you check the codestartbranch.asm file?

  • Yes, that is not there, I removed it but still, I am getting the same error provided in the screenshot in the last post.

    Please could you help me with to resolve it?

    Thanks,

    Gurusha

  • Gurusha,

    What did you remove? _c_int00 should still be included in codestartbranch.asm.

    Refer to the following post and see if it helps you

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/738212?CCS-TMS320F28035-undefined-c-int00-when-compile-the-project

    Essentially, it is asking you to check if you have included an RTS library in your project. That is where _c_int00 is defined. It appears the linker is not able to find the definition of this function, which is why it is throwing an error. This is likely because you don't have the RTS library included. 

    An example location of this library within the compiler tool chain is \tools\compiler\ti-cgt-c2000_20.2.1.LTS\lib

    Thanks,

    Sira

  • Hi,

    I didn't remove _c_int00, I just removed extra underscore.

    Let me also explain to you which run time library, I have included and excluded.

    Actually I have just excluded F2838x_C28x_FlashAPI.lib, so that I could include my run time library, rts_TMS320F28388D_FlashAPI.lib, which of cause has the same flash API functionality.

    But the driver.lib is already included. I will check more which file Is actually required.

    Also how to include my run time library, so that I would resolve the error, as mentioned in the screenshot.

  • You need a run time support library. Typically you would do that by indicating libc.a in the linker file search path. Or you would explicitly indicate the name e.g. rts2800_fpu64_eabi.lib.

    I am not sure how you built your rts_TMS320F28388D_FlashAPI.lib, but evidently it is missing the RTS functionality.

    My first suggestion would be to include libc.a or the RTS library I mentioned. See if the error goes.

  • Hi Sira,

    It is working for me when I included rts2800_fpu32eabi.lib.

    Sira Rao80 said:
    I am not sure how you built your rts_TMS320F28388D_FlashAPI.lib, but evidently it is missing the RTS functionality.

    Can you please explain what functionality it would likely to be missing? as I am already looking for this answer in my other post;

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/927675/3435314#

    I have attached the screenshot below to make sure that the project is building with rts_TMS320F28388D_FlashAPI.lib library:

    If you can see the highlighted portion, it is getting included.

    PS: I cannot include lib.a, else I won't be able to test my library.

    Thank you!

    Regards,

    Gurusha

  • Gurusha,

    First of all, it is not good practice to have parallel threads going on overlapping issues. It is not efficient.

    I really don't know what you are trying to achieve here - the Flash API library is separate from the RTS library, as far as I am aware. The RTS library defines key things like the C initialization routine (_c_int00). This appears to be missing from your exercise, leading to the error.

    If you are trying to combine these, that is something you're going to have to dig into - as to what you components you are missing.

    Thanks,

    Sira

  • Hi Sira,

    Actually the discussion was already ongoing conversation in my last post, I had to post a new question to avoid any further confusion.

    Thanks for your response.

    Actually, I have created my own run time library for flash API, and wanted to test on the project by only substituting the flash API library which TI has provided, and it is working fine now.

    Regards

    Gurusha

  • OK, so my understanding is that your questions are resolved. I will go ahead and close the issue.