打印
[STM32F1]

rtx 进程 挂死问题

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

使用特权

评论回复
沙发
stly| | 2021-7-3 19:31 | 只看该作者
互斥体被B拿去了并且一直没有释放

使用特权

评论回复
板凳
pengf| | 2021-7-4 09:37 | 只看该作者
或者,B因为优先级高并且一直在运行所以A不能进入运行

使用特权

评论回复
地板
pengf| | 2021-7-4 09:43 | 只看该作者
少累哈,木油玩过哦,只用汇编

使用特权

评论回复
5
jiajs|  楼主 | 2021-7-4 09:44 | 只看该作者
一开始,B的优先级是比A低的,但出问题之后,B的优先级就变成和A一样了,并且B还能正常运行,但是A挂死了,很是奇怪啊,

使用特权

评论回复
6
zhenykun| | 2021-7-4 09:47 | 只看该作者

中断只能调用isr_打头的API

使用特权

评论回复
7
jiajs|  楼主 | 2021-7-4 09:49 | 只看该作者
是的,在串口1发送中断函数中,调用的是 isr_sem_send函数,

使用特权

评论回复
8
jiajs|  楼主 | 2021-7-4 09:51 | 只看该作者

有人遇到过类似的问题吗???

使用特权

评论回复
9
jiajs|  楼主 | 2021-7-4 09:54 | 只看该作者
或者有什么好的调试手段推荐不?

使用特权

评论回复
10
zwll| | 2021-7-4 09:58 | 只看该作者
代码太少看不出来什么问题

使用特权

评论回复
11
stly| | 2021-7-4 10:00 | 只看该作者
没有JTAG吗看一下停止在什么位置

使用特权

评论回复
12
xxrs| | 2021-7-4 10:04 | 只看该作者
解决了吗???

使用特权

评论回复
13
spark周| | 2021-7-4 10:06 | 只看该作者
rtx比其他有啥优势

使用特权

评论回复
14
yszong| | 2021-7-4 10:11 | 只看该作者
优先级倒挂,需要好好分析原因

使用特权

评论回复
15
stly| | 2021-7-4 10:14 | 只看该作者
就是说占用死循环了是吗

使用特权

评论回复
16
jiajs|  楼主 | 2021-7-4 10:17 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

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

本版积分规则

940

主题

11975

帖子

6

粉丝