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.

CCS/MSP432E411Y: NDK settings not available XGCONF

Part Number: MSP432E411Y

Tool/software: Code Composer Studio

Hello!

I'm trying to get the NDK settings to show in the XGCONF editor and/or imported into compiler include path and linker settings in CCS.  The NDK is part of the SimpleLink MSP432E SDK.

I can get the program to compile by manually specifying the build settings within CCS but that's rather cumbersome as there's a large amount of stub libraries being linked in.

I'm not really familiar with RTSC or CCS, or XDCtools, so I'm probably just missing something very trivial here?

The simplelink_msp432e4_sdk_1_60_00_10 shows up under available products outline, but I don't manage to even manually add the settings (xdc.MODULE_NOT_FOUND: xdc.module: no module named 'nettools' in the pacakage ti.ndk or similar.)  I do have TI-RTOS imported into the workspace as a referenced project and can import the settings of that, but these don't show up either in the GUI (I suppose the settings are supposed to be editable from the GUI, right?)  I have originally inherited the project, so I'm not fully certain how the .cfg file has originally been created, but if I try to add another RTSC configuration file, the behaviour is similar.

What needs to be done to get the settings shown under XGCONF/CCS and a statically configured app run ?

  • Jaako,
    First question that comes to mind is "is the SDK located in c:\ti ?" Sometimes XGCONF can't find the kernel when it's placed somewhere else?
    Regards,
    Bob L
  • Hi Jaakko,

    The NDK supports configuration in the .cfg file (both via text or graphically) for TI-RTOS based applications. We did not do this in the example since we wanted to have the FreeRTOS and TI-RTOS versions similar.

    I took the TI-RTOS based tcpEcho and made the following changes to use the .cfg file to configure the NDK. Note: doing this generates basically the same content as the ndk.c file.

    1. Add the following into the .cfg file
    var Ndk = xdc.loadPackage('ti.ndk.config');
    var Global = xdc.useModule('ti.ndk.config.Global');
    var Ip = xdc.useModule('ti.ndk.config.Ip');
    var Udp = xdc.useModule('ti.ndk.config.Udp');
    var Tcp = xdc.useModule('ti.ndk.config.Tcp');

    Global.IPv6 = false;
    Global.stackLibType = Global.MIN;
    Global.networkOpenHook = "&netOpenHook";
    Global.networkIPAddrHook = "&netIPAddrHook";

    /* automatically call fdOpen/CloseSession for our sockets Task */
    Global.autoOpenCloseFD = true;

    Global.pktNumFrameBufs = 10;
    Global.memRawPageCount = 6;
    Global.ndkThreadStackSize = 1536;
    Global.lowTaskStackSize = 1536;
    Global.normTaskStackSize = 1536;
    Global.highTaskStackSize = 1536;

    2. Exclude (or delete the ndk.c file)
    3. Remove ti_ndk_config_Global_startupFxn(); call from main_tirtos.c (it is automatically called for you now).
    4. Remove all the ndk libraries from the linker project settings (since the libs will be pulled in automatically for you via the generated linker file).

    This should build and run properly.

    Todd
  • Thanks, this fixed it.  I assume the loadPackage did the trick (or Global?) Can the packages be added from the CCS GUI or do I just need to know what to loadPackage()

  • Getting a little bit along, -- the application builds correctly with the libraries not explicitly listed.

    How do I choose the semaphore-based locking in NDK using XDC ? Now the linker will always use os.aem4f -- is there a way to pick os_sem instead.
  • Hello Jaakko,

    The following line might let you pick os_sem.
    Global.useSemLibs = true;

    Thanks,
    Sai
  • Thanks, this works!

**Attention** This is a public forum