STM32之FreeRTOS

news/2024/11/28 8:35:38/

目录

FreeRTOS 介绍

什么是 FreeRTOS ?

为什么选择 FreeRTOS ?  

FreeRTOS 资料与源码下载

祼机开发与 FreeRTOS 

祼机开发:

FreeRTOS:

FreeRTOS 实现多任务的原理

二、移植 FreeRTOS 

手动移植

使用CubeMX快速移植

快速移植流程

一些常见问题

1. Timebase Source 为什么不能设置为 SysTick ?

2. FreeRTOS 版本问题

3. FreeRTOS 各配置选项卡的解释

4. 内核配置、函数使能的一些翻译


FreeRTOS 介绍

什么是 FreeRTOS

Free 即免费的, RTOS 的全称是 Real time operating system ,中文就是实时操作系统。
注意: RTOS 不是指某一个确定的系统,而是指一类操作系统。比如: uc/OS FreeRTOS RTX
RT-Thread 等这些都是 RTOS 类操作系统。
FreeRTOS 是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管
理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满
足较小系统的需要。 由于 RTOS 需占用一定的系统资源 ( 尤其是 RAM 资源 ) ,只有 μC/OS-II
embOS salvo FreeRTOS 等少数实时操作系统能在小 RAM 单片机上运行。相对 μC/OS-II
embOS 等商业操作系统, FreeRTOS 操作系统是完全免费的操作系统,具有源码公开、可移
植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为
10.4.4 版。

为什么选择 FreeRTOS ?  

  • FreeRTOS 是免费的;
  • 很多半导体厂商产品的SDKSoftware Development Kit)软件开发工具包,就使用FreeRTOS 作为其操作系统,尤其是WIFI、蓝牙这些带有协议栈的芯片或模块。
  • 简单,因为FreeRTOS的文件数量很少。

FreeRTOS 资料与源码下载

最好的资料就是官网提供的资料! FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions

祼机开发与 FreeRTOS 

众所周知,游戏与女朋友不可兼得!

祼机开发:

  • 玩游戏,结果女朋友生气,分手!
  • 陪女朋友,无法玩游戏,抑郁症!

FreeRTOS

