FreeRTOS笔记(一)简介

2023-11-14

这个笔记主要依据韦东山freertos快速入门系列记录,感谢韦东山老师的总结。

什么是实时操作系统?

操作系统是一个控制程序,负责协调分配计算资源和内存资源给不同的应用程序使用,并防止系统出现故障。

操作系统通过一个调度算法和内存管理算法尽可能把资源公平且有效率地分配给不同的程序。

应用程序通过调用操作系统提供的API接口获得相应资源完成指定的任务。

一个通用操作系统提供的主要功能有:

  • 任务(应用程序)的调度管理
  • 堆栈和内存管理
  • 文件管理
  • 队列管理
  • 中断和定时器管理
  • 资源管理
  • 输入输出管理

实时性的含义

实时操作系统(RTOS-Real Time Operating System)中实时(Real Time)指的是任务(Task)或者说实现一个功能的线程(Thread)必须在给定的时间(Deadline)内完成。

一个实时操作系统能尽力保障每个任务能在一个已知的最大运行时间(Maximum Response Time)内完成,包括

  • 对中断和内部异常的处理
  • 对安全相关的事件的处理
  • 任务调度机制等

FreeRTOS

FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。

由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。

FreeRTOS的特性

  • 具有抢占式或者合作式的实时操作系统内核
  • 功能可裁剪,最小占用10kB左右rom空间,0.5kB ram空间
  • 具有低功耗模式
  • 有互斥锁、信号量、消息队列等功能
  • 运行过程可追踪

freeRTOS自带的两个数据类型

BaseType_t是最高效的返回值

变量名前缀规范

在freertos中有变量命名的常用规范:

文件系统

  1. 文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。
  2. 文件系统中也要有索引区,用来方便查找一个文件分成的多个块都存放在了什么位置。
  3. 如果文件系统中有的文件是热点文件,近期经常被读取和写入,文件系统应该有缓存层。
  4. 文件应该用文件夹的形式组织起来,方便管理和查询。
  5. Linux 内核要在自己的内存里面维护一套数据结构,来保存哪些文件被哪些进程打开和使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FreeRTOS笔记(一)简介 的相关文章

  • web前端模块化框架,一句代码让html可直接引入别的html文件

    web前端模块化框架 介绍 一个web前端模块化框架 可以引入模板html文件 利于前后端分离的网站重复代码以及模块的复用 软件架构 本框架是利用mloader js文件加载带有mloader template的类的标签从而进行的文档的动态
  • 基于Keil创建汇编语言的STM32工程

    本文是在Keil嵌入式开发环境下完成一个基于STM32汇编程序的编写 学习在没有硬件条件下进行仿真调试 观察ARM寄存器的变化状况 记录过程生成的 hex文件各段的大小 了解Hex文件格式及其前8个字节内容含义 文章目录 一 新建工程 二
  • 建立双机调试

    1 首先你得有一个VMware 我这里是VM10 主机是64windows操作系统 2 我在虚拟机中装了32 位win7 3 下载 VirtualKD 我预先放在百度云盘的资源 https pan baidu com s 1eRD4AR4
  • C# 系统应用之无标题窗体移动的两种方法

    在做项目界面设计中 常常为了美观需要设置窗体属性 FormBorderStyle 窗体边框和标题栏外观 为None无标题窗口 此时隐藏标题的窗口怎样实现移动呢 我根据自己的项目从自己完成的两种方法进行讲解 一 MouseDown Mouse
  • TypeScript的类型推导

    TypeScript 简称ts 是一种静态类型的编程语言 在类型检查和类型推导方面具有一定的优势 类型推导是TypeScript在代码编写的过程中自动识别并设置变量类型 从而提高代码的可读性和健壮性 减少了代码中潜在的错误 在 TypeSc
  • 编译原理实验一:词法分析

    实验一 词法分析程序 一 实验目的 通过设计编制调试一个具体的词法分析程序 加深对词法分析原理的理解 并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法 编制一个读单词过程 从输入的源程序中 识别出各个具有独立意义的
  • 网络入门基础(网络布线)

    目录 前言 一 布线系统 1 工作区子系统 2 水平子系统 3 垂直子系统 4 管理子系统 5 设备间子系统 6 建筑群子系统 二 布线材料 1 线槽 2 桥架 走线架 3 配线架 三 网络机柜 四 网络布线 1 需求分析与走线设计 2 估

