初识 Free RTOS

发布时间:2026/8/29 13:00:18

初识 Free RTOS
一、FreeRTOS简介Free RTOSReal Time Operating System实时操作系统顾名思义一款免费的实时操作系统。作为一种专门设计用于处理实时任务的操作系统。与通用计算机上运行的桌面操作系统如Windows、Linux不同RTOS专注于提供对实时性能和响应时间的支持。那么为什么要学习Free RTOS呢之前所学习的51、32单片机都是对裸机进行操作编程。即不加入任何 RTOS Real Time Operating System 实时操作系统的程序。常用的 RTOS 有国外的FreeRTOS、 μC/OS、RTX 和国内的 RT-Thread 等其中尤以国外开源且免费的 FreeRTOS 的市场占有率最高。所谓裸机通常指的是在没有操作系统OS支持的环境中直接运行程序的状态。换句话讲也就是说裸机开发是一种在没有操作系统或者其他软件中间层的情况下直接操作硬件的软件开发方式在裸机开发中程序员需要编写直接与硬件交互的代码包括底层初始化、时钟、中断服务程序、外设控制等。与在有操作系统的环境中相比裸机开发对硬件的了解程度更为深入同时也需要处理更多的底层细节。裸机开发的缺点1实时性差裸机编程都在一个死循环中程序轮流执行所有任务优先级相同但所有任务可以被中断打断2CPU利用率低一旦遇到Delay函数CPU就会进行空等待没有任务调度器使CPU利用率低3结构臃肿所有任务都放在无限循环内而实时操作系统可以很好的解决这些缺点提供对实时性能和响应时间的支持优点如下1分而治之实现功能划分为多个任务而每个任务又是一个独立的无限循环2任务调度RTOS包含一个任务调度器能够有效地管理多个任务的执行。它负责按照优先级或其他调度算法决定哪个任务在何时执行。当遇到阻塞态时当前任务交出CPU使用权CPU转去处理下一个任务3抢占式任务可以有软件指定优先级高优先级的任务可以抢占低优先级的任务。同样中断可以打断任一优先级的任务4任务堆栈每个任务都有自己独立的栈空间用于保存局部变量以及任务的上下文信息Free RTOS基于上层优点同时还拥有其他特点使得Free RTOS在市场上的占有率很高1免费开源商业产品中使用无潜在商业风险无须担心2可裁剪FreeRTOS的核心代码9000行包含在3个.c文件中3简单简单易用可移植性非常好4优先级不限任务优先级分配没有限制多任务可同一优先级5任务不限可创建的实时任务数量没有软件限制对于硬件层取决于栈空间大小6抢占/协程/时间片支持抢占式协程式、时间片流转任务调度对于相同优先级的任务而言在FreeRTOS中有一个“心脏”——滴答定时器滴答定时器每计时到一个时间单位时间片就会触发一次滴答定时器中断在这个滴答定时器中断中主要就是执行相同优先级任务的切换对于不同优先级的任务而言高优先级的任务可以抢占低优先级的任务。执行过程中如果遇到阻塞态时当前任务交出CPU使用权CPU转去处理下一个任务。当高优先级任务执行完成后开始执行低优先级任务二、FreeRTOS数据类型和命名规范2.1 数据类型每个移植的版本都含有自己的portmacro.h头文件里面定义了2个数据类型TickType_tFreeRTOS配置了一个周期性的时钟中断Tick Interrupt每发生一次中断中断次数累加这被称为tick counttick count这个变量的类型就是TickType_tTickType_t可以是16位的也可以是32位的FreeRTOSConfig.h中定义configUSE_16_BIT_TICKS时TickType_t就是uint16_t否则TickType_t就是uint32_t对于32位架构建议把TickType_t配置为uint32_tBaseType_t这是该架构最高效的数据类型32位架构中它就是uint32_t16位架构中它就是uint16_tBaseType_t通常用作简单的返回值的类型还有逻辑值比如pdTRUE/pdFALSE2.2 命名规范2.2.1 变量名变量名前缀表示变量名的数据类型变量名前缀含义uint32_t定义的变量前缀uluunsigned无符号llong、int32_t长整型uint16_t定义的变量前缀usuunsigned无符号sshort、int16_t短整型uint8_t定义的变量前缀ucuunsigned无符号cchar、int8_t短整型stdint.h中未定义的变量类型定义的变量前缀x比如BaseType_tTickType_t其他非标准的类型结构体、task_handle、queue_handle等定义的变量stdint.h中未定义的无符号变量类型定义的变量前缀ux比如UBaseType_t定义的变量size_t定义的变量前缀uxsize_t定义的变量e枚举变量p指针变量c根据MISRA代码规则char定义的变量只能用于ASCII字符pc根据MISRA代码规则char*定义的指针变量只能用于ASCII字符串2.2.2 函数名函数名前缀返回值类型所定义的文件位置函数名前缀含义vTaskPrioritySet返回值类型void在task.c中定义xQueueReceive返回值类型BaseType_t在queue.c中定义pvTimerGetTimerID返回值类型pointer to void在timer.c中定义prvprivate表示私有函数被static修饰2.2.3 宏宏的名字是大写同时用下划线分开可以添加小写的前缀表示所定义的文件位置宏的前缀含义在哪个文件里定义port (比如portMAX_DELAY)portable.h或portmacro.htask (比如taskENTER_CRITICAL())task.hconfig (比如configUSE_PREEMPTION)FreeRTOSConfig.hpd (比如pdTRUE)projdefs.h

