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.

Library for C64 Module

Other Parts Discussed in Thread: CCSTUDIO

Hi!

I'm using the DSK6455 and I'm trying to set-up a first project using interrupts with the DSP/BIOS (5_31_02). I think I configured the DSP/BIOS correctly to enable interrupts and to call my service routine. I found out that I have to enable the specific interrupt (e.g. hwi_int4) in the IER register. Therefore, I used the C64_enbaleIER() function. My C file compiles without any error, but the linker can not find the symbol "_C64_enableIER". I assume that some library is missing. Without this function call (and manually enabling the interrupt using the registers view in the CCS) my application works without any problems.

Regards,

Peter

  • Hi Peter,

    Please get a newer version of DSP/BIOS at update adviser and install it. After Installing DSP/BIOS 5.33.xx, open CCS, go to the menu Help -> About. Click on Component Manager. The component manager screen will open. Expand the Target Content (DSP/BIOS) list. Expand the lists for TMS320C64XX and select Texas Instruments DSP/BIOS 5.33.xx. Go to the menu, File -> Save to save the configuration. Restart CCS for the changes to take effect.

    After that, make sure that you have these 2 files included in the source file that calls the function:

    #include "projectcfg.h" // where "project" is the name of the project you are using, or the name of the tcf file that generates the xxxcfg.h file
    #include <C64.h>

     

     

  • Hi Mariana

    I updated the DSP/BIOS to version 5.33.06 and I performed all steps as you described, but I still get the same error. I assume that there is something wrong with my linker settings.

    I added the following libraries and folders to Build Options > Libraries:

    search path: C:\CCStudio_v3.3\bios_5_33_06\packages\ti\rtdx\lib\c6000
    incl. libraries: C:\CCStudio_v3.3\boards\dsk6455_v2\lib\dsk6455bsl.lib

    Is this OK, or is there something important missing? Do you have any idea what could cause this linker error?
    Thank you for your help.

    Best regards,

    Peter

  • Hi Peter,

    the C64_enableIER function is part of DSP/BIOS, so as long as your project uses DSP/BIOS (project has a tcf file) the function should be included without a problem.

    Can you attach your project here so I can take a look?

    If you can not, please contact  your local support and send them the issue:

    http://www-k.ext.ti.com/sc/technical-support/product-information-centers.htm

     

  • Hi Mariana!

    I attached the whole project folder. It is not my original project, but the linker error is the same.

    Regards
    Peter

    IER_Bug.zip
  • Peter,

    It is just a typo. Replace:

    C64_enbaleIER

    with

    C64_enableIER

  • I'm sorry for that mistake. You are right it was just the typo. But why does the compiler not complain?

    Anyway, thank you for your help!

  • The C standard does not require a compiler to produce an error when a function is missing prototype however it is always advisable to have a prototype as it may otherwise produce unexpected results. Hence this is a good thing to check if runtime functions such as printf, sprintf or any others produce unexpected results.

    In CCS, the recommendation is to use the following compiler options to identify such missing prototypes:

     

    see section 2.7.1 of

    http://www-s.ti.com/sc/techlit/spru187

     Now when you rebuild the project, you should see the remark:

    remark #225-D: function declared implicitly

    
    

    Wherever there is a call to a function that does not have a prototype.

     

    You can also set this remark to always be an error so you don't overlook it. To do this, set the option: "Treat diagnostic <n> as error" and add the diagnostic id 225.

    Here is a summary of the options:

    -pdr - Issue remarks
    -pden - Emit diagnostic identifier number
    -pdse=id - Treat diagnostic <id> as error
    -pdsr=id - Treat diagnostic <id> as remark
    -pdsw=id - Treat diagnostic <id> as warning