FreeRTOS移植

目录

  • 一、FreeRTOS简介
    • 1.1 初识FreeRTOS
    • 1.2 FreeRTOS资料获取
    • 1.3 开发环境简介
  • 二、FreeRTOS移植
    • 2.1 文件添加
    • 2.2 keil工程添加
    • 2.3 文件修改


一、FreeRTOS简介

1.1 初识FreeRTOS

  首先看一下 FreeRTOS 的名字,可以分为两部分:“Free”和“RTOS”,“Free”就是免费的、自由的、不受约束的意思,“RTOS”全称是 Real Time Operating System,中文名就是实时操作系统,要注意的是,RTOS 并不是值某一特定的操作系统,而是指一类操作系统,例如,µC/OS,FreeRTOS,RTX,RT-Thread 等这些都是 RTOS 类的操作系统。因此,从 FreeRTOS 的名字中就能看出,FreeROTS 是一款免费的实时操作系统。
  操作系统是允许多个任务“同时运行”的,操作系统的这个特性被称为多任务。然而实际上,一个 CPU 核心在某一时刻只能运行一个任务,而操作系统中任务调度器的责任就是决定在某一时刻 CPU 究竟要运行哪一个任务,任务调度器使得 CPU 在各个任务之间来回切换并处理任务,由于切换处理任务的速度非常快,因此就给人造成了一种同一时刻有多个任务同时运行的错觉。
  FreeRTOS 操作系统是一个功能强大的 RTOS 操作系统,并且能够根据需求进行功能裁剪,以满足各种环境的要求,FreeRTOS 的特点如下图所示:
在这里插入图片描述

1.2 FreeRTOS资料获取

  磨刀不误砍柴工,学习一个东西第一个会的是找资料,找资料最好的就是官网:https://www.freertos.org/。
在这里插入图片描述
在这里插入图片描述
  上面有内核的学习,这边我们先下载,其中LTS版本没有库例程。下载解压后得到的文件,各子文件和子文件的的描述如下表所示:

名称描述
FreeRTOSFreeRTOS 内核
FreeRTOS-PlusFreeRTOS 组件
tools工具
GitHub-FreeRTOS-HomeFreeRTOS 的 GitHub 仓库链接
Quick_Start_Guide快速入门指南官方文档链接
Upgrading-to-FreeRTOS-xxx升级到指定 FreeRTOS 版本官方文档链接
History.txtFreeRTOS 历史更新记录

在这里插入图片描述
  打开FreeRTOS 子文件夹,就能够看到 FreeRTOS 内核的文件
在这里插入图片描述

  • Demo文件夹:里面就是 FreeRTOS 的演示工程
  • License 文件夹:中包含了 FreeRTOS 的相关许可信息,如果是要使用 FreeRTOS 做产品的话,就得仔细地看看这个文件夹中的内容。
  • Source 文件夹:这个文件夹中的内容就是 FreeRTOS 的源代码了。Source 文件夹中各文件和文件夹的描述如下表所示:
名称描述
include内包含了 FreeRTOS 的头文件
portable内包含了 FreeRTOS 的移植文件
croutine.c协程相关文件
event_groups.c事件相关文件
list.c列表相关文件
queue.c队列相关文件
stream_buffer.c流式缓冲区相关文件
tasks.c任务相关文件
timers.c软件定时器相关文件

在这里插入图片描述

1.3 开发环境简介

  本文以STM32F407标准库为例,讲解如何移植FreeRTOS,编译环境为MDK。首先需要准备一个标准库例程,本文使用的是正点原子点灯实验 0.0 。然后准备好FreeRTOS内核源码就行,本文使用的版本是FreeRTOSv9.0.0,可以直接从附件下载

二、FreeRTOS移植

2.1 文件添加

  

2.2 keil工程添加

2.3 文件修改

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5分钟搞懂AI的可解释性

大家好啊,我是董董灿。 想象一下,如果有一天,有人跑过来突然告诉你,他搞懂了人类大脑记忆的运行机制,你会是什么反应? 你可能会和我一样,把他当做疯子。 因为我觉得这个课题太深奥了&#xf…

2023高级人工智能期末总结

1、人工智能概念的一般描述 人工智能是那些与人的思维相关的活动,诸如决策、问题求解和学习等的自动化; 人工智能是一种计算机能够思维,使机器具有智力的激动人心的新尝试; 人工智能是研究如何让计算机做现阶段只有人才能做得好的…

Jmeter 性能 —— 电商系统TPS计算

1、怎么计算得出TPS指标 ①第一个通过运维那边给的生产数据,看一下生产进件有多少,计算得来的,如果没有生产数据,或者不过就看如下的方法 ②第二个就是根据最近一个月的实际访问数据,比如每天调用了多少个接口&#…

应用系统如何集成和扩展开源工作流引擎

目前主流的开源流程引擎有activiti、flowable、camunda等,这几个开源流程引擎的版本很多,哪个开源流程引擎哪个版本的功能更多、性能更好,该如何选择请参考:https://lowcode.blog.csdn.net/article/details/116405594 无论您选择…

微信小程序使用mqtt开发可以,真机不行

