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.

what‘s meaning of SEM: post _TSK_mutex?

Hi.

My env is DM6467T + CCS4.1 + DSP/BIOS 5.41 + XDAIS 6.25 + codec_engine_2_10_01+ dm6467_h264dec_1_10_05_03_production + dm6467_hdvicp_1_01_020_production.

I create a simple project in ccs4.1with DSP/BIOS 5.41 for run the h264decode function use the HDVICP of DM6467T.

But when i decode one frame i found that the CLK_F_isr() function cannot be called (when i don't call the decode function the CLK_F_isr() can be called). So all the timeout function of DSP/BIOS API don't have effect, such as TSK_sleep(10) and so on. In the ROV of DSP/BIOS 5.41, I found the message "SEM: post _TSK_mutex"  in LOG_system modules. So my question is what's the meaning of SEM: post _TSK_mutex, and why the CLK_F_isr() can not be called(that means  system clock cannot drived by the Timer0 or Timer1 in DM6467T)?

I found that  have post some info about the TSK_mutex (http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/115/p/53363/759179.aspx) , but i want to know the details.

Thanks.

Shao.

  • The runtime support libraries provided by the compiler tools have 'lock' and 'unlock' hook functions that are called within some of the library APIs to protect against re-entrancy issues.

    These hook functions are there so that the user can insert application-specific functions that ensure thread safety.

    BIOS installs its own "lock" and "unlock" functions that utilize an internal SEM object called "_TSK_mutex" to ensure thread safety.

    The lock function calls SEM_pend(_TSK_mutex, SYS_FOREVER) and the unlock function calls SEM_post(_TSK_mutex).

    Each time a runtime support library API that utilizes the lock and unlock feature is invoked, you will see a corresponding SEM_pend() and SEM_post() log entry.

    Alan

  • Thanks for your replay.

    I don't use the SEM_post(_TSK_mutex) in my program, so i guess the SEM_post(_tsk_mutex) called by the lib in my program. I use the HDVICP lib to decode H264 stream in dm6467t. I want to know how to stop the SEM_post(_TSK_mutex), because i don't know which function run SEM_post(_TSK_mutex). You can found in the last post pic that there is not CLK info in my task, that means the TIMER0 of system lost effect, and the timeout of DSP/BIOS API lost effect.

    Thanks.

  • I believe that the calls to SEM_post() in your application are coming from an IDL function that periodically invokes C library functions for performing HOST I/O to exchange RTA data between CCS and the target processor.

    This IDL function is part of the target/host logging mechanism which drives the LOG module ROV view you show in your post.

    The C library function calls the lock() and unlock() APIs I described above.

    Apparently only the SEM_post() call is being logged.

    Alan

  • Thank you for your replays.

    You are correct, I found the SEM_post send by the RTA module.

    Thanks a lot.