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.

NDK : fdSelect( ) can not detect activity on 6431!

Dear Sir,

I have Ethernet function in my application, and it works well before.

But when I update a library (This library is a video algorithm for my application, and will be updated from time to time),

my ethernet function doesn't work anymore.

I really can not figure out why the new library cause ethernet's malfunction.

I trace the ethernet code and find out my application stuck in fdSelect( ) api.

fdSelect( ) can not detect any activity.

I check the spec spru523, and it says maybe this error is caused by memory corruption.

But I don't know how to handle the memory corruption error. Why new library cause memory corruption?

Can you help me out? Really appreciate your help!

Best Regards,

 

Eric Fang

 

 

 

  • Hi Eric,

    I am not too familiar with DSP/BIOS or NDK, but I have worked with many operating systems in the past and can hopefully offer some advice.  I can imagine that the DSP image (or executable) which includes NDK is loaded somewhere in memory (RAM), if you have a piece of software (e.g. a library) that does not respect that space and starts overwriting this memory space, things can start to malfunction or even crash the system.  Unfortunately, how you detect this issues is more system and tool specific and I am not all that familair with CCS or DSP/BIOS.  But if you are sure that a specific library is causing this, that would be a good place to start.

  • Hi, Juan,

    I think the data in DRAM is not modified by other tasks.

     

    I did some experiment to observe the Ethernet error.

    When I clear all the data in DRAM to 0 before I run the Ethernet application, the ethernet function can work well.

    If I don't do that, sometime it works, sometime it doesn't work.

    If I set all the data in DRAM to 0xFF before I run the Ethernet application, the ethernet function fail.

    Therefore, I think this is a bug caused by NDK initialization error.

    Some variables in NDK doesn't init well, and it depends on whether NDK "likes" the data in DRAM or not.   

     

    So currently I can only clear the DRAM data to 0 with my boot loader before running Ethernet function.

    Just to share these info with you and thank you for your reply!!

     

    Best Regards,

     

    Eric Fang