打印

求助Systick优先级!?

[复制链接]
1731|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
efen|  楼主 | 2013-9-21 13:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在实在是搞糊涂了,Systick优先级究竟是怎样设置的
    NVIC_SetPriority(SysTick_IRQn, n);   网上说这就是设置优先级的了,问题是这与优先级组prigroup[]有啥关系??这里既没说抢占优先级和响应优先级,而且说Systick默认设置是最低优先级,这句从哪判断出来呢?
而且 内核的中断有没有抢占优先级和响应优先级之分呢
沙发
airwill| | 2013-9-22 10:00 | 只看该作者
呵呵, NVIC_SetPriority() 是在内核里定义的函数. 用于设置 SHP/IP 的值.

这与优先级组prigroup[]有啥关系?  看函数本身和 优先级没有关系. 没有抢占优先级和响应优先级的区分. 但是抢占优先级和响应优先级其实是 SHP/IP 里的一部分. 所以设置的 n 已经包含了抢占优先级和响应优先级, 至于这个 n 里面, 哪是抢占优先级, 哪是响应优先级?  就看你 Prigroup 的设置了

使用特权

评论回复
板凳
outstanding| | 2013-9-22 13:10 | 只看该作者

使用特权

评论回复
地板
jemy00| | 2013-9-22 15:25 | 只看该作者

使用特权

评论回复
5
efen|  楼主 | 2013-9-27 15:15 | 只看该作者
搞懂了,如版主说的 抢占优先级和响应优先级其实是SCB->SHP,NVIC->IP里的一部分(4bit)
设置Prigroup来画分这4bit,  抢占优先级与响应优先级
static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) ,这个priority虽然是 uint32_t,但实际上Prigroup的4bit只有
0x00-0x0F,最大16种优先级响应
所以如 NVIC_SetPriority(SysTick_IRQn,0x0F),就可设置SysTick最低 抢占+响应优先级

使用特权

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

本版积分规则

个人签名:得之坦然,失之淡然,争其必然,顺其自然。

51

主题

616

帖子

1

粉丝