Thank you for your answer. There are still points unclear to me.
First, as you say, By not calling Ipc_stop() on the DSP side, you will get that "Ipc_stop() not called by slave" warning. So does it mean that when the DSP program is compiled, the compiler will check if the program can successfully run to Ipc_stop()? If not, then how the OMAP judge that Ipc_stop() is not called. I think all the instances is running in real time, so how OMAP can ensure that Ipc_stop will not be called later?
Second, if I will continue using IPC in another function which only execute when get specific messages from ARM. Then should I call Ipc_stop() at the end of the current function? If I don't have to, I believe I will get the warning. Will it influence the program's running? ( As you say After the timeout, the Arm side will continue on, unmapping the slave's shared memory regions. Does it mean that after warning, ARM will still delete IPC? ) If I have to, then in THE another function mentioned above, should I configure the IPC again on DSP ?
I am looking forward to your answer. Thank you.