搜索

[STM32] stm32 触发 pendSV 异常中断

[复制链接]
86|4
 楼主 | 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;
}

使用特权

评论回复
| 2020-9-28 15:14 | 显示全部楼层
你用OS了吗?这个一般是用OS任务切换不当的时候才会触发的吧。

使用特权

评论回复
| 2020-9-28 21:11 | 显示全部楼层
这是在做 OS 的准备工作吧,  通常任务用于任务上下文切换时, 使用这个中断

使用特权

评论回复
 楼主 | 2020-9-30 08:22 | 显示全部楼层
airwill 发表于 2020-9-28 21:11
这是在做 OS 的准备工作吧,  通常任务用于任务上下文切换时, 使用这个中断

是的 ,优先级最低

使用特权

评论回复
 楼主 | 2020-9-30 08:22 | 显示全部楼层
xyz549040622 发表于 2020-9-28 15:14
你用OS了吗?这个一般是用OS任务切换不当的时候才会触发的吧。

不是的哦

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /5 下一条

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