嵌入式操作系统FreeRTOS文件详解

系列文章目录

嵌入式操作系统FreeRTOS文件详解


嵌入式操作系统FreeRTOS文件详解

  • 系列文章目录
  • FreeRTOS下载


FreeRTOS下载

官网下载解压后得到的文件,如下图所示:
在这里插入图片描述
在这里插入图片描述

打开图 1.3.1.2 中的 FreeRTOS 子文件夹,就能够看到 FreeRTOS 内核的文件,如下图所示

在这里插入图片描述Demo 文件夹
Demo 文件夹里面就是 FreeRTOS 的演示工程
Demo 文件夹中有,FreeRTOS 支持多种芯片架构的多种不同型号的芯片,其中就包括了 ST 的 F1、F4、F7 和H7 系列的相关 FreeRTOS 演示工程
这对于入门学习FreeRTOS 是十分有帮助的,在学习移植FreeRTOS 的过程中就可以参考这些演示工程

License 文件夹
License 文件夹中包含了 FreeRTOS 的相关许可信息,如果是要使用 FreeRTOS 做产品的话,就得仔细地看看这个文件夹中的内容。

Source 文件夹
这个文件夹中的内容就是 FreeRTOS 的源代码了,这就是学习和使用 FreeRTOS 的重中之重,Source 文件夹打开后如下图所示:
在这里插入图片描述

图中的文件就是 FreeRTOS 的源文件了。可以看到,就文件数量而言,FreeRTOS 的
文件数量相对与 µC/OS 而言少了不少。Source 文件夹中各文件和文件夹的描述如下表所示:
在这里插入图片描述

可以看到,Source 文件夹中的 portable 内包含了 FreeRTOS 的移植文件,这些移植文件是针对不同芯片架构的。FreeRTOS 操作系统归根到底是一个软件层面的东西,那 FreeRTOS 是如何将硬件联系在一起的呢?portable 文件夹里面的东西就是连接软件层面的 FreeRTOS 操作系统和硬件层面的芯片的桥梁。打开 protable 文件夹后,可以看到 FreeRTOS 针对不同的芯片架构和不同的编译器提供了不同的移植文件,由于本文是使用 MDK 开发正点原子的 STM32 系列板卡,因此这里只重点介绍其中的部分移植文件,如下图所示:
在这里插入图片描述

Keil 文件夹

Keil 文件夹是在 MDK 中使用 ARMCC 编译器(AC5)时使用的打开 Keil 文件夹后可以看到,Keil 文件夹中之后一个文件,文件名为:“See-also-the-RVDSdirectory.txt”

RVDS 文件夹在这里插入图片描述
从图中可以看出,FreeRTOS 提供了 ARM Cortex-M0、ARM Cortex-M3、ARM CortexM4、ARM Cortex-M7 等内核芯片的移植文件

ARMClang 文件夹是在 MDK 中使用ARMClang 编译器(AC6)时使用的,打开 ARMClang 文件夹后可以看到,ARMClang 文件夹中只有一个文件,文件名为:“Use-the-GCC-ports.txt”,看文件名就知道要转到 GCC 文件夹了。

GCC 文件夹
在这里插入图片描述
从图 1.3.2.5 中可以看出,FreeRTOS 提供了 ARM Cortex-M0、ARM Cortex-M3、ARM CortexM3、ARM Cortex-M7、ARM Cortex-M23、ARM Cortex-M33 等内核芯片的移植文件

MemMang 文件夹
MemMang 中的文件是 FreeRTOS 提供的用于内存管理的文件,从图 1.3.2.6 中可以看到,MemMang 文件夹中包含了五个 C 源文件,这五个 C 源文件对应了五种内存管理的方法。
在这里插入图片描述


END
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/2023.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

使用Jupyter Notebook进行数据科学项目

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Jupyter Notebook进行数据科学项目 Jupyter Notebook 简介 安装 Jupyter Notebook 创建和管理 Notebook 编写和运行代码 示例…

火山引擎VeDI数据服务平台:在电商场景中,如何解决API编排问题?

01 平台介绍 数据服务平台可以在保证服务高可靠性和高安全性的同时,为各业务线搭建数据服务统一出口,促进数据共享,为数据和应用之间建立了一座“沟通桥梁”。 同时,解决数据理解困难、异构、重复建设、审计运维困难等问题&#x…

C#进阶1

C#进阶1 本文章主要介绍C#的进阶知识,如反射,特性.... 参考视频链接 原码 文章目录 C#进阶1反射步骤泛型反射调用方法 获取属性 特性特性的定义步骤扩展枚举练习 反射 在 C# 中,反射(Reflection)是一种强大的机制&a…

【深度学习】合合信息:生成式AI时代的内容安全与系统构建

生成式AI时代的内容安全与系统构建 一、生成式 AI 的发展现状二、图像内容安全问题2.1、举几个伪造数字内容的例子2.1.1、谣言检测2.1.2、欺诈图像识别2.1.3、伪造信息 2.2、伪造文档/证照检测应用场景2.2.1、目前图像篡改主要涉及以下几个场景 2.3、合合信息伪造文档/证照检测…

软件系统安全保证措施,质量保证措施方案(Word原件套用)

