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.

Problems adding NDK to existing (working) project

Advantech TMDSEVM6678L w/ CCS 2.21

See NDK UG v 2.21. Following these instructions, two problems present.

1)  NIMUDeviceTable is undefined. I correlate this to the fact that the EMAC block in the DataLink layer show on "NDK - System Overview" cannot be selected (checked).  Adjacent blocks respond to right mouse click, EMAC does NOT!

WHY ????

  • Hi lawrence sherman1,

    For C6678, we have created a NIMU driver to assist you with using NDK. please refer to pdk_C6678_x_x_x_x\packages\ti\transport\ndk\nimu. NIMUDeviceTable is defined by this library, specifically in the beginning of nimu_eth.c. I would suggest taking a look at our existing NDK examples and demos to see how this NIMU driver ties in with an application.

    As for the "EMAC block in the DataLink layer", I am unfamiliar with how this coordinates with the actual source. If this visual/graphic is hindering your development, please let me know and I will find a colleague to answer your question.

    -Ivan

  • I found the problem. The NDK examples (client and helloworld) both have a memory definitions that are  "incorrect" for the  Advantech TMDSEVM6678l EPD0084140

    I noticed this when comparing the linker.cmd files between a working example and either of the two non-working NDK examples.

    Essentially, the NDK projects have some memory sizes two times too large. As soon as I halved the memory sizes, BOTH ndk examples began to work.

    Here is the linker.cmd generated by  the as delivered client_evm6678l:

    --args 0x0
    -heap  0x0
    -stack 0x1000

    MEMORY
    {
        L2SRAM (RWX) : org = 0x800000, len = 0x80000
        MSMCSRAM (RWX) : org = 0xc000000, len = 0x400000
        DDR3 : org = 0x80000000, len = 0x20000000
    }

    Here is the linker.cmd generated in the as delivered  platform_test_evm6678l

    -c
    -heap  0x41000
    -stack 0xa000

    /* Memory Map 1 - the default */
    MEMORY
    {
        L1PSRAM (RWX)  : org = 0x0E00000, len = 0x7FFF
        L1DSRAM (RWX)  : org = 0x0F00000, len = 0x7FFF

        L2SRAM (RWX)   : org = 0x0800000, len = 0x080000
        MSMCSRAM (RWX) : org = 0xc000000, len = 0x200000
        DDR3 (RWX)     : org = 0x80000000,len = 0x10000000
    }

    Can anyone point me to the document that describes the process that creates the linker cmd files. I used the gui

    to set the sizes of the memory types.