随机推荐

  • STM32F1之485通信

    485与PC通信 准备工作 首先我们需要准备的工具是一根USB 485转接数据线 STM32F103单片机 也可以是其他单片机 思想思路类似 两根公对公杜邦线 为了让板子和转接口连接 连线工作本人用的485转接器是T R 接F103单片机B
  • zookeeper启动报错:-bash: zkServer.sh: command not found

    zkServer sh command not found 明明已经进入了zookeeper的安装目录bin下了 执行zkServer sh start 没有这个命令 有这个命令 但启动不了 我的两种解决方法 1 一种是到zookeeper
  • 关于Ant自动化编包问题排查价格小思路

    1 确定一下JDK环境变量是否正确 何为是否正确 也就是源码所需要的版本和环境变量所需要的版本是否一致 2 确定引入的中间版本是否正确 同JDK 3 是否使用了正确的编译器 何为使用了正确的编译器 正常情况下不需要指定编译器 使用环境变量配
  • 编码器输出:HTL、TTL

    HTL 即常说的推挽 就是NPN PNP的组合 所以其同时支持PNP与NPN控制电路 电路简单 好用 工作电压较宽 编码器常用5到30V均可 注 HTL输出信号电平一般等同工作电压减三极管压降 有较强的抗干扰能力 它的主要缺点是工作速度比较
  • 如何在华三H3C交换机开启http或web界面远程登录管理

    华三交换机开启web界面实验 现在很多的华三交换机和路由器默认已经自带了WEB图形界面 只需要电脑配置一个互通的ip地址连接后就能登录到web界面 操作管理起来非常方便 但有时某些是没有开启web界面的 下面就以华三模拟器交换机为例操作配置
  • < C++ >:C++ 类和对象(上)

    目录 1 面向过程和面向对象的初步认识 2 类的引入 3 类的访问限定符及封装 3 1 访问限定符 3 2 封装 4 类的声明和定义或类的定义 可以理解成声明和定义 5 类的作用域 6 类的实例化 7 类对象模型 7 1 如何计算类对象的大
  • 释放技术的想象-解码腾讯云软件架构与应用

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 关于腾讯 你可能玩过 王者荣耀 你可能用过 微信 和它的 小程序 你可能看过 腾讯视频 并且曾为之付费 你可能已经是多年的 QQ 老手但还不知道什么是 MQ 作为成立多年的老牌互联网公
  • 为何零信任架构身份管理平台更可靠?

    随着信息技术的不断进步 云计算 物联网以及移动设备的普及 信息泄露等安全问题愈发频繁 近期 一起某高校学生的信息泄露事件引发了大家的广泛讨论 该校学生利用其身份便利 非法获取了大量学生的姓名 学号 照片等隐私信息 这次热门话题的讨论后 人们
  • python实现排列组合代码

    def combination n c com 1 limit 0 per for pos in range limit n t per pos if len set t len t if len t c yield pos else fo
  • 22道常见RocketMQ面试题以及答案

    面试宝典到手 搞定面试 不再是难题 系列文章传送地址 请点击本链接 1 RocketMQ是什么 2 RocketMQ有什么作用 3 RoctetMQ的架构 4 RoctetMQ的优缺点 8 消息过滤 如何实现 9 消息去重 如果由于网络等原
  • 基于WSL2+NVIDIA Docker的开发环境最佳实践

    1 Windows 11 安装WSL2 Ubuntu 22 04 LTS 1 1 安装windows附加功能 点击 设置 gt 应用 gt 可选功能 gt 更多windows功能 弹出的窗口 勾选 适用于Linux的Windows子系统 和
  • 学习dubbo遇到的报错:UnsatisfiedDependencyException: Error creating bean with name ‘us

    学习dubbo直连方式遇到的报错 记录一下 org springframework beans factory UnsatisfiedDependencyException Error creating bean with name use
  • win10企业版更新和安全中没有 “恢复”这个选项_永别了您内,整疯我的Win10自动更新...

    朋友终于买了台微星GP75 用来驾驭重制版剑三的网游史最大客户端 号称几乎无短板 处处贵到痛点的香香75的确值得 游戏流畅丝滑 开强冷模式手托半点不热 不过就在昨天 朋友突然问我 微星笔记本自带的win10系统可以退回win7吗 害 这哥果
  • centos 安装k8s

    第一步 每台机子都做 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 第二步 每台机子都做 永久关闭selinux sed i s enforcing disabled
  • 30-10-010-编译-kylin-on-druid-2.6.0-CDH57编译

    1 视界 1 下载kylin git clone https github com apache kylin kylin 2 安装maven nodejs 1 maven的安装参照百度 这里不再赘述 2 nodejs的安装参考
  • ssh连接慢解决办法

    ssh连接慢解决办法 成功 用真机连接虚拟机卡的话 1 进入虚拟机vim etc ssh sshd config 2 将 UseDNS yes改为UseDNS no即可如下 使用 UseDNS找到地方然后添加 UseDNS yes UseD
  • VS2019+QT5.15.2+QGIS二次开发环境搭建

    VS2019 QT5 15 2 QGIS二次开发环境搭建 1 开发环境 VS2019 QT5 15 2 QGIS 注意 QT 平台的版本与qgis下载的版本有关 以前采用OSGeo4w64来下载qgis时会区分32和64位 但现在官网已经不
  • QT中QWeight与QMainWindow的区别

    在Qt中 QWidget 和 QMainWindow 是两个常用的类 用于创建用户界面 它们之间有一些区别 1 QWidget 是Qt中所有用户界面类的基类 而 QMainWindow 是一个特殊的窗口类 通常用于创建应用程序的主窗口 QM
  • elasticsearch(磁盘删除data后kibana自动进入只读模式)

    Elasticsearch 基于磁盘的碎片分配 向index插入 删除数据时发生报错 index kibana 1 blocked by FORBIDDEN 12 index read only allow delete api clust
  • FreeRTOS笔记(一)简介

    这个笔记主要依据韦东山freertos快速入门系列记录 感谢韦东山老师的总结 什么是实时操作系统 操作系统是一个控制程序 负责协调分配计算资源和内存资源给不同的应用程序使用 并防止系统出现故障 操作系统通过一个调度算法和内存管理算法尽可能把