打印
[开发工具]

rtx 进程 挂死问题

[复制链接]
1843|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
求进的心|  楼主 | 2019-7-25 23:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近的调试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不出原因?望大神帮忙解答,多谢多谢!!!









使用特权

评论回复
沙发
求进的心|  楼主 | 2019-7-25 23:39 | 只看该作者
顶起!让更多的大神看到

使用特权

评论回复
板凳
戈卫东| | 2019-7-26 07:53 | 只看该作者
互斥体被B拿去了并且一直没有释放

使用特权

评论回复
地板
戈卫东| | 2019-7-26 07:54 | 只看该作者
或者,B因为优先级高并且一直在运行所以A不能进入运行

使用特权

评论回复
5
tyw| | 2019-7-26 09:21 | 只看该作者
少累哈,木油玩过哦,只用汇编

使用特权

评论回复
6
求进的心|  楼主 | 2019-7-26 09:23 | 只看该作者
戈卫东 发表于 2019-7-26 07:54
或者,B因为优先级高并且一直在运行所以A不能进入运行

一开始,B的优先级是比A低的,但出问题之后,B的优先级就变成和A一样了,并且B还能正常运行,但是A挂死了,很是奇怪啊,

使用特权

评论回复
7
求进的心|  楼主 | 2019-7-26 09:27 | 只看该作者
tyw 发表于 2019-7-26 09:21
少累哈,木油玩过哦,只用汇编

版主客气了,感谢您抽空来看,看来大神都是只用汇编的,谢谢谢谢!

使用特权

评论回复
评论
tyw 2019-7-26 10:05 回复TA
以前存储器贵,设计民用产品,只有用汇编,节省每一个bit来提升产品竟争力.工控产品不用考虑这些.随便开销. 
8
ayb_ice| | 2019-7-26 10:15 | 只看该作者
中断只能调用isr_打头的API

使用特权

评论回复
9
求进的心|  楼主 | 2019-7-26 11:00 | 只看该作者
ayb_ice 发表于 2019-7-26 10:15
中断只能调用isr_打头的API

是的,在串口1发送中断函数中,调用的是 isr_sem_send函数,

使用特权

评论回复
10
求进的心|  楼主 | 2019-7-26 11:00 | 只看该作者
有人遇到过类似的问题吗???

使用特权

评论回复
11
求进的心|  楼主 | 2019-7-26 12:14 | 只看该作者
或者有什么好的调试手段推荐不?

使用特权

评论回复
12
ayb_ice| | 2019-7-26 13:08 | 只看该作者
求进的心 发表于 2019-7-26 11:00
是的,在串口1发送中断函数中,调用的是 isr_sem_send函数,

代码太少看不出来什么问题

使用特权

评论回复
13
肥羊| | 2019-7-26 13:28 | 只看该作者
没有JTAG吗看一下停止在什么位置

使用特权

评论回复
14
R2D2| | 2019-7-27 14:58 | 只看该作者
解决了吗???

使用特权

评论回复
15
七颗咖啡豆| | 2019-7-27 20:27 | 只看该作者
rtx比其他有啥优势

使用特权

评论回复
16
whtwhtw| | 2019-7-28 11:10 | 只看该作者
优先级倒挂,需要好好分析原因

使用特权

评论回复
17
磨砂| | 2019-8-15 10:09 | 只看该作者
就是说占用死循环了是吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

153

帖子

1

粉丝