硬汉嵌入式论坛

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

[CMSIS-RTOS] RTX系统pendsv,svc,tick中断优先级设置

[复制链接]

4

主题

8

回帖

20

积分

新手上路

积分
20
发表于 2017-7-29 11:18:05 | 显示全部楼层 |阅读模式
看到有所svc的抢占优先级必须大于pendsv和tick,如果stm32设置优先级分组为2,svc=0xE0,pensv=tick=0xF0,抢占优先级一样,响应优先级不一致会导致什么样的后果。。现场程序偶尔出现handFault中断,是不是优先级设置不对,程序切换时导致程序跑飞?如该文章所述:http://blog.sina.com.cn/s/blog_908da74601011zq8.html
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2017-7-29 11:30:06 | 显示全部楼层
设置nvic中断优先级的代码放在os初始化之前,os自动会把svc的优先级设置到高于pendsv,systick
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2017-7-29 12:21:17 | 显示全部楼层
main函数进来就直接调用os_sys_init (Task_Init);  在task_init任务中只设置了中断分组为2,对应三个优先级如上述,这样有问题吗?
1501301770(1).png
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2017-7-29 13:14:21 | 显示全部楼层

回 开心就好 的帖子

开心就好:main函数进来就直接调用os_sys_init (Task_Init);  在task_init任务中只设置了中断分组为2,对应三个优先级如上述,这样有问题吗? (2017-07-29 12:21) 
不要在任务里设置中断分组,在os_sys_init 之前设置这个分组即可

你用的不是cmsis-rtx吧,这个我不知道怎么处理
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2017-7-29 14:35:39 | 显示全部楼层
是吧,keil自带的RTX啊,难道不是一样吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2017-7-30 15:23:05 | 显示全部楼层

回 开心就好 的帖子

开心就好:是吧,keil自带的RTX啊,难道不是一样吗? (2017-07-29 14:35) 
进入MDK5之后,已经添加了封装层CMSIS-RTOS。
回复

使用道具 举报

3

主题

7

回帖

16

积分

新手上路

积分
16
发表于 2017-7-31 15:03:53 | 显示全部楼层
有用RTOS2吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 20:59 , Processed in 0.261094 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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