1.FreeRTOS操作系统简介

1.1  FreeRTOS是什么?

操作系统(operation system,简称OS):是管理计算机硬件软件资源的计算机程序。

实时操作系统(Real Time Operating System,简称RTOS):是指当外界时间或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实施任务,并控制所有实时任务协调一致运行的操作系统。快速响应高可靠性是主要特点。

FreeRTOS:是RTOS系统中的一种(UCOS,TRX,RT-Thread),FreeRTOS十分的小巧,可以在资源有限的微控制器中运行。

特点:

  1. FreeRTOS的内核支持抢占式合作式时间片调度
  2. 提供了一个用于低功耗的Tickless模式
  3. 系统的组件在创建时可以选择动态或静态的RAM,比如任务消息队列信号量软件定时器等等
  4. 系统简单小巧易用,通常情况下内核占用4k-9k字节的空间
  5. 高可移植性,代码主要C语言编写
  6. 任务与任务、任务与中断之间可用使用任务通知消息队列二值信号量数值型信号量、递归互斥信号量和互斥信号量进行通信和同步

1.2  操作系统怎么实现?

操作系统允许多个任务同时执行,而实际上,一个处理器核心在同一时间内只能运行一个任务。其中,通过任务调度器来决定同意时刻究竟运行了哪个任务。任务调度在各个任务之间切换非常快,给人造成同个时刻多个任务运行的错觉。

eg:一个人边和A聊天,边和B聊天。

 结果:如果t1和t2的时间足够并切换足够快。A会觉得你一直和他在聊天,B会觉得你一直在和他下棋。

1.3  FreeRTOS基础知识

1.3.1  FreeRTOS任务特性

  1. 简单
  2. 没有使用限制
  3. 支持抢占
  4. 支持优先级
  5. 每个任务都拥有堆栈导致了 RAM 使用量增大。
  6. 如果使用抢占的话的必须仔细的考虑重入的问题

1.3.2  FreeRTOS四种任务状态

  1. 运行态:程序正在运行的任务
  2. 就绪态:所有东西都准备好了,就等待CPU来调用它
  3. 阻塞态:可能在等待锁或信号量,获取后就能进入就绪态
  4. 挂起态:离CPU执行最远

1.3.3  FreeRTOS任务优先级

范围:0 ~ configMAX_PRIORITIES-1

数字越大,优先级别越高

1.3.4  FreeRTOS任务实现

void vATaskFunction(void *pvParameters)          
{
    for(;;)
    {
        //任务执行程序
        vTaskDelay();
    }
}

 1.3.5  任务控制块

定义:任务控制块(TCB_t):描述任务属性的数据结构

typedef struct tskTaskControlBlock
{
       volatile StackType_t	*pxTopOfStack;	 
       #if ( portUSING_MPU_WRAPPERS == 1 )
	 xMPU_SETTINGS	xMPUSettings;		
      #endif

     ListItem_t			xStateListItem;
     ListItem_t			xEventListItem;	
     UBaseType_t			uxPriority;	
     ………
}  tskTCB;  

typedef tskTCB TCB_t;  

1.3.6  任务堆栈

定义:任务堆栈用来保存任务现场(CPU寄存器值),创建任务的时候需要指定任务堆栈,任务堆栈的变量类型为StackType_t

#define portSTACK_TYPE uint32_t
#define portBASE_TYPE long
typedef portSTACK_TYPE StackType_t; 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值