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.

how to cleanup DSPLINK globals after DSP-side hang and close

Other Parts Discussed in Thread: OMAP-L138

Hallow!

i try to debug on OMAP-L138 platform DSPBIOS app on DSPcore: used linux 2.6 , dsplink1.65, dspbios5.42

all ok, but after dsp-side fail i breaking linux-host-side, and after it restarting my app fails with error 0x8050 (DSP_EALREADYEXISTS) from DSPLink.

look like DSPLink think that DSP-side alredy run and used required MSGQ before load dsp-code (before PROC_load call)

is there any capability to carefuly cleanup DSPLink globals after PROC_stop, PROC_detach, PROC_destroy?

  • You need to remove the dsplinkk.ko module and reinstall it:
        % rmmod dsplinkk
        % insmod dsplinkk.ko

    Regards,

    - Rob

  • it`s brutal method.

    if hangs only one core of some, then i should break all cores< reinstall dsplink, and full startup all system.

    it is only way? any other suggesstions?

  • If your application has already exited then rmmod is the only way.

    How are you "breaking" the linux host side app?

    DSPLINK has some signal handlers for cleaning up.  Take a look in:
        <dsplink>/dsplink/gpp/src/api/Linux/drv_api.c
    There you will see DSPLINK_atExitHandler().  This is intended to be a template for a user to install their own handler, and without a user handler it will do some "generic" cleanup (which assumes just processor ID 0 is loaded).  I'm not sure if you have this handler in use in your app, since it can be disabled (and needs to be disabled for the user to install their own).

    Please look into installing your own handler that "unrolls" the DSPLINK setup that your app does.

    Regards,

    - Rob