1 秒游戏 -- 1 秒女朋友 -- 1 秒游戏 -- 1 秒女朋友 -- 1 秒游戏 -- 1 秒女朋友 ....
(累死 ……
CPU 是个无情的战斗机器,可以快速在两个乃至多个任务间快速切换,并且不觉得劳累,实现
二者兼顾。

FreeRTOS 实现多任务的原理

严格来说 FreeRTOS 并不是实时操作系统,因为它是 分时复用 的。
系统将时间分割成很多时间片,然后轮流执行各个任务。
每个任务都是独立运行的,互不影响,由于切换的频率很快,就感觉像是同时运行的一样。

二、移植 FreeRTOS 

手动移植

过程复杂且繁琐,对新手不友好。如有需要手动移植,可参照以下文章:
(30条消息) FreeRTOS移植到STM32_不秃也很强的博客-CSDN博客 (点击直达)

使用CubeMX快速移植

快速移植流程

1. SYS 选项里,将 Debug 设为 Serial Wire ,并且将 Timebase Source 设为 TIM2 (其它定
时器也行)。

 

2. RCC 里的 HSE 设置为 Crystal/Ceramic Resonator
3. 时钟按下图配置
4. 选择 FREERTOS 选项,并将 Interface 改为 CMSIS_V1
5. 配置项目信息,并导出代码。

一些常见问题

1. Timebase Source 为什么不能设置为 SysTick ?

裸机的时钟源默认是 SysTick ,但是开启 FreeRTOS 后, FreeRTOS 会占用 SysTick (用来生成 1ms
定时,用于任务调度),所以需要需要为其他总线提供另外的时钟源。

2. FreeRTOS 版本问题

V2 的内核版本更高,功能更多,在大多数情况下 V1 版本的内核完全够用。

3. FreeRTOS 各配置选项卡的解释

  • Events:事件相关的创建
  • Task and Queues: 任务与队列的创建
  • Timers and Semaphores: 定时器和信号量的创建
  • Mutexes: 互斥量的创建
  • FreeRTOS Heap Usage: 用于查看堆使用情况
  • config parameters: 内核参数设置,用户根据自己的实际应用来裁剪定制 FreeRTOS 内核
  • Include parameters FreeRTOS 部分函数的使能
  • User Constants: 相关宏的定义,可以自建一些常量在工程中使用
  • Advanced settings:高级设置

4. 内核配置、函数使能的一些翻译

内核参数的理解内容非常多,可以参考以下文章:
(30条消息) FreeRTOS系列第6篇---FreeRTOS内核配置说明_vassertcalled_研究是为了理解的博客-CSDN博客

http://www.ppmy.cn/news/288264.html

相关文章

JavaSSM笔记(四)

MySQL高级 在JavaWeb阶段,我们初步认识了MySQL数据库,包括一些基本操作,比如创建数据库、表、触发器,以及最基本的增删改查、事务等操作。而在此阶段,我们将继续深入学习MySQL,了解它的更多高级玩法&#…

迅雷下载Linux Oracle11gR2和Oracle12c

很多朋友分享的都是百度云盘链接,那个下载速度对于贫民来说,真的是等到花都谢了 而Oracle官网现在只能下载Oracle19C了,特此分享11和12版本的迅雷下载链接 11g下载链接: https://download.oracle.com/otn/linux/oracle11g/R2/lin…

迅雷的php文件_使用迅雷下载.php文件的方法(Picjumbo可用)

PicJumbo,在线免费高质量商用素材网,是一个叫维克多的人创办的这个基于网站设计的素材站点,因为每一个设计师都需要高质量的图片素材,这里提供分辨率为3888像素的全质量图片资源。PicJumbo 每天提供优质免费的照片!完全…

Python3.x+迅雷x 自动下载高分电影

【怒草 https://blog.csdn.net/visionliao/article/details/103935091 未经允许严禁转载,请尊重作者劳动成果。】 快要过年了,大家都在忙些什么呢?一到年底公司各种抢票,备年货,被这过年的气氛一烘,都归心…

android x5内核 下载地址,在Android项目中集成腾讯X5内核

前言 前几天,为了更好更流畅的播放网页视屏,我们决定在项目中使用腾讯的tbs服务。之所以不使用crosswalk,是因为播放网络视频这个需求相对于使项目apk包增大十几兆还是有所不值。而在这种情况下,腾讯tbs的x5内核webView就很适合我们的要求了。 正文 今天就介绍一下如何使用…

day6 数据处理指令

1.指令:能够编译生成一条32位的机器码,且能被CPU识别和执行 1.1 数据处理指令:数学运算、逻辑运算 数据搬移指令 MOV R1, #1 R1 1 MOV R2, R1 R2 R1 MVN R0, #0xFF R0 ~0xFF 立即数 立即数的本质就是包含在指令当中的数,属于指令的一部分 …

python迅雷下载任务出错_迅雷任务出错是怎么回事_迅雷下载一直提示任务出错解决方法-系统城...

迅雷下载后显示任务出错怎么回事?许多用户在使用迅雷极速版下载电影或其他学习资料时,一直提示任务出错,或者提示包含违规内容。那么迅雷任务出错怎样继续下载呢?下面小编跟大家介绍迅雷下载任务出错的原因以及解决方案。 一、迅雷…

vs2013_update5下载链接(请使用迅雷下载)

Visual Studio Premium 2013 with Update 5 (x86) – DVD (Chinese-Simplified) 文件名:cn_visual_studio_premium_2013_with_update_5_x86_dvd_6815741.iso SHA1:9A2B64D73AAC916EA606B42B164A9C6E88D062D6 文件大小 :5.17GB 发布时间&a…