硬汉嵌入式论坛

 找回密码
 立即注册
查看: 943|回复: 8
收起左侧

[μCOS-III] 为什么在中断中调POST会进hardfault?,加了中断保护之后就不会了。

[复制链接]

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2024-10-11 22:50:42 | 显示全部楼层 |阅读模式
如题,最近在用ucos-iii,版本3.04,尝试在一个串口中断里面Post事件标志,进hardfault。在中断里加上OSIntEnter和OSIntExit之后正常。

post这种不阻塞的api在中断中调用也会出问题吗?求解答。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2024-10-11 22:54:30 | 显示全部楼层
请问OSIntEnter和OSIntExit的作用是什么,在中断中调用os的api就一定要加吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2024-10-12 09:37:34 | 显示全部楼层
Icathia_7 发表于 2024-10-11 22:54
请问OSIntEnter和OSIntExit的作用是什么,在中断中调用os的api就一定要加吗?

中断里面调用了uCOS的API了,要加OSIntEnter和OSIntExit,没有调用可以不加。

这个本意是保证退出到最后一级中断后,再执行中断级任务切换。
回复

使用道具 举报

6

主题

306

回帖

324

积分

高级会员

积分
324
发表于 2024-10-12 10:15:51 | 显示全部楼层
ucos里如果在中断里执行了相关OS操作则需要加进入和退出调用,像rt-thread就不用这么麻烦。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2024-10-12 10:20:36 | 显示全部楼层
今天发现HAL_Init函数修改了PendSV的优先级,先前的优先级是0,改成15后,调用post的中断里去掉OSIntEnter和OSIntExit后也能正常运行了。
回复

使用道具 举报

78

主题

278

回帖

512

积分

金牌会员

积分
512
发表于 2024-10-12 12:26:30 来自手机 | 显示全部楼层
Icathia_7 发表于 2024-10-12 10:20
今天发现HAL_Init函数修改了PendSV的优先级,先前的优先级是0,改成15后,调用post的中断里去掉OSIntEnter ...

我也搞不清楚OsIntEnter这个为什么有时候加了行,有时候不加也行
回复

使用道具 举报

5

主题

53

回帖

68

积分

初级会员

积分
68
发表于 2024-10-12 13:58:02 | 显示全部楼层
取决于你的中断任务有没有在执行的时候被高级中断打断.
回复

使用道具 举报

10

主题

10

回帖

40

积分

新手上路

积分
40
发表于 2024-10-12 16:29:07 | 显示全部楼层
fxyc87 发表于 2024-10-12 10:15
ucos里如果在中断里执行了相关OS操作则需要加进入和退出调用,像rt-thread就不用这么麻烦。

rt-thread也要的吧?难道我用的rt-thread不是最新版本么?rt_interrupt_enter和rt_interrupt_leave这两个接口
回复

使用道具 举报

21

主题

481

回帖

544

积分

金牌会员

积分
544
发表于 2024-10-12 21:42:09 | 显示全部楼层
建议:
1. ucos III使用v3.08.xx版本
2. 系统中断优先级设置为16个优先级(即不分组),编号按ucos III默认即可
3. 5~14优先级编号中断的Handler里加OSIntEnter和OSIntExit(即便没用到啥系统服务的也要加),注意:中断优先级编号0~3的不要加(也不能用系统服务等OS相关)
切记:
学习的过程,首先要know how,然后才是know why
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-13 02:48 , Processed in 0.043339 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表