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.

Testing NDK Client application with custom board

Other Parts Discussed in Thread: CCSTUDIO, SYSBIOS

Hi,

i am having a custom board and i am using the client application.

i connected the custom board  with LAN Cable(RJ45) and other side it is connected to to the router and my host pc also connected to the same router. i want to do tests in the following way.

(1)i want to send some packets from the Host PC to the custom board that DSP in the custom board get these packets through the complete protocol stack and send back?

 can i use the example tests helloworld.exe, send.exe  under D:\Tools\CCStudio_v5.5\ndk_2_21_02_43\packages\ti\ndk\winapps.?

(2) finally i want to connect two custom boards with LAN cable(RJ45) to both Ethernet ports, and use one DSP on one board as the transmitter and the other DSP on the second board as the receiver and communicate both and sending packets from one to other. has any one tested like this?

When i run the client application i am getting the output as shown below. it is giving the right ip address of my custom board. but when i run the the example tests helloworld.exe, send.exe  under D:\Tools\CCStudio_v5.5\ndk_2_21_02_43\packages\ti\ndk\winapps they are failing. why?

Output:

[C66xx_0] 

TCP/IP Stack Example Client

6:48 ( 9%) 4:96 ( 12%) 9:128 ( 37%) 0:256
1:512 ( 16%) 0:1536 0:3072
(12288/49152 mmAlloc: 20/0/20, mmBulk: 0/0/0)

void hookThreadBegin
void hookThreadInit
emac_init: core 0, port 0, total number of channels/MAC addresses: 1/1
MAC addresses configured for channel 0:
00-17-EA-F1-52-D7
SGMII reset successful........
SGMII config successful........
emac_open core 0 port 0 successfully
Registration of the EMAC Successful, waiting for link up ..
Service Status: DHCPC : Enabled : : 000
void hookStatusReport
Service Status: HTTP : Enabled : : 000
void hookStatusReport
void hookNetworkOpen
Service Status: DHCPC : Enabled : Running : 000
void hookStatusReport
Network Added: If-1:xx.xx.xx.xx
void hookNetworkIP
Service Status: DHCPC : Enabled : Running : 017
void hookStatusReport
ti.sysbios.heaps.HeapMem: line 294: out of memory: handle=0x8ea788, size=5120
xdc.runtime.Error.raise: terminating execution

Thanks,

Regards,

