硬汉嵌入式论坛

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

[CMSIS-RTOS] 在RTX5中使用CMSIS-Driver的中断优先级分配

[复制链接]

5

主题

16

回帖

31

积分

新手上路

积分
31
发表于 2020-4-27 09:10:53 | 显示全部楼层 |阅读模式
RTX5内核使用的中断有3个SysTick\SVC\SV,中断优先级配置为lowest,在使用CMSIS-Driver时,查看源码,初始化时只是调用了NVIC_ENABLE的操作,并没有设置中断优先级,请教下在RTX5中外设中断优先级是按需配置吗?还是不需要配置?只设置优先级组?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2020-4-27 10:13:32 | 显示全部楼层
设置NVIC优先级分组为4,其它默认就行。
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2020-4-28 08:41:42 | 显示全部楼层
eric2013 发表于 2020-4-27 10:13
设置NVIC优先级分组为4,其它默认就行。

可以解释下为什么吗?刚从裸机转到RTOS上面来。
是因为中断触发的是线程,然后通过线程的优先级来管理吗?
比如有2个中断,一个电机控制的编码器信号,一个是串口中断,那么在硬件的中断优先级上,应该是编码器信号的优先级更高,设置为抢占优先级1,串口中断的抢占优先级为2,这样编码器信号可以抢占串口的优先级,这个是我在裸机上的做法。转到RTOS上的做法是上什么样子的呢?请硬汉指点一二,不胜感激。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106749
QQ
发表于 2020-4-30 07:57:03 | 显示全部楼层
snibelyh 发表于 2020-4-28 08:41
可以解释下为什么吗?刚从裸机转到RTOS上面来。
是因为中断触发的是线程,然后通过线程的优先级来管理吗 ...

分配为优先级分组4后,只有抢占优先级,范围是0-15.

系统中断SVC,PendSV,Systick一般是占据14和15,其它的0到13,程序里面随意使用,跟裸机一样。
回复

使用道具 举报

5

主题

16

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2020-4-30 17:50:33 | 显示全部楼层
eric2013 发表于 2020-4-30 07:57
分配为优先级分组4后,只有抢占优先级,范围是0-15.

系统中断SVC,PendSV,Systick一般是占据14和15, ...

明白了,多谢硬汉
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 02:26 , Processed in 0.185230 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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