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.

PASS & EMAC INITIALIZATION in helloWorld

Hello,

I am using CCS 5.2 along with MCSDK 2_00_09_21 and NDK 2_21_00_32 on a EVM C6670. I am trying to understand the helloWorld_ndk example and during the init phase the following msgs are printed on the console:

[C66xx_0] PASS successfully initialized
[C66xx_0] Ethernet subsystem successfully initialized
[C66xx_0] Ethernet eventId : 48 and vectId (Interrupt) : 7
[C66xx_0] Registration of the EMAC Successful, waiting for link up ..

Now, when I go through the code I couldn't find the fxn which does the init of the PASS and the EMAC and then prints out the above msgs! It is done after NC_Netstart() is executed and before jumping into NetworkOpen() callack fxn.

Thx in advance!

BR

Burak

  • Burak,

    Those are from NUMU driver: pdk_C6670_x_x_x_x\packages\ti\transport\ndk\nimu\src\nimu_eth.c

    Regards, Eric

  • And where in the "helloWorld_NDK" Example are they called? I performed a search in the project folder with no result...

    I've also setup a custom ndk example using the TI examples. When NC_NetStart is executed I don't get such console msgs. I ask these questions because in my custom example it comes until connect( SOCKET, ......) and hangs there. I was assuming that the ethernet subsystem wasn't correctly initialized.

    BR,

    Burak

  • I searched in the src files a little bit. So:

    NC_Netstart calls NIMUInit, NIMUInit calls through a function table EmacInit, EmacInit calls EMACInit_Core and finally EMACInit_Core calls all the init functions such as init_PASS etc.

    Ok, but the question still remains why in my custom project this above stated chain doesn't happen although I call also NC_NetStart???

    BR

    Burak

  • Since you knew the call trace, can you check your .map file if those functions are in the memory map? If yes, then in the disambly window you can set break point to see if functions hit or not.

    Regards, Eric

  • Hi Eric,

    now that I've included the "ti.transport.ndk.nimu.ae66" lib the function is hit. However, compared to the "helloworld_ndk" example, the EMACInit_Core function is executed more than once (in helloWorld_ndk is once and then it jumps to the NetworkStart callback function. So, the first time EMACInit_Core is executed no error/warn msgs are printed out, in the second time I get:

    [C66xx_0] WARNING: Boot thread has not completed!

    then the third time EMACInit_Core is called, I get:

    [C66xx_0] 00000.000 mmFree: Double Free
    [C66xx_0] 00000.000 mmFree: Double Free
    [C66xx_0] 00000.000 NodeTreeFree: Null endpoints
    [C66xx_0] 00000.000 mmFree: Double Free
    [C66xx_0] 00000.000 mmFree: Double Free
    [C66xx_0]  
    [C66xx_0]    0:48              0:96              0:128             0:256           
    [C66xx_0]    1:512  ( 16%)     0:1536            0:3072          
    [C66xx_0] (3072/0 mmAlloc: 18/0/11, mmBulk: 0/0/0)
    [C66xx_0]

     At the end it hangs in the idle routine of BIOS. And also the NetworkStart callback function is also never executed. What I dont understand why the EMACInit_Core is called multiple times, I've read through netctrl.c and couldn't find any loop or a routine which could perform this!!! My custom ndk project is almost a copy-paste of the helloWorld_ndk example with a difference that not the Daemon UDP send function is executed after everything is initialized.

    BR

    Burak

  • have you solve the problem? I'm facing the same problem with yours. after the Networkopen, it can't execute the dtask _udp_hello. can you help me?
  • Hello,

    Could you please create a new thread stating your issues ? This would get better attention rather following it in old thread.

    Regards,
    Senthil