STM32hal库FreeRTOS移植笔记
- 进入FreeRTOS官网下载FreeRTOS源码,其中LTS指的是长期支持版本

- 在文件夹中解压并打开,其中FreeRTOS-Kernel是FreeRTO核心组件

- 在FreeRTOS-Kernel中我们需要移植的有
inclue文件夹:包含需要使用到的头文件
portable文件夹:选择Keil文件夹,MemMang其中是内存管理的组件,RVDS文件夹:根据你的MCU核心选择合适文件
还有下列可能要用到的FreeRTOS内核.c文件

下载2022版本的FreeRTOS包,使用其中的demo的FreeRTOSConfig.h文件,这是FreeRTOS的配置文件,可以对其进行裁剪以及配置,我这里使用的是stm32f407get6故选择FreeRTOSv202212.01\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK
在keil中添加对应的头文件路径
修改FreeRTOSConfig.h文件,修改为第二个预编译
![]()
在stm32f4xx_it.c文件中将“PendSV_Handler”,“SVC_Handler”,“SysTick_Handler”这三个函数注释掉并在cubemx将下面三个配置删除
![]()
在FreeRTOSConfig.h文件中将下面的组件注释掉
- #define configUSE_IDLE_HOOK 0
- #define configUSE_TICK_HOOK 0
- #define configCHECK_FOR_STACK_OVERFLOW 0
- #define configUSE_MALLOC_FAILED_HOOK 0
在 FreeRTOS 中,这些预编译指令用于配置内核的特定功能。以下是每个指令的含义:
configUSE_IDLE_HOOK:- 这个配置项用于启用或禁用空闲任务钩子函数。如果设置为
1,可以定义一个空闲任务钩子函数vApplicationIdleHook(),在系统处于空闲状态时调用。
- 这个配置项用于启用或禁用空闲任务钩子函数。如果设置为
configUSE_TICK_HOOK:- 这个选项用于启用或禁用滴答(tick)钩子函数。如果设置为
1,可以定义一个滴答钩子函数vApplicationTickHook(),在每次系统滴答时调用。
- 这个选项用于启用或禁用滴答(tick)钩子函数。如果设置为
configCHECK_FOR_STACK_OVERFLOW:- 此选项用于启用或禁用堆栈溢出检查。如果设置为
1,FreeRTOS 会在上下文切换时检查每个任务的堆栈大小,以防止堆栈溢出。
- 此选项用于启用或禁用堆栈溢出检查。如果设置为
configUSE_MALLOC_FAILED_HOOK:- 这个配置项用于启用或禁用内存分配失败钩子函数。如果设置为
1,可以定义一个钩子函数vApplicationMallocFailedHook(),当内存分配失败(例如,调用pvPortMalloc()时没有足够内存)时会调用该函数。
- 这个配置项用于启用或禁用内存分配失败钩子函数。如果设置为
将这些选项设置为
0表示禁用相应的功能,从而减少系统的开销和复杂性。值得注意的是,freertos默认的时基单元是系统时钟即systick,所以在使用cubemx时,hal的系统时钟需要使用其他定时器,不能使用systick定时器
参考链接
FreeRTOS移植教程(超详细)——基于GD32F303X系列MCU - - 21ic电子技术开发论坛
[STM32]从零开始的STM32 FreeRTOS移植教程_stm32使用rtos-CSDN博客
STM32用CUBEMx生成工程, 不使用CMSIS, 自己移植freertos
cubemx在使用freertos的时候为何推荐使用除systick以外的timebase_cubemx提示freertos不用systick时基-CSDN博客
【STM32/FreeRTOS】SysTick定时器及FreeRTOS系统节拍_freertos时钟使用systick还是timer-CSDN博客
STM32hal库FreeRTOS移植笔记的更多相关文章
- 基于IAR平台FreeRTOS移植
开始这篇文章之前先简单说明一下,我使用的MCU是我们公司自主研发的ACH1180芯片,和STM32差不多,都是Cortex-M4的核,所以移植的过程参考了STM32移植的步骤. 1.解压FreeRT ...
- tslib移植笔记(1)【转】
本文转载自:https://blog.csdn.net/zijie_xiao/article/details/50740950 tslib移植笔记(1)2016-04-25 tslib背景[摘自百度] ...
- STemWin5.22移植笔记【转】
来自:http://www.openedv.com/posts/list/27697.htm STemWin5.22移植笔记 网上关于emwin的资料很少,我在移植的时候查了很多资料,对我一个感觉是好 ...
- 解决嵌入式linux系统下iconv库的移植问题
一.解决问题 在arm开发板上使用framebuff,在汉字显示时,因为只有gb2312的16*16的汉字字库,而ubuntu16.04默认 的编码方式时utf-8,因此需要进行转码(ut ...
- 手把手图文并茂教你用Android Studio编译FFmpeg库并移植
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52661331 之前曾写过一篇&l ...
- C++标准库第二版笔记 3 和异常的理解 1
C++标准库第二版笔记 3 和异常的理解 1 差错和异常(error and exception)的处理 标准异常类(exception class) 定义于 分为: 1.语言本身支持的异常 2.标准 ...
- C++标准库第二版笔记 2.1
C++标准库第二版笔记 2.1 1 Range-Based for 循环 for ( decl : coll ) { statements; } // collaborate 类似C# foreach ...
- nRF52832 SDK15.3.0 基于ble_app_uart demo FreeRTOS移植
参考资料:https://blog.csdn.net/u010860832/article/details/86235993 这里把移植经验记录下来,供有需要的同学参考,有不对的地方也请大家批评指正. ...
- C++标准库第二版笔记 2
C++标准库第二版笔记 2 微小但重要的语法提升 template表达式内的空格: vector< list<int> >; // OK in each C++ version ...
- C++标准库第二版笔记 1
C++标准库第二版笔记 1 C++ std历史 第一份标准化文档: C++98 & C++03 & TR1 TR1 Information Technology- Programmin ...
随机推荐
- 安卓智能手机芯片上audio的bringup
基于安卓平台的智能手机芯片回来后要做bringup.首先是负责平台的把安卓OS起来,然后就轮到各功能模块做bringup了,Audio是其中主要功能模块之一.Audio由于场景多和牵涉到的core多, ...
- Java中的位运算符、移位运算符
目录 1 概述 2 位运算符 2.1 $(与) 2.2 |(或) 2.3 ^(异或) 2.4 ~(非) 3 移位运算 3.1 左移运算符:<< 3.2 右移运算符:>> 3.3 ...
- 实现高质量视频通话的javascript技巧与方法
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- 计算机组成原理 L03 计算单元(ALU)复习-1
计算机组成原理 L03 计算单元(ALU)复习-1 进位传输函数和进位产生函数 类推得到 gi 与操作得到 0000 0000 0010 0011 pi 或操作得到 1111 1111 1111 10 ...
- 洛谷题解:P12364 [蓝桥杯 2022 省 Python B] 寻找整数
注:可以在两分钟内跑出. 看到这题,暴力枚举跑不出来.如果你有没有充分的数学知识,那又怎么办呢? 减少枚举量 首先,注意到许多余数都是 \(11\),有图为证: 设这个数为 \(n\),则有: \[n ...
- Java catch多重异常捕获
摘要:Java中多重异常捕获机制可以更加简洁.有效地处理多个异常,提高了程序的鲁棒性,是编写高质量代码的重要技巧之一. 小编在<浅谈Java异常处理机制>中梳理了异常处理机制,在< ...
- MyBatis常见面试题:通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?
MyBatis常见面试题:通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗? Dao接口即Mapper接 ...
- MySQL SQL语句书写顺序和执行顺序
目录 SQL语句书写顺序和执行顺序 MySql执行顺序理解 实例 知识扩展 on和where的区别 limit 分页 结束语 Reference SQL语句书写顺序和执行顺序 (7) SELECT ( ...
- SecureCRT 8.5 配置自动记录日志
两种方式记录日志 1.手动记录日志 文件--会话日志 选择需要保存的位置和文件名 2.全局自动记录所有日志 选项--全局选项 常规--默认会话--编辑默认设置 类别--终端--日志文件 配置日志文件名 ...
- FastAPI安全机制:从OAuth2到JWT的魔法通关秘籍
title: FastAPI安全机制:从OAuth2到JWT的魔法通关秘籍 date: 2025/06/07 08:40:35 updated: 2025/06/07 08:40:35 author: ...

