最近的调试keil5自带的rtx操作系统时,遇到一个奇怪的问题,望论坛里的大神们帮忙看看!!!
问题如下:
创建两个进程:
进程A,优先级为10
进程B,优先级为3
两个进程都会调用同一个加了锁的函数,函数体简写如下:
void a()
{
os_mut_wait(g_os_uart1,0xFFFF);
......
os_sem_wait(g_os_sem, 0xFFFF);
......
os_mut_release(g_os_uart1);
}
isr_sem_send函数是在串口1的发送中断函数中,数据发送完后,就会send信号量
程序运行一段时间后,会出现如下状况:
进程A,挂死在wait MUT的状态,优先级显示还是5,
进程B,正常运行,优先级显示,从3变成了5
很是奇怪,一直debug不出原因?望大神帮忙解答,多谢多谢!!! |