以下可以解决我的问题,请一步一步跟着做,有可能版本不一样就失败了 一、下载mqtt.js 前往蓝奏云 https://wwue.lanzouo.com/iQPdc1k50hpe 下载好后将.txt改为.js 然后放入项目里 二、连接mqtt const mqtt require(../../utils/mqtt.min); let cli…

VUE部署到IIS中报404错误解决方案-配置URL重写

VUE部署到IIS中报404错误解决方案-配置URL重写 第一步,Windows服务器中开启IIS 可承载的web核心 1、添加角色和功能中安装iis 可承载web核心 第二步,下载url重写工具 官方网站下载地址: https://www.iis.net/downloads/microsoft/url-rewrit…

【JVM】类加载器ClassLoader

一、简介 在Java中,类加载器(ClassLoader)是一个关键的组件,它负责将字节码文件加载到内存并转换成Java类。Java的类加载器主要可以分成两类:系统提供的和由Java应用开发人员编写的。Java开发者可以根据需要创建自己的…

54、Softmax 分类器以及它的底层原理

下面开始介绍最后一个算法softmax。在前面介绍全连接算法或其他文章中,或多或少也提到了softmax。 在分类网络里,softmax的作用主要是将模型的原始输出映射到 0~1之间的概率分布。很多时候对于我们初学者而言,只知道softmax可以做概率映射,但并不了解它内部的原理是如何完…

【Linux Shell】8. test 命令

文章目录 【 1. 数值测试 】【 2. 字符串测试 】【 3. 文件测试 】 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。 【 1. 数值测试 】 参数作用-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则…

2023年广东省网络安全A模块(笔记详解)

模块A 基础设施设置与安全加固 一、项目和任务描述: 假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、流量完整性保护策略、事件监控策略、防火墙策略等多…

TF-IDF(Term Frequency-Inverse Document Frequency)算法 简介

TF-IDF(Term Frequency-Inverse Document Frequency)是一种用于信息检索和文本挖掘的常用算法。它用于评估一个词对于一个文档集合中某个文档的重要性。 这个算法的基本思想是:如果一个词在一个文档中频繁出现,并且在整个文档集合…

poium测试库之JavaScript API封装原理

为什么要封装JavaScript的API? 因为有些场景下Selenium提供的API并不能满足我们需求。比如,滑动浏览滚动条,控制元素的显示/隐藏,日历控件的操作等,都可以通过JavaScrip实现,而且Selenium为我们提供了 exe…

QT上位机开发(网络程序界面开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 传统的上位机对接方式还是以232、485、can为主,随着网络的发展,越来越多的设备都是以网络进行通信的。毕竟相比较之前&…

分布式(7)

目录 31.基于Zookeeper如何实现分布式锁? 32.什么是ACID? 33.什么是分布式的XA协议? 34.什么是2PC? 35.什么是3PC? 31.基于Zookeeper如何实现分布式锁? 顺序节点 创建一个用于发号的节点“/test/lock…

uniapp vue2 车牌号输入组件记录

uniapp vue2 车牌号输入案例记录 组件如图 直接上代码 1.html <template><view><view class"plate" :class"{show: show}"><view class"itemFirst flex-d"><view class"item item1" click"handl…

自定义标记

章节目录&#xff1a; 一、概述二、使用自定义标记三、注册自定义标记3.1 创建文件3.2 修改文本编码格式 四、执行测试五、结束语 一、概述 pytest 可以支持自定义标记&#xff0c;自定义标记可以把一个 web 项目划分多个模块&#xff0c;然后指定模块名称执行。譬如我可以标明…

Java基本语法

第一章 Java基本语法 1. Java程序剖析1.1 Java代码的基本格式1.2 包、import1.3 类1.4 main()方法1.5 方法1.6 标识符1.7 关键字1.8 修饰符1.9 程序块1.10 语句1.11 Java代码的注释 2. 常量与变量2.1 常量2.2 变量2.2 变量的分类2.2.1 成员变量2.2.2 局部变…

中国文化文物和旅游统计年鉴,数据含pdf、excel等格式,文本形式呈现,可预览数据

基本信息. 数据名称: 中国旅游统计年鉴 数据格式: pdf、xls不定 数据时间: 2012-2020年 数据几何类型: 文本 数据坐标系: —— 数据来源&#xff1a;文化和旅游部、网络公开数据 原名为《中国旅游统计年鉴》2020年后更名为《中国文化文物和旅游统计年鉴》&#xff…

实验笔记之——基于COLMAP的Instant-NGP与3D Gaussian Splatting的对比

之前博客进行了COLMAP在服务器下的测试 实验笔记之——Linux实现COLMAP-CSDN博客文章浏览阅读794次&#xff0c;点赞24次&#xff0c;收藏6次。学习笔记之——NeRF SLAM&#xff08;基于神经辐射场的SLAM&#xff09;-CSDN博客NeRF 所做的任务是 Novel View Synthesis&#xf…

史上最牛逼的fiddler抓包操作,【工具】Fiddler使用教程

eb调试工具之一&#xff0c; 它能记录所有客户端和服务器的http和https请求。允许你监视、设置断点、甚至修改输入输出数据。Fiddler包含了一个强大的基于事件脚本的子系统&#xff0c;并且能使用.net语言进行扩展。换言之&#xff0c;你对HTTP 协议越了解&#xff0c;你就能越…