FreeRTOS 和裸机的区别


01 FreeRTOS 简介

什么是FreeRTOS?

特点:实时性、可移植性、可扩展性

架构:内核、任务、调度器、通信机制

什么是裸机?

特点:无操作系统、直接操作硬件

缺点:缺乏任务调度、难以管理多任务

02 FreeRTOS 和裸机的区别

多任务管理 FreeRTOS 裸机
提供任务调度器 无任务调度器
可以创建多个任务 只能顺序执行任务
通过时间片轮转算法进行任务切换 需要手动切换任务
系统资源管理 FreeRTOS 裸机
提供给内存管理 需要手动管理内存
提供任务间通信机制 需要自行实现任务间通信
可以动态创建和删除任务 无法动态创建和删除任务
可移植性和可扩展性 FreeRTOS 裸机
可以在不同的硬件平台上运行、提供丰富的API和配置选项 需要根据硬件平台进行适配、功能受限于硬件平台

03 Cubemx 简介

特点:图形化界面、自动生成代码、支持多种 MCU

创建RTOS工程

步骤:

  1. 打开 Cubemx
  2. 选择 MCU 型号
  3. 配置系统时钟
  4. 配置 RTOS 参数
  5. 生成代码

04 多任务体验

  • 创建任务

    • 定义任务函数

      • 任务函数的参数和返回值任务函数的实现
    • 创建任务
      • 使用 FreeRTOS 提供的 API 创建任务设置任务的优先级和堆栈大小
  • 任务调度
    • 时间轮转算法

      • 任务按照优先级顺序执行,每个任务执行一段时间后却换到下一个任务
    • 任务切换
      • 任务切换的实际、任务切换的开销
  • 任务间通信
    • 信号量

      • 用于任务同步和互斥、通过信号量实现任务间的资源共享
    • 队列
      • 用于任务间的消息传递、通过队列实现任务间的数据交换
  • 动态创建和删除任务
    • 创建任务

      • 使用 FreeRTOS 提供的 API 动态创建任务设置任务的优先级和和堆大小
    • 删除任务
      • 使用 FreeRTOS 提供的 API 删除任务释放任务占用的资源

FreeRTOS 和裸机的区别的更多相关文章

  1. freeRTOS与裸机程序相比有什么区别??

    FreeRTOS命名及变量规则 初学FreeRTOS的用户对其变量和函数的命名比较迷惑,    FreeRTOS的核心源代码遵从MISRA编码标准指南,关于MISRA编码标准,可以查看文章https: ...

  2. FreeRTOS学习目录

    1.关于实时操作系统的一些概念性问题 2.freeRTOS与裸机程序相比有什么区别?? 3.freeRTOSConfig.h文件对FreeRTOS进行系统配置 4.FreeRTOS的内存管理

  3. FreeRTOS+CubeMX编程实践

    一.关于FreeRTOS 1.什么是FreeRTOS? FreeRTOS是一个轻量级的操作系统.FreeRTOS提供的功能包括:任务管理.时间管理.信号量.消息队列.内存管理.记录功能等,可基本满足较 ...

  4. FreeRTOS和Ucos在任务优先级的区别

    而ucos的任务优先级是任务优先级的数组越小,任务优先级越高.和STM32的中断优先级保持一样的分析,和freeRTOS相反.

  5. freertos内存pvPortMalloc 和 malloc 区别 ,以及全局变量占用情况

    1.FreeRtos占用内存 #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 30 * 1024 ) ) pvPortMalloc是从configTOTAL_ ...

  6. FreeRTOS和Ucos在打开关闭中断的区别

  7. FreeRTOS 事件标志组

    以下转载自安富莱电子: http://forum.armfly.com/forum.php 为什么要使用事件标志事件标志组是实现多任务同步的有效机制之一.也许有不理解的初学者会问采用事件标志组多麻烦, ...

  8. FreeRTOS 二值信号量,互斥信号量,递归互斥信号量

    以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节讲解 FreeRTOS 任务间的同步和资源共享机制,二值信号量. 二值信号量是计数信号量的一种特殊形式 ...

  9. FreeRTOS 计数信号量

    以下转载自安富莱电子: http://forum.armfly.com/forum.php 本章节开始讲解 FreeRTOS 任务间的同步和资源共享机制,计数信号量. FreeRTOS 中计数信号量的 ...

  10. FreeRTOS 消息队列

    以下基础内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 FreeRTOS 的一个重要的通信机制----消息队列,初学者要熟练掌握,因为消息 ...

随机推荐

  1. docker 对容器中的文件进行编辑

    用途 有一些情况下,例如docker安装的redis.nacos.mysql等等,在docker容器中的安装未进行文件的映射,当需要对其进行更改配置信息时,就会遇到这种情况,需要去容器中进行编辑配置文 ...

  2. 【TVM模型编译】2. relay算子构造.md

    从TVM的官方Tutorial里面,介绍了如何新增自定义算子.(这是我翻译的) 之前的文章讲到了onnx 算子转换到Relay IR的过程 下面以Conv2d算子介绍,编译过程中 Relay IR是如 ...

  3. 前端vue uni-app百度地图定位组件,显示地图定位,标记点,并显示详细地址

    快速实现前端百度地图定位组件,显示地图定位,标记点,并显示详细地址; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12677 ...

  4. 1. SpringMVC 简介

    1. 什么是 MVC ‍ MVC是一种软件架构的思想,将软件按照模型.视图.控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 ‍ JavaBean分为两类: 一类称为实 ...

  5. 自动化SQL注入工具——Sqlmap

    Sqlmap – 简介 Sqlmap是一个自动化检测和利用SQL注入漏洞的免费开源工具 1.支持对多种数据库进行注入测试,能够自动识别数据库类型并注入 2.支持多种注入技术,并且能够自动探测使用合适的 ...

  6. 【调制解调】PM 调相

    说明 学习数字信号处理算法时整理的学习笔记.同系列文章目录可见 <DSP 学习之路>目录,代码已上传到 Github - ModulationAndDemodulation.本篇介绍 PM ...

  7. Bug_ku source (WEB) wp

    在源代码中注释中发现了flag,提交发现是假的. 我们打开kali用dirserch扫描一下网站后台目录吧 发现.git ,这题应该是一个git泄露的题,用wget吧文件下载到本地,-r 选项的作用是 ...

  8. windows传输文件到linux

    PFSTP 打开该软件,在安装putty自带的 连接服务器 open 192.168.142.131 按提示输入账户密码 传送文件 put C:\Users\13662\nifi-1.13.2-bin ...

  9. webpack配置文件的分离

    配置文件的分离 目的就是让开发环境, 生产环境,测试环境的配置分隔开 步骤一: 在项目根目录下创建一个 build 文件夹专门用来存放配置文件,再创建三个js文件, base.config.js 文件 ...

  10. Django: 'block' tag with name 'header' appears more than once

    错误原因 在同一文件中,重复引用标签多次 解决方案: 删掉重复的标签即可.