FreeRTOS指南 -- 基础知识

 裸机 / OS

        裸机编程:单任务系统的方式,框架是在main( )函数中循环的处理,实时性差,在大循环中再紧急的函数没轮到只能等着,虽然在中断中处理一些紧急任务,但是在大型嵌入式系统中,这样的单任务系统就会显得力不从心。

        多任务系统:在多任务系统中,相同优先级的任务各自运行一段及短的时间(时间片调度),高优先级的任务可以抢占低优先级的任务的CPU控制权(抢占式调度),有了优先级的多任务系统,用户可以将紧急事务放在优先级高的地方,大大提高了任务响应的实时性。

任务状态

        运行态:正在运行的任务的状态;

        就绪态:任务已经可以执行,但是还没有获得CPU使用权;

        阻塞态:任务在等待delayTime或者等待信号量/事件组.....造成任务无法运行的状态

        挂起态:通过vTaskSUspend( )函数挂起的函数,无法运行;

具体概念在这里不详细阐述。

任务优先级

        任务优先级被分为 0 ~ configMAX_PRIORITIES-1 定义在FreeRTOSConfig.h中,在STM32中的硬件计算前导指令中,最大支持32位数,所以使用硬件计算下一个任务的情况下configMAX_PRIORITIES最大为31。

        需要注意的是,在RTOS中优先级的规则是数字越小的优先级越低,即 0 是最低的优先级,这与常见的中断优先级规则相反。

任务调度方式

        FREERTOS支持的调度方式有:抢占式调度、时间片调度、协程式调度。

        协程式调度已不再开发。

        抢占式调度主要针对不同优先级的任务。

        时间片调度主要针对同优先级的任务。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值