[STM32] stm32 触发 pendSV 异常中断

[复制链接]
 楼主| 一路向北lm 发表于 2020-9-28 09:24 | 显示全部楼层 |阅读模式
#define  NVIC_INT_CTRL    0xE000ED04    //系统控制状态寄存器
#define  NVIC_SYSPRI2     0xE000ED20    //系统优先级寄存器2
#define  NVIC_PENDSV_PRI  0x000000FF    //PendSV优先级设置为最低
#define  NVIC_PENDSV_SET  0x10000000    //触发PendSV的值

// PendSV异常
void ProductPendSV()
{
   *(volatile unsigned long *)NVIC_SYSPRI2 = NVIC_PENDSV_PRI;
   *(volatile unsigned long *)NVIC_INT_CTRL = NVIC_PENDSV_SET;
}

xyz549040622 发表于 2020-9-28 15:14 来自手机 | 显示全部楼层
你用OS了吗?这个一般是用OS任务切换不当的时候才会触发的吧。
airwill 发表于 2020-9-28 21:11 | 显示全部楼层
这是在做 OS 的准备工作吧,  通常任务用于任务上下文切换时, 使用这个中断
 楼主| 一路向北lm 发表于 2020-9-30 08:22 | 显示全部楼层
airwill 发表于 2020-9-28 21:11
这是在做 OS 的准备工作吧,  通常任务用于任务上下文切换时, 使用这个中断

是的 ,优先级最低
 楼主| 一路向北lm 发表于 2020-9-30 08:22 | 显示全部楼层
xyz549040622 发表于 2020-9-28 15:14
你用OS了吗?这个一般是用OS任务切换不当的时候才会触发的吧。

不是的哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

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