FreeRTOS基础六:中断管理1

嵌入式实时系统需要对外界的某个事件做出及时的响应动作。例如串口外设收到了一帧数据后,需要通知数据解析任务,同时还要将数据帧传递给解析任务,完成数据的处理。设计出一种好的策略来完成这个过程时需要考虑以下几个问题:

  • 如何检测事件?中断是主要的事件检测手段,有时候也可以使用轮询法。
  • 当中断发生后,应该将多少处理工作放在中断服务函数(ISR)中,将另外的多少处理工作放在中断函数外(例如main函数)?通常的经验是,在中断服务函数中尽可能做最少的工作,保证中断服务函数能迅速执行完成。
  • 当中断检测到事件发生时,中断函数如何与main函数通信?如何让他们同步起来?

FreeRTOS提供的一些机制能够很好的解决以上问题。

首先我们需要明白一点,FreeRTOS的任务优先级和单片机的中断优先级是不同的,是两个不同层次的概念:

  • 任务以及任务优先级是FreeRTOS抽象出的软件层次的概念,与FreeRTOS应用程序所运行的硬件系统无关。任务优先级的意义和行为由FreeRTOS内核定义和控制。
  • 中断是单片机硬件提供的一种机制,通过对单片机的中断相关寄存器进行设置,来控制中断的响应和处理过程。当中断发生时,中断服务函数(ISR)会打断任何优先级的运行着的任务,无论这个中断的优先级多么低。然而任务在任何情况下都不能打断中断函数的运行。

在中断函数中使用FreeRTOS的API

在FreeRTOS中,许多内核函数都有两个版本,一个是普通版本,另一个是带"FromISR"后缀的版本,也可以叫做“

  • 12
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值