系统安全保证措施是构建稳固防御体系的核心,旨在全方位保障信息系统的安全性。以下是对这七项措施的简要概述: 一、身份鉴别:采用多种认证方式,如密码、生物识别等,确保用户身份的准确无误,防止非法入侵。 …

gozero--环境安装和api语法

文章目录 前言环境安装安装go ctl安装protoc安装go-zero安装etcd配置环境变量安装插件 二、api语法说明syntaxtypeserverservicedoc命令转换 前言 go-zero是go语言的微服务框架,微服务内容很多,我希望我这一篇可以绘制出完整的地图,帮助需要…

vue中el-table显示文本过长提示

1.el-table设置轻提示:show-overflow-tooltip“true“,改变轻提示宽度

在VS中安装chatGPT

2、在VSCode中打开插件窗口 3、输入ChatGPT 4、这里有个ChatGPT中文版,就它了 5、安装 6、这时候侧边栏多了一个chatGPT分页图标,点击它 7、打个招呼 8、好像不行 9、看一下细节描述 10、根据要求按下按下快捷键 Ctrl Shift P 11、切换成国内模式 12、…

sublime可以写python吗

首先你需要安装一个Sublime Text(http://www.sublimetext.com/)和一个Python(https://www.python.org/downloads/), 接下来打开Sublime Text: 1、如下图所示,点击菜单栏中的Tools —> Buil…

初始Docker

概述: 容器,作为云原生技术的重要组成部分,与虚拟机一样,均属于虚拟化技术的范畴。然而,容器技术以其独特的优势,在虚拟化领域中脱颖而出。与虚拟机不同,容器能够摆脱操作系统的束缚&#xff0…

MATLAB函数,用于计算平均误差、误差最大值、标准差、均方误差、均方根误差

文章目录 源代码使用示例:计算公式1. 平均误差 (Mean Error, ME)2. 误差最大值 (Maximum Error, ME)3. 标准差 (Standard Deviation, SD)4. 均方误差 (Mean Squared Error, MSE)5. 均方根误差 (Root Mean Squared Error, RMSE) 总结 以下是一个MATLAB函数,用于计算常…

Axure设计之左右滚动组件教程(动态面板)

很多项目产品设计经常会遇到左右滚动的导航、图片展示、内容区域等,接下来我们用Axure来实现一下左右滚动的菜单导航。通过案例我们可以举一反三进行其他方式的滚动组件设计,如常见的上下滚动、翻页滚动等等。 一、效果展示: 1、点击“向左箭…

软考攻略/超详细/系统集成项目管理工程师/基础知识分享19

7.1 系统集成基础(掌握) 系统集成一般可以分为软件集成、硬件集成、网络集成、数据集成和业务应用集成等。 1、系统集成概念理解 软硬件系统集成是一种系统的思想和方法,它虽然涉及软件和硬件等技术问题,但绝不仅仅是技术问题 软硬…

数据库Redis篇

系列文章目录 第一章 C/C语言篇第二章 计算机网络篇第三章 操作系统篇第四章 数据库MySQL篇第五章 数据库Redis篇第六章 场景题/算法题第七篇 常见HR问题篇 本系列专栏:点击进入 后端开发面经 关注走一波 秋招阶段,面过很多大中小厂,积攒了…

SpringAOP技术

目录 一、概念引入 1.引入依赖 2.工具类 3.实体类 4.持久层实现类 5.业务层实现类 6.配置文件 7.测试类 8.运行 查看数据库: 9.现在如果转账过程中出现异常 AccountServiceImpl(模拟异常) 再运行: 查看数据库: 10.现在做事务…

从富文本窥探苹果的代码秘密

从富文本窥探苹果的代码秘密 背景 在我们的业务场景下,为突出诸如 “利益点”和“利率” 等特性以推动订单成交,引入了 “富文本” 这一概念。富文本具备丰富格式的文本展示与编辑功能。然而,恰是由于富文本具有 “多样式”“复杂排版” 等特…

恒创科技:如何知道一台服务器能承载多少用户?

如何知道一台服务器能承载多少用户?其实服务器承载能力并非一个单一固定的数值,而是由多种因素共同决定的动态指标,所以想知道能承载的访客量,我们要先搞清楚究竟有哪些因素会影响服务器承载访客的数量。 影响服务器承载访客的因素&#xff…

vue3配置eslint代码规划和prettier自动格式化

eslint 安装依赖:npm install -D eslint/create-config初始化:npx eslint --init初始化后会在项目中自动创建eslint.config.js文件,把以下内容复制粘粘替换 import globals from "globals"; import pluginJs from "eslint/j…

6个步骤让你快速学会甘特图的制作

在项目管理中,一个清晰、详细的进度表格和进度计划表是确保项目顺利进行的重要工具。它们不仅帮助团队成员了解各自的任务和责任,还能有效监控项目的进展,及时发现并解决问题。 制作项目进度表格和制定项目进度计划表是项目管理中的关键步骤…

蒙特卡洛方法(MC Basic算法例子)

本文章中使用的算法和例子来源于bilibili中西湖大学赵世钰老师的【强化学习的数学原理】课程。网址:第5课-蒙特卡洛方法(MC Basic算法例子)_哔哩哔哩_bilibili 目录 一、任务目标 二、细节分析 三、代码演示 一、任务目标 1、初始的策略已…