相关新闻

PaddleOCR PP-StructureV3 文档解析实战:5 分钟把复杂 PDF 变成一份 Markdown

PaddleOCR PP-StructureV3 文档解析实战:5 分钟把复杂 PDF 变成一份 Markdown

2026/8/29 13:00:18

PaddleOCR PP-StructureV3 文档解析实战:5 分钟把复杂 PDF 变成一份 Markdown 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between images/PDFs and …

ai查重率在线检测能用于维普复检吗?降AIGC与查重报告不能互换

ai查重率在线检测能用于维普复检吗?降AIGC与查重报告不能互换

2026/8/29 13:00:18

ai查重率在线检测能用于维普复检吗?降AIGC与查重报告不能互换 在线页面显示什么能否用于维普复检正确用途通用AI率或疑似度不能直接代替维普修改前免费自查明确的维普AIGC报告需再看学校是否指定该入口验收AI率与疑似段总复制比、标红和来源属于论文查重报告验收重…

免费查ai率从哪里进入知网?AIGC检测、AI降重和查重入口别选错

免费查ai率从哪里进入知网?AIGC检测、AI降重和查重入口别选错

2026/8/29 13:00:18

免费查ai率从哪里进入知网?AIGC检测、AI降重和查重入口别选错 你的目标应找的页面得到什么能否互相代替按学校要求查AI率学校知网任务或通知指定入口AIGC相关报告不能用处理稿代替查询论文重复率学校查重任务复制比与相似来源不能当AI率免费初步自查有明确说明的AI…

AI Coding全景指南:从工具选择到工程化落地实践

AI Coding全景指南:从工具选择到工程化落地实践

2026/8/29 14:10:23

这两年“AI Coding”几乎是从工具圈一路火到了管理层。打开技术社区,满屏都是“AI 辅助编程”“AI Agent 写代码”的话题;打开招聘 JD,不少岗位也把“熟悉 AI 编程工具”写成了加分项。但真正在一线把 AI 用到生产项目里的团队,往…

从“光”到“色”:一文拆解TFT液晶屏如何用晶体管“画”出千万色彩

从“光”到“色”:一文拆解TFT液晶屏如何用晶体管“画”出千万色彩

2026/8/29 14:10:23

1. 从白光到彩色:TFT液晶屏的成像之旅 当你盯着手机屏幕刷短视频时,是否想过这千万种色彩是如何被"画"出来的?这背后是一场光与电的精密共舞。TFT液晶屏的成像过程就像个高效协作的工厂流水线: 背光模组 是发电站&…

基于51单片机的门禁系统设计:从矩阵键盘到EEPROM存储的综合实践

基于51单片机的门禁系统设计:从矩阵键盘到EEPROM存储的综合实践

2026/8/29 14:10:23

1. 项目背景与赛题核心解读 最近在整理一些老项目的资料,翻到了当年参加蓝桥杯第三届单片机国赛的题目——“门禁系统”。这个题目可以说是一个经典的综合应用案例,它不像一些单纯考某个外设驱动的题目,而是把单片机开发中常见的几个核心模块…

Ubuntu 安装docker docker-compose

Ubuntu 安装docker docker-compose

2026/8/29 14:10:23

Docker 通过提供轻量级、可移植且高效的解决方案,简化了软件开发和部署。“docker build”命令是 Docker 镜像创建过程的核心。本文将探讨 Docker 构建命令、用法以及 Docker 构建的优化。Docker 构建有什么作用?Docker build 是一个命令行界面 CLI命令&…

自主行动AI Agent实战:从零搭建自动操作网页的智能体

自主行动AI Agent实战:从零搭建自动操作网页的智能体

2026/8/29 14:10:23

这次我们来看一个 Agent 自主行动的真实案例:为了让用户抢到热门健身课的一个名额,一个 AI Agent 自己完成了一整套网页操作,最终拿到了结果。新闻标题用了 “Rogue AI agent hacks gym” 来形容它,其实多数时候这不是在攻击系统漏…

AI 编码新范式:SHA 绑定 spec 审批,从 issue 到 reviewed PR

AI 编码新范式:SHA 绑定 spec 审批,从 issue 到 reviewed PR

2026/8/29 14:00:23

AgentMachinist 这个项目在 Show HN 上展示的核心信息很短:issue to reviewed PR。从一个 issue 出发,最后得到一个经过审查的 pull request。很多 AI 编程工具现在都能做到“从 issue 生成 PR”,但 reviewed 这个限定词,让它的思…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/29 10:22:10

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

四款热门降AI工具测评:研究生和本科生怎么选?

四款热门降AI工具测评:研究生和本科生怎么选?

2026/8/29 0:09:39

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

论文降AI率免费攻略:自查、提示词与工具推荐

论文降AI率免费攻略:自查、提示词与工具推荐

2026/8/29 0:09:39

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

北京GEO优化服务商推荐:预算型企业如何选北京GEO优化服务商?

北京GEO优化服务商推荐:预算型企业如何选北京GEO优化服务商?

2026/8/29 0:09:39

前言:预算有限的企业更关心投入能否形成可持续的品牌资产。评估北京GEO优化服务商时,不能只比较单篇内容或单月报价,还要看是否能够把问题词、官网、信源和监测串成完整链路。本期重点放在预算配置、试点范围和交付边界,帮助企业先…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…