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.

Compile error when both NDK and SYSBIOS usage

Other Parts Discussed in Thread: SYSBIOS

Hi Expert

After I used NDK(ndk_2_21_01_38) and SYSBIOS(bios_6_33_05_46) together, I meet a compile issue as below

Unresolved symbol ti_sysbios_family_c64p_EventCombiner_disableEvent__E in file ./TI_lib/ndk_full_stack/intmgmt.obj .xdchelp /sysBios_Minimalv2 0 C/C++ Problem 

Unresolved symbol ti_sysbios_family_c64p_EventCombiner_dispatchPlug__E in file ./TI_lib/ndk_full_stack/intmgmt.obj .xdchelp /sysBios_Minimalv2 0 C/C++ Problem
Unresolved symbol ti_sysbios_family_c64p_EventCombiner_enableEvent__E in file ./TI_lib/ndk_full_stack/intmgmt.obj .xdchelp /sysBios_Minimalv2 0 C/C++ Problem

I tried to add sysbios related package(C:\ti\bios_6_33_05_46\packages) and also include the lib file: C:\ti\bios_6_33_05_46\packages\ti\sysbios\lib\debug\ti.sysbios.ae66 and C:\ti\bios_6_33_05_46\packages\ti\sysbios\family\c64p\lib\debug\ti.sysbios.family.c64p.ae66,  C:\ti\bios_6_33_05_46\packages\ti\sysbios\family\c64p\lib\debug\ti.sysbios.family.c64p.ae64p, but the error still occurs

Could you help check what package or lib I should include?

Also after I checked the related NDK code which calls the above function as below

C:\ti\ndk_2_21_01_38\packages\ti\ndk\os\intmgmt.c

             EventCombiner_dispatchPlug (myIntSetup->sysEvtId[i],(EventCombiner_FuncPtr) myIntSetup->pCallbackFxn,
                                            (UArg) myIntSetup->pCallbackArg, (Bool) myIntSetup->bEnable);

I also find some strange comment as below:

/*
 * Hack to work around Interrupt API limitations and SYS/BIOS issues.
 * Does not work with interrupts that use ECM (currently none known).
 *
 */

Looking forward your answer

  • Thomas,

    Try adding this to your .cfg file:

      xdc.useModule("ti.sysbios.family.c64p.EventCombiner");

    This will make sure the EventCombiner code gets pulled into your application.

    Alan

  • Thomas Yang55737,

    Which hardware platform are you using?

    Steve

  • Hi Alan

    I have added this module in the CFG file with picture configuration method, not as add code as you mentioned above,

    It should have the same functionality, right

    Anyway, I will try it and let you now the result

    Hi Steven

    Platform is Nyquist, CCS is 5.1.1

    Any more info input please let me know

    Thanks

  • Hi experts

    Any update on this issue?

    Thanks

  • Thomas Yang55737 said:

    I have added this module in the CFG file with picture configuration method, not as add code as you mentioned above,

    It should have the same functionality, right

    Anyway, I will try it and let you now the result

    It should have the same effect, but if not, you should just add the code Alan mentioned above into the *.cfg file.

    Did you try this?

    Steve

  • I add it to the cfg file. I got the same link error which Thomas metioned.
     
    var EventCombiner = xdc.useModule('ti.sysbios.family.c64p.EventCombiner');
  • Can you zip up and attach your entire project to this thread?  You can do this by right clicking on the project in CCS and selecting export.  Then choose 'archive' and follow the wizard steps.

    Steve

  • Hi Steven,

    Could you tell me you Email? I want to send  it to you by Email.

    Thanks a  lot!

  • Hi Steven,

    I heared Thomas had send you the project.

    Are there any news about this problem?

    Thanks a lot!

  • weiqiang li1,

    I did receive your project.  However I have been having a lot of problems building it due to errors that are different than the one you are seeing.  I'm getting errors due to your source files missing as well as not having all of the dependent software components installed.  (e.g. your project references a lot of files under D:\sourceCodeProj\autoTest of your machine that I don't have).

    In order to get around this I removed a lot of your sources and include paths in the project and just added your main.c file along with the app.cfg file into the project.  I also added the var EventCombiner = xdc.useModule('ti.sysbios.family.c64p.EventCombiner'); code into the app.cfg file for you.

    One important thing to note is that in SYS/BIOS 6.x, you must call the function BIOS_start() from within your main() function.  I added that for you as well.

    I've also noticed that you had added many BIOS libraries and NDK libraries directly into the project.  The following screen shows what I mean:

    It's important to know that these SYS/BIOS libraries will be linked in automatically for you via your configuration settings in your app.cfg file. You shouldn't need to add these BIOS libraries manually.

    Similar for the NDK.  You can add the NDK to your app.cfg file and it will generate the NDK TCP/IP stack start up code and get an IP address from DHCP for you by default.  I also updated the app.cfg file to to that for you.  However, you will still need to point your project to the proper Ethernet driver for your hardware platform (this should be present in your MCSDK product).

    I'd also like to point out some very helpful documentation for you.  Have you read the SYS/BIOS Getting Started Guide and User's Guide?  If not, I would highly recommend that you read through these documents and follow the examples within them.  These docs can be found within your SYS/BIOS 6.x installation.  For example, they are here on my machine:

    C:\ti\bios_6_34_01_14\docs\Bios_Getting_Started_Guide.pdf

    C:\ti\bios_6_34_01_14\docs\Bios_User_Guide.pdf

    I'll send your project back to Thomas so he can send it back to you.

    Steve