相关文章推荐
追风的牛肉面  ·  Tk图形用户界面(GUI) — ...·  8 月前    · 
追风的牛肉面  ·  用户界面元素| ESET Endpoint ...·  8 月前    · 
腼腆的伏特加  ·  北京知财网络科技有限公司-上海知识产权法院对 ...·  2 年前    · 
腼腆的伏特加  ·  Java之图形用户界面AWT编程(四) - ...·  2 年前    · 
腼腆的伏特加  ·  Peking University: ...·  2 年前    · 
小百科  ›  FreeRTOS介绍与源码结构分析开发者社区
图形用户界面 软件 云系统 网站源码 freertos
腼腆的伏特加
2 年前
作者头像
xxpcb
0 篇文章

FreeRTOS介绍与源码结构分析

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 码农爱学习的专栏 > FreeRTOS介绍与源码结构分析

FreeRTOS介绍与源码结构分析

作者头像
xxpcb
发布 于 2020-08-04 16:40:12
1.5K 0
发布 于 2020-08-04 16:40:12
举报

FreeRTOS简介

FreeRTOS,全称Free Real Time Operating System,即免费的实时操作系统。相比于计算机中用到的Windows,MacOS,Linux等操作系统,实时操作系统(RTOS)是一种轻量级的操作系统,适用于嵌入式硬件中,用于解决单片机类裸机轮询方式在处理多个任务时的实时性不高的问题。

目前的实时操作系统有好多种,除FreeRTOS外,还有μCOS、RT-Thread、RTX、Alios Things、Huawei LiteOS等。

什么是RTOS?

实时操作系统(RTOS)的主要特点是可以实现多任务,与多任务系统相对的是裸机系统。

裸机系统

裸机系统就是最初我们学习单片机编程时接触的那种编程方式,main函数中一个while大循环依次处理各个模块的任务,对于需要及时检测的事件会使用中断。这种使用大循环的程序运行方式也叫 轮询系统 ,加上中断处理函数后又称 前后台系统 ,中断处理称作前台,无限循环称作后台。

多任务系统

多任务系统是将各个处理模块编写为单独的任务,每个任务本身是个无限循环,程序运行初期会创建各个子任务,通过任务调度的方式,利用各任务的阻塞时刻不断切换运行各个任务,达到一种看起来是多个任务在同时运行的一种效果。并且,通过中断标志以及任务间通信的相关机制,可以实现任务之间的快速响应。

FreeRTOS特点

  • 使用免费!
  • 系统简单小巧、文件数量少、通常情况下内核占用4~9k字节空间
  • 抢占式内核
  • 代码主要由C编写,可移植性高,已实现在30多种架构的芯片上移植
  • 任务与任务,任务与中断间的通信方式包括:信号量、消息队列、事件标志组、任务通知
  • 具有优先级继承特性的互斥信号令,避免优先级反转问题
  • 高效的软件定时器

FreeRTOS源码目录结构

这里以FreeRTOS v9.0.0版本为例,代码包含FreeRTOS和FreeRTOS-Plus文件夹,后者是一些补充文件,初学者用不到,可以先忽略。在FreeRTOS文件夹中主要关注source文件夹,这里是FreeRTOS的全部源码,包括6个c文件和include文件夹下的多个h文件。另外,在portable文件夹下,是针对不同硬件平台的单独区分使用的代码,目前考虑使用Keil开发STM32F407,所以portable文件夹只需使用RVDS的ARM_CM4F以及MemMang。

关于各个c文件的主要用途:

  • port.c : 针对不同硬件平台的接口
  • heap_4.c : 内存管理相关
  • croutine.c : 协程相关
  • event_groups.c : 事件标志组相关
  • list.c : 列表,FreeRTOS的一种基础数据结构
  • queue.c : 队列相关
  • tasks.c : 任务创建、挂起、恢复、调度相关
  • timers.c : 软件定时器相关

另外在Demo文件夹下还需要用到一个FreeRTOSConfig.h,该文件中通过各种宏定义的方式来配置FreeRTOS需要使用哪些资源。

FreeRTOS v9.0.0源码链接:公众号回复“freertos源码”即可获取~

本文参与 腾讯云自媒体分享计划 ,分享自微信公众号。
原始发表:2020-05-31 ,如有侵权请联系 [email protected] 删除
单片机

本文分享自 码农爱学习 微信公众号, 前往查看

如有侵权,请联系 [email protected] 删除。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

单片机
评论
登录 后参与评论
0 条评论
热度
最新
登录 后参与评论
关于作者
xxpcb
0
文章
0
累计阅读量
0
获赞
前往专栏
目录
  • FreeRTOS简介
  • 什么是RTOS?
    • 裸机系统
      • 多任务系统
      • FreeRTOS特点
      • FreeRTOS源码目录结构
领券
  • 社区

    • 专栏文章
    • 阅读清单
    • 互动问答
    • 技术沙龙
    • 技术视频
    • 团队主页
    • 腾讯云TI平台
  • 活动

    • 自媒体分享计划
    • 邀请作者入驻
    • 自荐上首页
    • 技术竞赛
  • 资源

    • 技术周刊
    • 社区标签
    • 开发者手册
    • 开发者实验室
  • 关于

    • 社区规范
    • 免责声明
    • 联系我们
    • 友情链接

腾讯云开发者

扫码关注腾讯云开发者

扫码关注腾讯云开发者

领取腾讯云代金券

热门产品

  • 域名注册
  • 云服务器
  • 区块链服务
  • 消息队列
  • 网络加速
  • 云数据库
  • 域名解析
  • 云存储
  • 视频直播

热门推荐

  • 人脸识别
  • 腾讯会议
  • 企业云
  • CDN加速
  • 视频通话
  • 图像分析
  • MySQL 数据库
  • SSL 证书
  • 语音识别

更多推荐

  • 数据安全
  • 负载均衡
  • 短信
  • 文字识别
  • 云点播
  • 商标注册
  • 小程序开发
  • 网站监控
  • 数据迁移

Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有

深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569

腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287

问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

Copyright © 2013 - 2023 Tencent Cloud.

All Rights Reserved. 腾讯云 版权所有

登录 后参与评论
 
推荐文章
追风的牛肉面  ·  Tk图形用户界面(GUI) — Python 3.13.5 文档
8 月前
追风的牛肉面  ·  用户界面元素| ESET Endpoint Security | ESET 联机帮助
8 月前
腼腆的伏特加  ·  北京知财网络科技有限公司-上海知识产权法院对两起涉图形用户界面 ...
2 年前
腼腆的伏特加  ·  Java之图形用户界面AWT编程(四) - 腾讯云开发者社区-腾讯云
2 年前
腼腆的伏特加  ·  Peking University: Java程序设计| Java Programming | edX
2 年前
Link管理   ·   Sov5搜索   ·   小百科
小百科 - 百科知识指南