求助Systick优先级!?

[复制链接]
2228|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 | 显示全部楼层
 楼主| 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

主题

617

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部