Ram.

  • Hi,
    What is your processor ?


    (1)i want to send some packets from the Host PC to the custom board that DSP in the custom board get these packets through the complete protocol stack and send back?

    We have example for this requirement with "Packet accelerator" peripheral.

    C:\ti\pdk_C6678_1_1_2_6\packages\ti\drv\exampleProjects\PA_emacExample_exampleProject
    C:\ti\pdk_C6678_1_1_2_6\packages\ti\drv\exampleProjects\PA_multicoreExample_exampleProject

    Please import the above mentioned 2 projects and refer the code which will do both send/receive the packets.
  • Hi,

    i am using c6657 DSP.The mentioned projects by you are only for C6678. Please tell me which projects i can use for my C6657 DSP.

    Thanks,

    Ram.

  • Hi,

    Yes, you can use the client example with winapps.

    C:\ti\mcsdk_2_01_02_06\examples\ndk\client\evmc6657l

    C:\ti\ndk_2_24_01_18\packages\ti\ndk\winapps

    (2) finally i want to connect two custom boards with LAN cable(RJ45) to both Ethernet ports, and use one DSP on one board as the transmitter and the other DSP on the second board as the receiver and communicate both and sending packets from one to other. has any one tested like this?

    Yes, you can use this client application with static IP mode.

    You have to assign static IP mode for sender board and need to assign different static IP for receiver board with the same netmask.

    I ran client example on C6657 EVM board with running winapp send/recv application.

    ti.sysbios.heaps.HeapMem: line 294: out of memory: handle=0x8ea788, size=5120

    xdc.runtime.Error.raise: terminating execution

    Try to increase the heap size in *.cfg file.

  • Hi,

    i already increased the size of heap. but recv.exe or another applications are not working in the winapps directory. only i can open on the browser(httpserver) using the ip.please tell me whether i have to give some more input params ?

    i am giving my output

    [C66xx_0]  

    TCP/IP Stack Example Client

      6:48   (  9%)     4:96   ( 12%)     9:128  ( 37%)     0:256          

      1:512  ( 16%)     0:1536            0:3072          

    (12288/49152 mmAlloc: 20/0/20, mmBulk: 0/0/0)

    void hookThreadBegin  

    void hookThreadInit  

    emac_init: core 0, port 0, total number of channels/MAC addresses: 1/1

    MAC addresses configured for channel 0:

    00-17-EA-F1-52-D7

    SGMII reset successful........

    SGMII config successful........

    emac_open core 0 port 0 successfully

    Registration of the EMAC Successful, waiting for link up ..

    Service Status: DHCPC    : Enabled  :          : 000

    void hookStatusReport

    Service Status: HTTP     : Enabled  :          : 000

    void hookStatusReport

    void hookNetworkOpen  

    Service Status: DHCPC    : Enabled  : Running  : 000

    void hookStatusReport

    Network Added: If-1:xx.xx.xx.xx

    void hookNetworkIP  

    Service Status: DHCPC    : Enabled  : Running  : 017

    void hookStatusReport

    00174.100 TCP: Retransmit Timeout

    00174.700 TCP: Retransmit Timeout

    00175.900 TCP: Retransmit Timeout

    00178.300 TCP: Retransmit Timeout

    00179.900 TCP: Retransmit Timeout

    00180.100 TCP: Retransmit Timeout

    00183.100 TCP: Retransmit Timeout

    00203.900 TCP: Retransmit Timeout

    00204.100 TCP: Retransmit Timeout

    00248.900 TCP: Keep Timeout

    00249.100 TCP: Keep Timeout

    00551.900 TCP: Retransmit Timeout

    00552.500 TCP: Retransmit Timeout

    00553.700 TCP: Retransmit Timeout

    00556.100 TCP: Retransmit Timeout

    00560.900 TCP: Retransmit Timeout

    02356.900 TCP: Retransmit Timeout

    02358.300 TCP: Retransmit Timeout

    Thanks,

    Ram.

  • Hi,

    Do you have any idea, why recv.exe is not working?


    Thanks,
    Ram.

  • Hi,

    The programs in the folder ->C:\ti\ndk_2_24_01_18\packages\ti\ndk\winapps which are generating different exe files has different port numbers.does this influence when i am trying use recv.exe?Why different programs has different port numbers?

    for eg: send.c(PORT 1001)
    testudp.c(PORT 7)
    recv.c (PORT 1000).

    Thanks,
    Ram.
  • Hi,
    Sorry for the delayed response.

    Able to ping the IP address on your windows while running "recev.exe", hope it worked since able to connect IP through webpage.

    What are the sw changes you have done in NDK client example code for your custom board ?


    The programs in the folder ->C:\ti\ndk_2_24_01_18\packages\ti\ndk\winapps which are generating different exe files has different port numbers.does this influence when i am trying use recv.exe?Why different programs has different port numbers?


    No, do you have any C6657 or C6678 or C6670 EVM board with you ?
    I'm able to run all the winapps with NDK example code and not seen any issue.

    What are all the hw changes (related to ethernet) you made on custom than C6657 EVM board ?
  • Hi,

    Please see my answers.

    What are the sw changes you have done in NDK client example code for your custom board ?

    I changed the intialization of my custom board to configure the PLLs for different peripherals and i hope it does not have the problem.

    second i changed client.cfg file, may be this has some influence. in the evm client.cfg file  heap and emaccomm are allocated in DDR3, i am doing it in L2SRAM. 

    when i do like evm cfg file my program is not coming to main, i don't know why. i am giving my clien.cfg file and the platform.xdc what i am using.

    do you have any C6657 or C6678 or C6670 EVM board with you ?
    I have one c6657 evm board with me i havent tested the ethernet communication on it until now. i directly came to my custom board.

    do you think i need to test on the EVM board?

    What are all the hw changes (related to ethernet) you made on custom than C6657 EVM board ?

    we have other PHY (88E1512) not like EVM board.

    /*
     * evm.cfg
     *
     * Memory Map and Program intiializations for the HPDSP Utility
     *
     * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ 
     *  
     *  Redistribution and use in source and binary forms, with or without 
     *  modification, are permitted provided that the following conditions 
     *  are met:
     *
     *    Redistributions of source code must retain the above copyright 
     *    notice, this list of conditions and the following disclaimer.
     *
     *    Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the 
     *    documentation and/or other materials provided with the   
     *    distribution.
     *
     *    Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
     *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
     *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
     *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
     *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
     *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
     *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
     *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     *
    */
    
    /*
     *   @file  evm.cfg
     *
     *   @brief   
     *      Memory Map and Program intiializations for the HPDSP Utility.
     *
     */
     
    /********************************************************************************************************************
    *  Specify all needed RTSC MOudles and ocnfigure them.																*
    ********************************************************************************************************************/
    
    var Memory  =   xdc.useModule('xdc.runtime.Memory');
    
    var BIOS    =   xdc.useModule('ti.sysbios.BIOS');
    
    var Task    =   xdc.useModule('ti.sysbios.knl.Task');
    
    var HeapBuf =   xdc.useModule('ti.sysbios.heaps.HeapBuf');
    
    var Log     =   xdc.useModule('xdc.runtime.Log');
    
    
    /*
    ** Allow storing of task names. By default if you name a task with a friendly display name it will not be saved
    ** to conserve RAM. This must be set to true to allow it. We use friendly names on the Task List display.
    */
    //Defaults.common$.namedInstance = true; 
    Task.common$.namedInstance = true;
    
    var Clock   =   xdc.useModule ('ti.sysbios.knl.Clock');
    
    /* 
    ** Interface with IPC. Depending on the version of BIOS you are using the 
    ** module name may have changed.
    */
    /* Use this for pre BIOS 6.30 */
    /* var Sem      =     xdc.useModule ('ti.sysbios.ipc.Semaphore'); */
    
    /* Use this for BIOS 6.30 plus to get the IPC module */
    var Sem = xdc.useModule ('ti.sysbios.knl.Semaphore');
    
    var Hwi = xdc.useModule ('ti.sysbios.hal.Hwi');
    
    var Ecm = xdc.useModule ('ti.sysbios.family.c64p.EventCombiner');
    
    /*
    ** Configure this to turn on the CPU Load Module for BIOS.
    **
    */
    /*
    var Load       =   xdc.useModule('ti.sysbios.utils.Load');
    Load.common$.diags_USER4 = Diags.ALWAYS_ON;
    */
    
    var Diags       = xdc.useModule('xdc.runtime.Diags');
    
    
    /*
    ** Sets up the exception log so you can read it with ROV in CCS 
    */
    var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
    var Exc = xdc.useModule('ti.sysbios.family.c64p.Exception');
    Exc.common$.logger = LoggerBuf.create();
    Exc.enablePrint = true; /* prints exception details to the CCS console */
    
    
    /*Exception.common$.logger = LoggerBuf.create();
    Exception.enablePrint = true; /* prints exception details to the CCS console */
    /* Load the CSL package */
    var Csl                         =   xdc.useModule('ti.csl.Settings');
    
    /* Load the CPPI package */
    var Cppi                        =   xdc.loadPackage('ti.drv.cppi');     
    
    /* Load the QMSS package */
    var Qmss                        =   xdc.loadPackage('ti.drv.qmss');
    
    
    var PlatformLib  = xdc.loadPackage('ti.platform.evmc6657l');
    var NdkTransport = xdc.loadPackage('ti.transport.ndk');
    var EmacLLD = xdc.loadPackage('ti.drv.emac');
    
    //var Emac = xdc.useModule('ti.ndk.config.Emac');
    var Ip = xdc.useModule('ti.ndk.config.Ip');
    var EmacLLD = xdc.loadPackage('ti.drv.emac');
    var Tcp = xdc.useModule('ti.ndk.config.Tcp');
    var Telnet = xdc.useModule('ti.ndk.config.Telnet');
    var Http = xdc.useModule('ti.ndk.config.Http');
    var NdkTransport = xdc.loadPackage('ti.transport.ndk');
    var Global = xdc.useModule('ti.ndk.config.Global');
    var Udp = xdc.useModule('ti.ndk.config.Udp');
    
    Global.enableCodeGeneration = true;
    
    Ip.autoIp = true;
    
    /*var telnet0Params = new Telnet.Params();
    telnet0Params.callBackFxn = "&MyConsoleOpen";
    telnet0Params.ResolveIP = false;
    telnet0Params.mode = 0;
    telnet0Params.CallByIP = false;
    var telnet0 = Telnet.create(telnet0Params);*/
    
    Global.stackBeginHook = "&hookThreadBegin";
    Global.stackInitHook = "&hookThreadInit";
    Global.stackDeleteHook = "&hookThreadDelete";
    Global.serviceReportHook = "&hookStatusReport";
    Global.networkOpenHook = "&hookNetworkOpen";
    Global.networkCloseHook = "&hookNetworkClose";
    Global.networkIPAddrHook = "&hookNetworkIP";
    var http0Params = new Http.Params();
    var http0 = Http.create(http0Params);
    
    
    var Startup     =   xdc.useModule('xdc.runtime.Startup');
    var System      =   xdc.useModule('xdc.runtime.System');
    
    
    
    /* Create a Heap. */
    var HeapMem   = xdc.useModule('ti.sysbios.heaps.HeapMem');
    var heapMemParams = new HeapMem.Params();
    heapMemParams.size = 0x10000;//0x8000;
    heapMemParams.sectionName = "systemHeapMaster";
    Program.global.heap0 = HeapMem.create(heapMemParams);
    Memory.defaultHeapInstance = Program.global.heap0;
    
    /* This is the default memory heap. */
    Program.sectMap["systemHeapMaster"]  = "L2SRAM";
    Program.sectMap["emacComm"]          = "L2SRAM";
    Program.sectMap["msmc"]              = "MSMCSRAM";
    Program.sectMap[".far:PKTBUF_L2MEM"] = "L2SRAM";
    Program.sectMap[".far"]              = "L2SRAM";
    Program.sectMap[".cinit"]            = "L2SRAM";
    Program.sectMap[".bss"]              = "L2SRAM";
    Program.sectMap[".rodata"]           = "L2SRAM";
    Program.sectMap[".neardata"]         = "L2SRAM";
    Program.sectMap[".const"]            = "L2SRAM";
    Program.sectMap[".text"]             = "L2SRAM";
    Program.sectMap[".code"]             = "L2SRAM";
    Program.sectMap[".data"]             = "L2SRAM";
    Program.sectMap[".far:taskStackSection"] = "L2SRAM";
    Program.sectMap[".stack"]            = "L2SRAM";
    Program.sectMap[".sysmem"]           = "L2SRAM";
    Program.sectMap[".vecs"]             = "L2SRAM";
    Program.sectMap[".args"]             = "L2SRAM";
    Program.sectMap[".cio"]              = "L2SRAM";
    Program.sectMap[".switch"]           = "L2SRAM";
    Program.sectMap["platform_lib"]     =   "L2SRAM";
    
    /*
    Program.sectMap["systemHeapMaster"]  = "DDR3";
    Program.sectMap["emacComm"]          = "DDR3";
    Program.sectMap["msmc"]              = "MSMCSRAM";
    Program.sectMap[".far:PKTBUF_L2MEM"] = "DDR3";
    Program.sectMap[".far"]              = "DDR3";
    Program.sectMap[".cinit"]            = "DDR3";
    Program.sectMap[".bss"]              = "DDR3";
    Program.sectMap[".rodata"]           =   "DDR3";
    Program.sectMap[".neardata"]         =   "DDR3";
    Program.sectMap[".const"]            = "DDR3";
    Program.sectMap[".text"]             = "DDR3";
    Program.sectMap[".code"]             = "DDR3";
    Program.sectMap[".data"]             = "DDR3";
    Program.sectMap[".far:taskStackSection"] = "DDR3";
    Program.sectMap[".stack"]            = "DDR3";
    Program.sectMap[".sysmem"]           = "DDR3";
    Program.sectMap[".vecs"]             = "DDR3";
    Program.sectMap[".args"]             = "DDR3";
    Program.sectMap[".cio"]              = "DDR3";
    Program.sectMap[".switch"]           = "DDR3";
    Program.sectMap["platform_lib"]     =   "DDR3";*/
    
    
    /*Program.sectMap[".far:taskStackSection"] = "L2SRAM";
    Program.sectMap[".stack"]   =   "L2SRAM";*/
    Program.sectMap[".far:IMAGEDATA"] = {loadSegment: "L2SRAM", loadAlign: 8};
    Program.sectMap[".far:NDK_OBJMEM"] = {loadSegment: "L2SRAM", loadAlign: 8};
    Program.sectMap[".far:NDK_PACKETMEM"] = {loadSegment: "L2SRAM", loadAlign: 128};
    
    /*
    ** Create a Heap. 
    */
    /*var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
    var heapMemParams = new HeapMem.Params();
    heapMemParams.size = 0x30000;
    heapMemParams.sectionName = "systemHeap";
    Program.global.heap0 = HeapMem.create(heapMemParams);
    /* This is the default memory heap. */
    /*Memory.defaultHeapInstance  =   Program.global.heap0;
    
    Program.sectMap["emacComm"] = "DDR3", //"DDR3";
    Program.sectMap["systemHeap"] = "DDR3";
    Program.sectMap[".switch"]  = "DDR3";
    Program.sectMap[".sysmem"]  = "DDR3";
    Program.sectMap[".args"]    = "DDR3";
    Program.sectMap[".cio"]     = "DDR3";
    Program.sectMap[".far"]     =   "DDR3";
    Program.sectMap[".cinit"]   =   "DDR3";
    Program.sectMap[".bss"]     =   "DDR3";
    Program.sectMap[".rodata"]      =   "DDR3";
    Program.sectMap[".neardata"]        =   "DDR3";
    Program.sectMap[".const"]   =   "DDR3";
    Program.sectMap[".text"]    =   "DDR3";
    Program.sectMap[".code"]    =   "DDR3";
    Program.sectMap[".data"]    =   "DDR3";
    Program.sectMap["platform_lib"]     =   "DDR3";
    
    Program.sectMap[".far:taskStackSection"] = "L2SRAM";
    Program.sectMap[".stack"]   =   "L2SRAM";
    Program.sectMap[".far:IMAGEDATA"] = {loadSegment: "L2SRAM", loadAlign: 8};
    Program.sectMap[".far:NDK_OBJMEM"] = {loadSegment: "L2SRAM", loadAlign: 8};
    Program.sectMap[".far:NDK_PACKETMEM"] = {loadSegment: "L2SRAM", loadAlign: 128};*/
    
    
    
    
    /* Required if using System_printf to output on the console */
    SysStd                  =   xdc.useModule('xdc.runtime.SysStd');
    System.SupportProxy     =   SysStd;
    
    
    
    
    /********************************************************************************************************************
    * Define hooks and static tasks  that will always be running.                                                       *
     ********************************************************************************************************************/
    
    /* 
    ** Register an EVM Init handler with BIOS. This will initialize the hardware. BIOS calls before it starts. 
    **
    ** If yuo are debugging with CCS, then this function will execute as CCS loads it if the option in your 
    ** Target Configuraiton file (.ccxml) has the option set to execute all code before Main. That is the 
    ** default.
    */
    Startup.firstFxns.$add('&EVM_init');
    
    /* 
    ** Create the stack Thread Task for our application.
    */
    var tskNdkStackTest         =   Task.create("&StackTest");
    tskNdkStackTest.stackSize   =   0x1000;
    tskNdkStackTest.priority    =   0x5;
    
    
    /* 
    ** Create a Periodic task to handle all NDK polling functions. 
    ** If you are using RTSC configuration with NDK 2.2 and above, this is done by default and 
    ** you do not need to do this.
    */
    var prdNdkClkParams         =   new Clock.Params ();
    prdNdkClkParams.period      =   0x64;   
    prdNdkClkParams.startFlag   =   true;
    Program.global.clockInst1   =   Clock.create("&llTimerTick", 5, prdNdkClkParams);
    
    
    /* 
    ** If you are using RTSC configuration with NDK 2.2 and above, this is done by default, else
    ** register hooks so that the stack can track all Task creation */ 
    
    /*Task.common$.namedInstance  =   true;
    Task.addHookSet ({ registerFxn: '&NDK_hookInit', createFxn: '&NDK_hookCreate', });*/
    
    
    /* Enable BIOS Task Scheduler */
    BIOS.taskEnabled            =   true;
    
    
    
    
    
    
    
    /*!
     * File generated by platform wizard. DO NOT MODIFY
     *
     */
    
    metaonly module Platform inherits xdc.platform.IPlatform {
    
        config ti.platforms.generic.Platform.Instance CPU =
            ti.platforms.generic.Platform.create("CPU", {
                clockRate:      850,                                       
                catalogName:    "ti.catalog.c6000",
                deviceName:     "TMS320C6657",
                customMemoryMap:
               [          
                    ["MSMCSRAM", 
                         {
                            name: "MSMCSRAM",
                            base: 0x0c000000,                    
                            len: 0x00100000,                    
                            space: "code/data",
                            access: "RWX",
                         }
                    ],
                    ["L1DSRAM", 
                         {
                            name: "L1DSRAM",
                            base: 0x00F00000,                    
                            len: 0x00080000,                    
                            space: "data",
                            access: "RW",
                         }
                    ],
                    ["L1PSRAM", 
                         {
                            name: "L1PSRAM",
                            base: 0x00E00000,                    
                            len: 0x00080000,                    
                            space: "code",
                            access: "RWX",
                         }
                    ],
                    ["L2SRAM", 
                         {
                            name: "L2SRAM",
                            base: 0x00800000,                    
                            len: 0x000FFF00,                    
                            space: "code/data",
                            access: "RWX",
                         }
                    ],
                    ["DDR3", 
                         {
                            name: "DDR3",
                            base: 0x80000000,                    
                            len: 0x40000000,                    
                            space: "code/data",
                            access: "RWX",
                         }
                    ],
                    ["COMURAM", 
                         {
                            name: "COMURAM",
                            base: 0x008FFF10,                    
                            len: 0x00000030,                    
                            space: "code/data",
                            access: "RWX",
                         }
                    ],
                    ["COMUSTATE_DSP2HST", 
                         {
                            name: "COMUSTATE_DSP2HST",
                            base: 0x008FFF60,                    
                            len: 0x00000004,                    
                            space: "code/data",
                            access: "RWX",
                         }
                    ],
                    ["COMUSTATE_HST2DSP", 
                         {
                            name: "COMUSTATE_HST2DSP",
                            base: 0x008FFF70,                    
                            len: 0x00000004,                    
                            space: "code/data",
                            access: "RWX",
                         }
                    ],
               ],
              l2Mode:"0k",
              l1PMode:"32k",
              l1DMode:"32k",
    
        });
        
    instance :
        
        override config string codeMemory  = "IRAM";   
        override config string dataMemory  = "IRAM";                                
        override config string stackMemory = "IRAM";
        
    }
    

    Thanks,

    Ram.

  • Hi,


    do you have any C6657 or C6678 or C6670 EVM board with you ?
    I have one c6657 evm board with me i havent tested the ethernet communication on it until now. i directly came to my custom board.

    do you think i need to test on the EVM board?

    If we have done in EVM too, you would get some better understanding and you can see the expected behavior.

    BTW, I will check your *.cfg and let me update.

    when i do like evm cfg file my program is not coming to main, i don't know why. i am giving my clien.cfg file and the platform.xdc what i am using.

    I changed the intialization of my custom board to configure the PLLs for different peripherals and i hope it does not have the problem.

    Do you have any other hw changes like RAM size, make etc., ?

    It may cause this behavior due to PLL configurations of DDR.

  • Hi,

    i am also giving my client.c file which i modified, please look into this one, as i changed the stacktest().please look into this function if i need to add some extra things, to run recv.exe under winapps.

    client (2).c

    Thanks,

    Ram.

  • Hi,

    i tested with the EVM board, it works completely fine. And i see the same result as you got, recv.exe is working. but when i use my custom board, when i use the same .cfg file which is  mostly allocated for DDR3. i am not coming to main() function. i think if i am able also run client program with original client.cfg file may be it works.

    do you know why my program is not coming to main()  when i done as below? i am using the same platform also.

    Program.sectMap["emacComm"] = "DDR3";
    Program.sectMap["systemHeap"] = "DDR3";
    Program.sectMap[".switch"] = "DDR3";
    Program.sectMap[".sysmem"] = "DDR3";
    Program.sectMap[".args"] = "DDR3";
    Program.sectMap[".cio"] = "DDR3";
    Program.sectMap[".far"] = "DDR3";
    Program.sectMap[".cinit"] = "DDR3";
    Program.sectMap[".bss"] = "DDR3";
    Program.sectMap[".rodata"] = "DDR3";
    Program.sectMap[".neardata"] = "DDR3";
    Program.sectMap[".const"] = "DDR3";
    Program.sectMap[".text"] = "DDR3";
    Program.sectMap[".code"] = "DDR3";
    Program.sectMap[".data"] = "DDR3";
    Program.sectMap["platform_lib"] = "DDR3";

    Thanks,

    Ram.

  • Hi Stalin,

    The send.exe and recv.exe applications runs continuously, and we have to make manually halt these applications. Is it possible to change the applications to run for example 5 seconds(with limited time)?I  want to use these .exe s to test my customboard, but with limited time.

    Thanks,

    Ram.

  • Yes, we can use windows patch file to set time to run for particular interval and time.
    Search in internet for that.
  • Hi,
    The Ti- EVMC6657 Board supports GBit ethernet port.How can the applications send.exe and recv.exe prove this? 1GBit Ethernet means we have to send 1Gbit data per second. But the application send.exe is sending only some bytes per second not 1Gbit data per second?

    Thanks,

    Regards,
    Ramana.
  • Hi Ramana,
    Please create new post for your new questions since this thread seems to be closed.